HEICをJPGに変換する
iPhoneで写真を撮る時デフォルトだとHEIC形式で保存されます。HEIC形式だと画像処理をする際何かと不便なので、pythonでjpgに変えてしまいましょう!
注意:iPhoneの設定を変えることでjpg形式で撮影することは可能です
前提条件
pyheifをインストール
pip install pyheif
コード
heic2jpg.py
import os
import pyheif
import shutil
from PIL import Image
# 入力フォルダと出力フォルダのパス
input_folder = "<input_folder>"
output_folder = "<output_folder>"
# 出力フォルダが存在しない場合は作成する
if not os.path.exists(output_folder):
os.makedirs(output_folder)
num = 0
# 入力フォルダ内の画像ファイルを走査して変換する
for filename in os.listdir(input_folder):
num += 1
# ファイルのパス
file_path = os.path.join(input_folder, filename)
# ファイルが画像ファイルであるかを確認する
if os.path.isfile(file_path) and any(filename.endswith(ext) for ext in ['.jpg', '.jpeg', '.png', '.JPG', '.bmp', '.tiff', '.HEIC']):
# HEIC形式の画像をJPEG形式に変換して保存
if filename.endswith('.HEIC'):
heif_file = pyheif.read(file_path)
image = Image.frombytes(
heif_file.mode,
heif_file.size,
heif_file.data,
"raw",
heif_file.mode,
heif_file.stride,
)
output_file_path = os.path.join(output_folder, f'{num:04}' + '.jpg')
image.save(output_file_path, "JPEG")
print(f"{filename} を変換して {output_file_path} に保存しました。")
else:
# その他の画像形式の場合は単純にコピーする
output_file_path = os.path.join(output_folder, f'{num:04}' + '.jpg')
shutil.copy(file_path, output_file_path)
print(f"{filename} をコピーして {output_file_path} に保存しました。")
print("すべての画像を変換しました。")
終わりに
iPhoneのデフォをjpegで取れるようにしてほしいです...