1.はじめに
iphoneの写真データをPCにインポートしたら見慣れない拡張子を発見しました。
なんというか不便なのでJPEGへの変換方法を調べたので、自分用のメモ兼ねて残します
2.準備とか参考にした記事とか
コード書くにあたってこちらの記事を参考にさせていただきました。
HEICとか何なのかは知りません。でも、とりあえずはPNGにしよう!
ありがとうございます!!
pythonの標準ライブラリ以外でPillowとpyheifを使います。
pyheifについてはこちらを参照ください。
pyheif
pyheifのインストール
$ pip install pyheif
3.コードとか
難しいことはやってないです。
カレントディレクトリと下にHEICファイル突っ込んで、同じフォルダにJPEGファイルを生成するだけ!
from PIL import Image
import pyheif
import pathlib
import glob
def heic_png(image_path, save_path):
# HEICファイルpyheifで読み込み
heif_file = pyheif.read(image_path)
# 読み込んだファイルの中身をdata変数へ
data = Image.frombytes(
heif_file.mode,
heif_file.size,
heif_file.data,
"raw",
heif_file.mode,
heif_file.stride,
)
# JPEGで保存
data.save(str(save_path), "JPEG")
# 変換対象のファイルがあるディレクトリ
# カレントの下のtempディレクトリを指定
image_dir = pathlib.Path('./temp')
# globでディレクトリ内のHEICファイルをリストで取得
heic_path = list(image_dir.glob('**/*.HEIC'))
# リストのHEICファイルを1個づつJPEGへ変換
for i in heic_path:
m = "./" + str(i)
n = './temp/' + str(i.stem) + '.jpg'
heic_png(m, n)
間違いなどありましたら、ご指摘お願いします!