/ / как да настроите TIFF разделителната способност с Python PIL - python, python-imaging-library

как да настроите резолюцията на изображението TIFF с Python PIL - python, библиотека за изображения Python

Използвам следните скриптове, за да настроя разделителната способност на 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. Някакви идеи за определяне на резолюцията? Благодаря.

Отговори:

2 за отговор № 1

Използвам ImageMagick identify програма за четене на мета-данни на файла. Изходният ми файл беше почитаният образ на Лена за което:

$ identify -verbose lena.jpg
…
Resolution: 72x72
…

където резолюцията се съдържа в JFIF блока. PIL † не се появява, за да преведе този JFIF блок в Image.open:

>>> im = Image.open("lena.jpg")
>>> im.info
{"exif": b"Exifx00x00II*x00x08…",
"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
…

† Забележка за очевидната смърт на PIL

Доколкото мога да кажа, последното издание на PIL беше през 2009 г. което бе заменено от Проект за възглавници която изглежда е в активно развитие, За съжаление, Pillow не промени името на пакета, така че ако напишете:

import PIL

или

from PIL import Image

знаете начин да знаете с коя библиотека работите с изключение на

>>> PIL.PILLOW_VERSION

което трябва да даде NameError под PIL, но номер на версия ("2.9.0" е най-новата версия) под Pillow.

Ако използвате PIL, а не Pillow, нямам представа дали отговора по-горе ще работи за вас и аз достигнах лимита за това колко PIL-ish код искам да прочета днес.