物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Python+Pillowで画像のDPIを取得、書き換える

データ部分を一切書き換えることなく、DPIを書き換えたい場合は、

PNG形式の画像ファイルのDPIを書き換えると、

JPG形式の画像ファイルのDPIを書き換える を使って欲しい。

以下、はデータ部分の書き換えが発生するシンプルなコード

from PIL import Image
filepath = "a.jpg"
im = Image.open(filepath) # 画像を開く
print(im.info["dpi"]) # DPIを取得する
# (72, 72)
_dpi = 144
im.save(filepath, dpi = (_dpi, _dpi)) # 新しいDPIに書き換えて出力する
im.close() # 閉じる

im.saveでJPEGを保存するときはqualityはデフォルトで75に設定されている。qualityは[1-100]で大きい方が画像サイズが大きい。

im.save(filepath, dpi = (_dpi, _dpi), quality=75)
# は
im.save(filepath, dpi = (_dpi, _dpi))
# や
im.save(filepath, dpi = (_dpi, _dpi), quality=0)
# と同じ

参照

qiita.com