/ PILでTIFF画像の解像度を設定する方法 - python、python-imaging-library

PythonでTIFF画像の解像度を設定する方法PIL - 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")

私がはっきりと分かるように、image((dpi):(300、300))は、出力TIFF画像の解像度が300 DPIであることを前提としています。ただし、TIFFファイルの先頭ファイル情報を読んだときの出力解像度は不定です。解像度を設定する上で何かアイデアはありますか?ありがとう。

回答:

回答№1は2

私は "ImageMagick"を使っています identify ファイルのメタデータを読み込むプログラム。私のソースファイルは 由緒あるレナ画像 そのために:

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

解像度がJFIFブロックに含まれている場所。 PIL†はImage.openのこのJFIFブロックを翻訳していないようです。

>>> 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

PILではNameErrorが返されますが、Pillowではバージョン番号( "2.9.0"が最新のリリースです)が返されます。

PillではなくPILを使用しているのであれば、上記の答えがうまくいくかどうかはわかりません。そして、今日読んでほしいPIL風コードの数に限界があります。