如何使用Python PIL设置TIFF图像分辨率

如何使用Python PIL设置TIFF图像分辨率,python,python-imaging-library,Python,Python Imaging Library,我使用以下脚本设置tiff图像的分辨率: from PIL import Image im=Image.open('abc.bmp') im.info im=im.convert('1') im.info im.save('abc.tif') 因为我可以清楚地看到图像的分辨率是('dpi':(300300)),所以我假设输出的TIFF图像的分辨率应该是300dpi。但是,当我读取TIFF文件的头文件信息时,输出分辨率未定义。关于制定决议有什么想法吗?谢谢。我已经使用ImageMagick的识别

我使用以下脚本设置tiff图像的分辨率:

from PIL import Image
im=Image.open('abc.bmp')
im.info
im=im.convert('1')
im.info
im.save('abc.tif')

因为我可以清楚地看到图像的分辨率是('dpi':(300300)),所以我假设输出的TIFF图像的分辨率应该是300dpi。但是,当我读取TIFF文件的头文件信息时,输出分辨率未定义。关于制定决议有什么想法吗?谢谢。

我已经使用ImageMagick的
识别程序来读取文件元数据。我的源文件是以下文件的源文件:

$ identify -verbose lena.jpg
…
Resolution: 72x72
…
其中分辨率包含在JFIF块中。PIL†似乎无法在Image.open中转换此JFIF块:

>>> im = Image.open('lena.jpg')
>>> im.info 
{'exif': b'Exif\x00\x00II*\x00\x08…',
 'jfif': 257,
 'jfif_density': (1, 1),
 'jfif_unit': 0,
 'jfif_version': (1, 1)}
但是,可以为TIFF输出指定分辨率

>>> im.save('lena.tiff', dpi=(300, 300))
>>> lena = Image.open('lena.tiff')
>>> lena.info
{'compression': 'raw', 'dpi': (300.0, 300.0)}
并且
识别
同意

$ identify -verbose lena.tiff
…
  Resolution: 300x300
…

†关于PIL明显死亡的说明 据我所知,它已被似乎在其中的取代。不幸的是,Pillow没有更改包名,因此如果您写下:

import PIL

您知道了解您正在使用哪个库的方法,除了

>>> PIL.PILLOW_VERSION 
在PIL下会产生名称错误,但在枕头下会产生版本号(“2.9.0”是最新版本)


如果你使用的是PIL,而不是枕头,我不知道上面的答案是否适用于你,我已经达到了我今天想读多少PIL代码的极限。

PIL活该死。我还没有试过枕头,但我很想知道他们是否修复了我在调整大小代码中发现的错误。
>>> PIL.PILLOW_VERSION