前置き
たまに「このファイル形式は対応していません」と言われることがありません?
僕はありました。
なので、pythonで変換プログラムを作成しました。
誰かの助けになれば幸いでーす。
環境
- Mac
- python 3.7.1
- jupyter lab
使用するライブラリ
- pyheif
- pillow
コード
from PIL import Image
import pyheif
heif_file = pyheif.read(image_path) # 1
data = Image.frombytes( # 2
heif_file.mode,
heif_file.size,
heif_file.data,
"raw",
heif_file.mode,
heif_file.stride,
)
image = data.resize(size) # 3
image.save(save_path, "PNG") # 4
何をやっているか
- HEIC画像を読みます。この時に「HeifFile object」ができます。
- それらをImage.frombytesモジュールに必要な物を打ち込みます。この時に「Image object」ができます。
- あとはresizeして
- saveで完了
最後に
- 簡単なので、大量のHEICデータがある場合は、上記のコードを関数化して、globなどで一括で読み込むと良いです!