Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PIL中旋转图像以零售其内部内容_Python_Python Imaging Library - Fatal编程技术网

Python 在PIL中旋转图像以零售其内部内容

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 =

我想旋转一个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 == '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中包含的所有特定于类型的数据。