gpt4 book ai didi

Python PIL 图像验证返回无

转载 作者:太空狗 更新时间:2023-10-30 00:34:13 25 4
gpt4 key购买 nike

我正在开发一种从 API 检索 JPG 并对其进行处理的工具。图片来源不可信,我想测试图片是否为有效的 JPG(这是唯一允许的图片类型)。

我遇到了无法修复的 PIL 错误。下面是我的代码:

image = StringIO(base64.b64decode(download['file']))
img = Image.open(image)
if img.verify():
print 'Valid image'
else:
print 'Invalid image'

但是,似乎 img.verify() 返回 None。我可以在打开的图像上调用其他函数,例如返回大小的 img.size() 。当我尝试调试代码时得到以下输出:

img = Image.open(image)
print img
print img.size()
print img.verify()

[2018-01-09 20:56:43,715: WARNING/Worker-1] <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=2577x1715 at 0x7F16E17DC9D0>
[2018-01-09 20:56:43,716: WARNING/Worker-1] (2577, 1715)
[2018-01-09 20:56:43,716: WARNING/Worker-1] None

有人遇到过同样的问题吗?

最佳答案

根据文档,Image#verify (或 PIL docs for verify )如果图像有问题会引发异常,否则什么也不做。

要使用#verify,您可能需要这样的东西:

image = StringIO(base64.b64decode(download['file']))
img = Image.open(image)
try:
img.verify()
print('Valid image')
except Exception:
print('Invalid image')

此外,您可能还想通过查看 image format 来检查图片是否真的是 JPG。 :

if img.format == 'JPEG':
print('JPEG image')
else:
print('Invalid image type')

关于Python PIL 图像验证返回无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48176531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com