LoginSignup
6
3

More than 3 years have passed since last update.

Pythonで指定ディレクトリのHEICファイルをJPEGへ変換する

Last updated at Posted at 2020-12-04

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)

間違いなどありましたら、ご指摘お願いします!

6
3
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
6
3