Finder で .heic を .jpg に変換する

iPhone で写真を撮ると .heic (High Efficiency Image File Format (Wikipedia)) になります。macOS 上で見る分には問題ないんですが、共有する時に JPEG にしたいことがあります。

Finder を拡張する

macOS 標準機能の Quick Actions と Automator を使って、Finder 上で簡単に変換できるようにします。

完成した Workflow を GitHub に置いておきます。 GitHub repo(ecpplus/shell-utils)

以下、作成方法の説明です。

準備

コマンドラインで変換方法を確認する

sips コマンド

macOS に標準で入っている sips コマンドで画像変換が出来ます。 /usr/bin/sips にあります。様々なオプションがありますが、今回はフォーマット変更のみ使用します。

任意の画像を jpeg フォーマットに変更するには下記のようにします。

sips -s format jpeg $input_path --out $output_path

出力先のファイル名を整える

出力ファイル名は foobar.jpg のように .jpg で終わるようにしたいです. シェルスクリプトで簡単にフォーマット出来ます。

INPUT="/foo/bar/IMG_1234.heic"
echo ${INPUT%%.*}.jpg

=> /foo/bar/IMG_1234.jpg

複数画像を一気に変換したい

for ループを使って複数画像をまとめて処理します。

for f in "$@"
do
  sips -s format jpeg "$f" --out "${f%%.*}".jpg
done

Automator workflow を作成

上記の準備を Automator の workflow にまとめます。

  1. Automator.app を起動します。 (/Applications/ 以下にあります)
  2. File (⌘N) から Create a new workflow で新規ワークフローを作成します。
  3. Quick Action を選択します。 New
  4. 下記のように workflow を定義します。 Workflow

    1. actions から Run Shell Script を選択します。
    2. Workflow receives current image files in Finder.app となるように選択します。
    3. 下記の shell script を入力します。
    for f in $@
    do
    sips -s format jpeg $f --out ${f%%.*}.jpg
    done
  5. 名前を付けて保存します。
  6. これで完成です。Finder から使えます。

使い方

コンテクストメニューから

  1. 1つもしくは複数のファイルを選択し、右クリックします。
  2. Service > Convert to JPEG を選択します (保存した時に付けた名前) From

プレビューエリアから

プレビューエリアにも自動的にショートカットが表示されます。

From


色々と CUI でプログラムを作ってしまいがちだけど、GUI の方が便利なものは Automator を使って実装するのは良いアイデアなのかもしれません👌🏻

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です