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