我使用以下脚本来设置tiff图像的分辨率:
from PIL import Image
im=Image.open('abc.bmp')
im.info
im=im.convert('1')
im.info
im.save('abc.tif')
我可以清楚地看到图像的分辨率是('dpi':( 300,300)),我假设输出TIFF图像应该具有300 DPI的分辨率。但是,当我读取TIFF文件的头文件信息时,输出分辨率是未定义的。关于设定分辨率的任何想法?感谢。
答案 0 :(得分:3)
我已经使用ImageMagick的identify
程序来读取文件元数据。我的源文件是venerable Lena image,其中包含:
$ 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
同意
$ identify -verbose lena.tiff
…
Resolution: 300x300
…
据我所知,由last release of PIL was in 2009取代的Pillow Project似乎位于active development。不幸的是,Pillow没有改变包名,所以如果你写的话:
import PIL
或
from PIL import Image
除了
之外,您已经知道如何知道您正在使用哪个库>>> PIL.PILLOW_VERSION
它应该在PIL下产生一个NameError但在Pillow下产生一个版本号(' 2.9.0'是最新版本)。
如果你使用的是PIL,而不是Pillow,我不知道上面的答案是否适合你,而且我已经达到了今天我想读的PIL-ish代码的限制。