将pillow Image对象转换为JpegImageFile对象

2024-05-05

我裁剪了一张 jpeg 图像,但裁剪后的图像类型是

<class 'PIL.Image.Image'>

我怎样才能将它转换为

<class 'PIL.JpegImagePlugin.JpegImageFile'>

?

谢谢你!

import requests
from PIL import Image
from io import BytesIO

img = Image.open(BytesIO(requests.get("https://mamahelpers.co/assets/images/faq/32B.JPG").content))
img2 = img.crop((1,20,50,80))

print(type(img)) # <class 'PIL.JpegImagePlugin.JpegImageFile'>
print(type(img2)) # <class 'PIL.Image.Image'>

如果您不需要物理文件,请使用内存文件:

import requests
from PIL import Image
from io import BytesIO    

img = Image.open(BytesIO(requests.get("https://mamahelpers.co/assets/images/faq/32B.JPG").content))
img2 = img.crop((1,20,50,80))

b = BytesIO()
img2.save(b,format="jpeg")
img3 = Image.open(b)

print(type(img))  # <class 'PIL.JpegImagePlugin.JpegImageFile'>
print(type(img2)) # <class 'PIL.Image.Image'> 
print(type(img3)) # <class 'PIL.JpegImagePlugin.JpegImageFile'>

BytesIO 是一个流对象,明智的做法是close()在某个时候不再需要它。

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

将pillow Image对象转换为JpegImageFile对象 的相关文章

随机推荐