📷
【WSL2】heic画像を一括でjpgに変換する
iPhoneの写真設定には「互換性優先」と「高効率」のモードがあります。
「互換性優先」の設定では通常のjpg形式で画像が保存されます。
「高効率」の設定では圧縮率の高い軽量なデータとして保存できますが、拡張子がheicとなるためWindows上の一部ソフトで読み込めないなど互換性が犠牲になる場合があります。
そんなheic画像を一括でjpgに変換した際の備忘録です。
実行環境
- Windows11
- WSL2 (Ubuntu20.04)
heif-convertのインストール
libheifを利用します。
aptで落とせます。
sudo apt install libheif-examples
heif-convert
コマンドを使い、1枚のheic画像をjpgに変換してみます。
heif-convert hoge.heic hoge.jpg
うまくいきました。
File contains 1 images
Written to hoge.jpg
複数のheic画像を一括でjpgに変換する
対象ディレクトリの全heicファイルをjpg化するshell scriptを書きます。
vi heic2jpg.sh
heic2jpg.sh
#!/bin/bash
for file in `\find /mnt/c/Users/path/to/target_dir -maxdepth 1 -type f`; do
if [[ $file == *.heic ]]; then
heif-convert $file $file.jpg
fi
done
簡単なスクリプトです。
WSL2では /mnt/c/
配下にWindowsのCドライブがマウントされます。
path/to/target_dir
の部分は、Windows側のPictureディレクトリなどheic画像を置いているPATHに書き換えてください。
for文の中では対象ディレクトリ直下にあるファイルのうち、拡張子がheicであるもののみを対象に heif-convert
しています。
実行。
./heic2jpg.sh
画像1枚あたり1秒程かかるので大量の画像を処理する場合は気長に待ってあげる必要がありますが、数行のスクリプトだけで楽に変換できました。
libheif作者の方、ありがとう。
Discussion