macOS で ImageMagick を使いたい場合は Homebrew で簡単に入れることができるが、ImageMagick は依存パッケージが多いのでなんとなく Homebrew で入れたくないなぁという気持ちがあり、Docker で動かしてみることにした。ちなみに Apple Silicon (M1 Mac) でも動いた。
[2022.05 追記]: FFmpeg でも同じことをやった → https://qiita.com/hoto17296/items/f9f1f22c8cde5c15da34
初期設定
ImageMagick が使える Docker イメージを作る。
Dockefile
FROM debian
RUN apt-get update && apt-get -y install imagemagick
$ docker build -t imagemagick .
適当に imagemagick
という名前でビルドしているがそこはお好きに。
使う
例として、作業ディレクトリ内の PNG 画像をすべて JPEG に変換してみる。
$ docker run --rm -v "$(pwd)":/mnt -w /mnt imagemagick \
mogrify -format jpg *.png
注意点として、ホストの作業ディレクトリをマウントしているので、ホストの親ディレクトリのパス指定や絶対パス指定は使えない。
エイリアスを設定する
毎回 docker コマンドのオプションを入力するのは面倒なのでエイリアスを設定して簡単に使えるようにする。
~/.zshrc
alias imagemagick='docker run --rm -v "$(pwd)":/mnt -w /mnt imagemagick'
エイリアスを設定すると、先ほどの例はこのように実行できる。
$ imagemagick mogrify -format jpg *.png