PILで画像をロードできないときに確認すること

PILで画像をロードするとき、しばしば画像がロードできない現象が起きていたが、解決した。

stackoverflow.com

stackoverflow.com

自分のケースも

IOError: image file is truncated (0 bytes not processed)

というエラーだったので、おそらくこれで間違いない。

解決法としては、

from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True

を追加するだけで良いらしい。

どうやらPILは極端に大きな画像など高速にロードできない画像はロードしないで見過ごす仕様になっているらしい。
デフォルトでFalseになっているLOAD_TRUNCATED_IMAGESをTrueにすることできちんとロードするようになった。

いままで「え?なんで他の人は普通にロードできるの?俺だけ?」と思っていたものだが、これで一つ懸念が解決して良かった。
やっぱ先人のコードを読むのは大事