问题标签 [imghdr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
667 浏览

python - 确定内存中的图像

我想确定我拥有的(下载的)缓冲区是否是图像文件,而不是将其保存到磁盘。我查了一下,发现:

  1. imghdr 只能对文件执行此操作。
  2. python-magic 可以给我文件类型,但我需要将它映射到图像类型。

有没有更好的办法?

0 投票
0 回答
168 浏览

python - imghdr 无法从 http 流运行

我使用 Python Requests 发送 HTTP 请求,作为回报,我将从服务器获取 PNG 流。

此代码导致:

imghdr TypeError:startswith first arg must be str

根据 Python 文档

为什么即使使用字节流我仍然会收到错误消息?


编辑 1:包括来自服务器的 HTTP 响应。

来自服务器 PNG 响应的 Chrome 开发人员工具的屏幕截图

0 投票
0 回答
349 浏览

python - imghdr.what() 不适用于 BytesIO 缓冲区

我正在开发一项功能,允许用户将图像上传到 Python-Flask Web 应用程序。上传的图像被转换为​​ BytesIO 缓冲区,并且永远不会保存到磁盘。我想用来imghdr.what()判断图片类型(png、jpg等),看看是否是允许用户上传的格式。如果格式不被允许,上传将被拒绝。

根据imghdr.what() 文档,我编写了以下代码,

不幸的是,当我用 png 图像调用它时,它返回None. image_type我用相同的图像尝试了以下变体。

同样,以上返回Noneimage_type.

以上返回错误,TypeError: '_io.BytesIO' object is not subscriptable

以上返回相同的错误,TypeError: '_io.BytesIO' object is not subscriptable

这是conftest.py我创建模拟 png 图像的代码,

我已经看过这些资源:
如何使用 imghdr.what() 的示例 使用 imghdr
在 Python 中
确定图像的类型 使用 Python imghdr 确定图像的类型

TLDR:如何imghdr.what()使用 BytesIO 格式的图像?

0 投票
0 回答
68 浏览

python - python:通过其内容确定文件类型(不仅通过它的魔力)

所以我试图验证我得到的文件(由用户上传)确实是图像,并且有效。

我正在运行 ClamAV(使用 python 的clamd包),但它没有返回实际的文件内容。

我正在使用 python 的magic包来检查魔术文件前缀(imghdr对于图像也是如此),但我担心的是具有图像魔术前缀的文件,例如包含 JS 代码。

关于如何扫描上传文件的内容以确定其类型的任何想法?

谢谢

0 投票
1 回答
49 浏览

django - 如何在不使用 lib imghdr 的情况下提取 base64 扩展

我有一个非常适合接收 base64 图像的视图。我的问题是,在极少数情况下,它无法识别发送的 jpg 图像。它看起来像None

在网上看,我发现问题出在 lib imghdr 上。我尝试使用 OS lib 来提取扩展,甚至使用 lib 枕头,但我做不到。

有没有人有任何提示?

这是我如何使用 imghdr 的示例:

0 投票
0 回答
32 浏览

python-3.x - Python 3.9.5 中的 Imghdr 模块错误识别 .png 文件

当我打电话给它时,出于某种原因imghdr.what(sampleImage.png)它承认它是一个。jpeg例如,如果我使用print(imghdr.what(sampleImage.png))它将输出字符串"jpeg"。我检查了图像文件,它显示为具有预期的PNG文件格式Mac OSX

0 投票
1 回答
363 浏览

python - AttributeError:“字节”对象没有属性“告诉”

我正在使用email.messagesmtplib使用 python 发送电子邮件。当图像作为附件发送时,会引发以下错误:

这是图像附件的代码: