将枕头图像对象转换为JpegImageFile对象

时间:2018-08-07 11:34:59

标签: python image python-imaging-library crop

我裁剪了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'>

1 个答案:

答案 0 :(得分:0)

如果您不想使用物理文件,请使用存储文件:

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'>

ByteIO是一个流对象,在不再需要的某个时候close()可能是明智的。