"no decode delegate for this image format" の対処法

CentOS6.4で、ImageMagickまたはImage::Magick(PerlMagick)でJPEGファイルをコンバートしようとしたら表題のエラーが出ました。

原因と対処法

JPEGライブラリが入ってないのが原因です。
この場合、
$ convert -list format
と打ってJPEGが出てこないはずです。

JPEGライブラリを入れましょう。
$ sudo yum install libjpeg-turbo-devel
sudo yum install libjpeg-turbo だけではダメで、必ず "-devel" の方もインストールしてください。(これに気付かず小一時間ハマりました)

もしくはyumじゃなくてソースを落としてきてコンパイルでもいけると思います。

確認方法

さてJPEGライブラリをインストールできたら下記コマンドをたたいてみてください。
JPEGが表示されていればOKです。
$ convert -list format
他の確認方法としては、convert --version の"Deletegates"の項目を見てもよいでしょう。
$ convert --version
Version: ImageMagick 6.8.7-2 2013-10-25 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC
Delegates: jpeg zlib

PNGファイルのエラーの場合

PNGファイルのエラーの場合はこちらを参考にしてみてください。
Image::Magick(PerlMagick)でpngファイルが読み込めないエラー
カテゴリ: