前置き
マルチページのTIFF画像の各ページにアクセス、分割して保存する方法のメモ。
コード
各ページを保存する例。
from PIL import Image, ImageSequence
img = Image.open('sample.tiff')
for i, page in enumerate(ImageSequence.Iterator(img)):
page.save("image_file_{}.jpg".format(i), format='jpeg', quality=95)
image_file_0.jpg
という形式で連番のファイルが作成される。
ImageSequence
を使わない場合はtry-except
構文でseek(i)
を実行してEOFError
という例外をトラップする。
まあ素直にImageSequence
使うべし。
そのほか
ファイルに書き出したくないときはio.BytesIO()
と組み合わせればいけるはず。
ネタ元
Python PIL For Loop to work with Multi-image TIFF - Stack Overflow