如何使用 python 识别 webp 图像类型
how to identify webp image type with python
我想识别图像的类型以判断它是否是 webp
格式,但我不能只使用 file
命令,因为图像以二进制形式存储在内存中这是从互联网上下载的。到目前为止,我在 PIL
lib 或 imghdr
lib
中找不到任何方法来执行此操作
这是我不想做的事情:
from PIL import Image
import imghdr
image_type = imghdr.what("test.webp")
if not image_type:
print "err"
else:
print image_type
# if the image is **webp** then I will convert it to
# "jpeg", else I won't bother to do the converting job
# because rerendering a image with JPG will cause information loss.
im = Image.open("test.webp").convert("RGB")
im.save("test.jpg","jpeg")
当这个 "test.webp"
实际上是一个 webp
图像时,var image_type
是 None
这表明 imghdr
库不知道 webp
类型,所以有什么方法可以用 python 确定它是 webp
图像?
郑重声明,我使用的是 python 2.7
imghdr
模块暂不支持webp图片检测;它将是 added to Python 3.5.
在旧 Python 版本中添加它很容易:
import imghdr
try:
imghdr.test_webp
except AttributeError:
# add in webp test, see http://bugs.python.org/issue20197
def test_webp(h, f):
if h.startswith(b'RIFF') and h[8:12] == b'WEBP':
return 'webp'
imghdr.tests.append(test_webp)
我想识别图像的类型以判断它是否是 webp
格式,但我不能只使用 file
命令,因为图像以二进制形式存储在内存中这是从互联网上下载的。到目前为止,我在 PIL
lib 或 imghdr
lib
这是我不想做的事情:
from PIL import Image
import imghdr
image_type = imghdr.what("test.webp")
if not image_type:
print "err"
else:
print image_type
# if the image is **webp** then I will convert it to
# "jpeg", else I won't bother to do the converting job
# because rerendering a image with JPG will cause information loss.
im = Image.open("test.webp").convert("RGB")
im.save("test.jpg","jpeg")
当这个 "test.webp"
实际上是一个 webp
图像时,var image_type
是 None
这表明 imghdr
库不知道 webp
类型,所以有什么方法可以用 python 确定它是 webp
图像?
郑重声明,我使用的是 python 2.7
imghdr
模块暂不支持webp图片检测;它将是 added to Python 3.5.
在旧 Python 版本中添加它很容易:
import imghdr
try:
imghdr.test_webp
except AttributeError:
# add in webp test, see http://bugs.python.org/issue20197
def test_webp(h, f):
if h.startswith(b'RIFF') and h[8:12] == b'WEBP':
return 'webp'
imghdr.tests.append(test_webp)