Python - Base64 数据是有效的图像吗?

2024-01-06

我正在使用 Python 并且有一个 base64 字符串。

我想知道我收到的base64数据是否是图像并且不是任何其他文件(例如 PDF、DOCX)扩展名更改为图像扩展名。

Example:

string1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARwAAAD2CAYAAAAEXDiwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAhdEVYdENyZWF0aW9uIFRpbWUAMjAyMDowMToyMyAxODowNjo1NkXosZcAADekSURBVHhe7Z0HuF5VlbDXDSUI0hOQIAqY0EWwjBLEwRFGKXYEQUT8FZixAjP4/4wFpTgqCAErYKFXHVBpCgiIBnQcVCIJkCCggEASgqEmQvJ/77n3/bJyuKE4zIEw64X97L3XXm3vc86+5ztfycD8HlEURfE0cu+99w21FmbEUF0URfE/Tm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0Rm04RVF0xsCf/3zn/KF2URTF08Iyyyw71FqYusMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzasMpiqIzBmbNml0/MVoURSfUHU5RFJ1RG05RFJ1RG05RFJ1RG05RFJ1RG05RFJ1R/xBeURRPO/UP4RVF8YxT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"
string2 = "data:image/png;base64,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"

string1 is a 有效的PNG文件所在位置为string2 is 不是有效的图像其扩展名已更改为 png 并上传。

有任何想法吗?


PNG格式有一个固定的header https://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header由8个字节组成89 50 4e 47 0d 0a 1a 0a当转换为 base64 时,如下所示:

iVBORw0KGgo=

正如您所看到的,它以填充字符“=”结尾,在图像的真实 Base64 表示中不会出现该字符,并且根据标头后的字节,可能有不同的字符而不是“o”。

因此,您可以通过将 base64 字符串的第一个字符与

iVBORw0KGg

This 原则 https://stackoverflow.com/questions/62329321/how-can-i-check-a-base64-string-is-a-filewhat-type-or-not/62330081#62330081适用于具有固定标头的所有文件格式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - Base64 数据是有效的图像吗? 的相关文章

  • PyQt:如何通过匿名代理使用网页

    这真让我抓狂 我想在 QWebPage 中显示一个 url 但我想通过匿名代理来实现 Code setting up the proxy proxy QNetworkProxy proxy setHostName 189 75 98 199
  • Python有条件求解时滞微分方程

    我在用dde23 of pydelay包来求解延迟微分方程 我的问题 如何有条件地编写方程 例如目标方程有两个选项 when x gt 1 dx dt 0 25 x t tau 1 0 pow x t tau 10 0 0 1 x othe
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • 当单词以“|”分隔时如何读取文件(埃因霍温)?

    在Python中 我有一个文件 其中的单词由 例如 city state zipcode 我的文件阅读器无法区分单词 另外 我希望我的文件阅读器从第 2 行而不是第 1 行开始 如何让我的文件阅读器分隔单词 import os import
  • 如何将 self 传递给装饰器?

    我该如何通过self key下面进入装饰器 class CacheMix object def init self args kwargs super CacheMix self init args kwargs key func Cons
  • Python Pandas 根据另一列的总计从另一个数据帧中选择值

    我下面有一个 DataFrame 但我需要根据取消和订单列从每个代码中选择行 假设代码 xxx 的阶数为 6 1 5 1 阶数为 11 我需要一种算法 可以选择满足总共 11 行的行 阶数为 6 5 如果没有行匹配 则选择最接近的 id 并
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • 如何使用 sys.path.append 在 Python 中导入文件?

    我的桌面上有两个目录 DIR1 and DIR2其中包含以下文件 DIR1 file1 py DIR2 file2 py myfile txt 这些文件包含以下内容 file1 py import sys sys path append s
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • Pandas style.bar 颜色基于条件?

    如何渲染其中一列的 Pandas dfstyle bar color属性是根据某些条件计算的 Example df style bar subset before after color ff781c vmin 0 0 vmax 1 0 而
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • 如何使用 Keras ImageDataGenerator 预测单个图像?

    我已经训练 CNN 对图像进行 3 类分类 在训练模型时 我使用 keras 的 ImageDataGenerator 类对图像应用预处理功能并重新缩放它 现在我的网络在测试集上训练得非常准确 但我不知道如何在单图像预测上应用预处理功能 如
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 为什么 smtplib.SMTP().sendmail 不发送 DKIM 签名邮件

    我已经在服务器上设置了 postfix 以及 openDKIM 当我跑步时 echo Testing setup mail s Postfix test my email address 我收到电子邮件 邮件标题中有一个DKIM Signa

随机推荐