/ / jak ustawić rozdzielczość obrazu TIFF za pomocą Python PIL - python, python-imaging-library

jak ustawić rozdzielczość obrazu TIFF za pomocą Python PIL - python, python-imaging-library

Używam następujących skryptów do ustawienia rozdzielczości obrazu tiff:

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

Jak mogę wyraźnie zobaczyć, że rozdzielczośćimage to ("dpi": (300, 300)), zakładam, że wyjściowy obraz TIFF powinien mieć rozdzielczość 300 DPI. Jednak rozdzielczość wyjściowa jest niezdefiniowana, gdy odczytam informacje o pliku nagłówkowym pliku TIFF. Wszelkie pomysły dotyczące ustawienia rozdzielczości? Dzięki.

Odpowiedzi:

2 dla odpowiedzi № 1

Używam ImageMagick identify program do odczytu meta-danych pliku. Mój plik źródłowy to czcigodny obraz Leny dla którego:

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

gdzie rozdzielczość jest zawarta w bloku JFIF. PIL † nie wydaje się tłumaczyć tego bloku JFIF w 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)}

Można jednak określić rozdzielczość dla wyjścia TIFF

>>> im.save("lena.tiff", dpi=(300, 300))
>>> lena = Image.open("lena.tiff")
>>> lena.info
{"compression": "raw", "dpi": (300.0, 300.0)}

i identify zgadza się

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

† Notka o pozornej śmierci PIL

O ile mogę powiedzieć, że ostatnie wydanie PIL było w 2009 roku który został wyparty przez Projekt poduszki który wydaje się być w aktywny rozwój. Niestety, Pillow nie zmienił nazwy paczki, więc jeśli napiszesz:

import PIL

lub

from PIL import Image

wiesz, w jaki sposób znasz bibliotekę, z którą pracujesz, z wyjątkiem tego

>>> PIL.PILLOW_VERSION

które powinno dać NameError pod PIL, ale numer wersji ("2.9.0" jest najnowszym wydaniem) pod Pillow.

Jeśli korzystasz z PIL, a nie z Pillow, nie mam pojęcia, czy powyższa odpowiedź zadziała dla ciebie, i osiągnąłem limit ilości kodu PIL-a, który chcę dziś przeczytać.