Python 在PIL中旋转图像以零售其内部内容
我想旋转一个PIL图像,但事先不知道它是什么类型,我想保留图像的内部结构,比如它的量化表,这样我就能够准确地写下它,以防我只更改Exif数据) 我使用的代码是:Python 在PIL中旋转图像以零售其内部内容,python,python-imaging-library,Python,Python Imaging Library,我想旋转一个PIL图像,但事先不知道它是什么类型,我想保留图像的内部结构,比如它的量化表,这样我就能够准确地写下它,以防我只更改Exif数据) 我使用的代码是: from PIL import Image pil_img = Image.open(image_filename) pil_img = pil_img.transpose(Image.ROTATE_90) exif_bytes = code_to_alter_the_exif(pil_img) if pil_img.format =
from PIL import Image
pil_img = Image.open(image_filename)
pil_img = pil_img.transpose(Image.ROTATE_90)
exif_bytes = code_to_alter_the_exif(pil_img)
if pil_img.format == 'JPEG':
pil_img.save(image_filename, "jpeg", exif=exif_bytes, quality='keep', optimize=False)
elif pil_img.format == 'SOME OTHER FORMAT':
pil_img.save(image_filename, "OTHER FORMT", other_formats parameters)
但是,pil\u img=pil\u img.transpose(Image.ROTATE\u 90)
中转置的输出为pil.Image.Image类型,并且不再具有任何内部属性
是否有一种方法只能更改pil\u img
的内部像素
结合可以为我提供一个特定于JPEG的解决方案,但在其他格式的情况下不起作用。pil图像有一个方法rotate,因此您可以执行:
pil\u img.rotate(90)
如果pil\u img是JpegImageFile类型,则pil\u img.rotate(90)是pil.image.image类型。这意味着您将丢失pil_img中包含的所有特定于类型的数据。