【python】heic画像を大きさを変更してjpgに変換する方法

iPhoneを使っている方は写真の保存形式がheicという謎の拡張子になっていることかと思います。

私はiPhoneで撮影した画像をブログに貼り付けるには、一度heic形式の画像をjpgやpngに変換する必要があるかと思います。

また、最近のiPhoneの写真はとても美麗でかつ容量が非常に大きいです(1枚の写真で2MBあったりします)。

さすがにそんなに大容量の画像をぽんぽん貼り付けるわけにはいかないので、画像サイズも小さくしたいという要求があります。

というわけで、フォルダ内のheicファイルをサイズを縮小してjpgにするpythonプログラムを書きました。参考にしてくださればと思います。

時間が無い方のためにまずはコードを下に示します。

from PIL import Image
import pillow_heif
import glob
import pathlib

dir = r"(** 変換したい画像があるフォルダのディレクトリ **)"

def heic_jpg(image_path, save_path):
    heif_file = pillow_heif.read_heif(image_path)
    for img in heif_file: 
        image = Image.frombytes(
            img.mode,
            img.size,
            img.data,
            'raw',
            img.mode,
            img.stride,
        )
    # 画像サイズの縮小
    h = image.height // 4
    w = image.width // 4
    image.thumbnail((h, w))
    image.save(save_path, "JPEG")

image_dir = pathlib.Path(dir)
heic_path = list(image_dir.glob('**/*.HEIC'))

for i in heic_path:
    image_path = str(i)
    save_path =  str(image_dir / i.stem) + '.jpg'
    print(save_path)
    heic_jpg(image_path, save_path)

画像の拡張子変換にはpillow_heifライブラリを用います。

フォルダ内のheicファイルを探索して、サイズを小さくしてからjpgファイルに変換して同じフォルダに保存します。

いろいろ試行してみた結果image.thumbnail()で大きさを変更できるようです。

参考になりましたら幸いです。

コメント

タイトルとURLをコピーしました