MSYS2にインストールしたImageMagickが正常に動作しない件について

  • まずは下記のようなコマンドで imagemagick をインストールする.
  • 私は 32bit 版を選んだ.
$ pacman -Ss imagemagick
mingw32/mingw-w64-i686-imagemagick 7.0.3.1-1
    An image viewing/manipulation program (mingw-w64)
mingw64/mingw-w64-x86_64-imagemagick 7.0.3.1-1
    An image viewing/manipulation program (mingw-w64)
$ pacman -S mingw-w64-i686-imagemagick

(略)
  • バージョンの確認をしてインストールが正常にされているかを確かめる.
  • このとき msys2.exe で起動すると path が通っていなくてエラーが出るので mingw32.exe を使う. (msys2-launcher を使うことを前提にしてる)
$ convert -version
Version: ImageMagick 7.0.3-1 Q16 i686 2016-10-07 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps rsvg tiff webp wmf xml zlib
  • 何かしらのコマンドを使おうとするとエラーが出る.
$ convert test.jpg test.png
convert.exe: no decode delegate for this image format `JPG' @ error/constitute.c/ReadImage/508.
  • 使用可能なフォーマットを表示させようとするも何も表示されない.
$ convert -list format
  • 日本語でググっても解決方法が見つからなかった .
  • 英語でググったらいいのが出てきた (https://github.com/Alexpux/MINGW-packages/issues/1885)
  • coder modulesconfigure のパスが通ってないので次のように bash の設定ファイルを編集しろとのこと.
export MAGICK_HOME="/mingw64/bin"
export MAGICK_CONFIGURE_PATH="/mingw64/etc/ImageMagick-7"
export MAGICK_CODER_MODULE_PATH="/mingw64/lib/ImageMagick-7.0.3/modules-Q16HDRI/coders"
  • 自分の場合は以下のような記述を .bashrc に追加した.
export MAGICK_HOME="/mingw32/bin"
export MAGICK_CONFIGURE_PATH="/mingw32/lib/ImageMagick-7.0.3"
export MAGICK_CODER_MODULE_PATH="/mingw32/lib/ImageMagick-7.0.3/modules-Q16HDRI/coders"
  • 1度閉じて再度起動すると変更が適用される.
$ convert -list format
   Format  Module    Mode  Description
-------------------------------------------------------------------------------
      3FR  DNG       r--   Hasselblad CFV/H3D39II
      AAI* AAI       rw+   AAI Dune image
       AI  PDF       rw-   Adobe Illustrator CS2

(略)
  • ImageMagick をアップデートした際にはその都度 path の値を変更する必要がある.

参考

github.com

github.com

yaritakunai.hatenablog.com