LoginSignup
0
0

HEICをjpgに変換するコード

Posted at

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で取れるようにしてほしいです...

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0