processing: パス is not recognized by the 'identify'
画像をアップロードして表示しようとした時に発生したエラーです。
環境
ruby 1.9.3
rails 3.1.3
rmagick 2.13.1
ImageMagick 6.6.7-10
解決策
identifyのエラーで検索すると大抵は、enviroment.rbに
Paperclip.options[:command_path] = "C:/ImageMagick-6.6.2-Q16/"
こんな感じで追記しろとあったが、自分は解決しなかった。
しょうがないので、
そのエラーを吐き出している場所を探してみました。
$ vi Rails.root/vendor/bundler/ruby/1.9.1/gems/paperclip-2.4.5/lib/paperclip/geometry.rb
raise(NotIdentifiedByImageMagickError.new("#{file_path} is not recognized by the 'identify' command."))
raise(NotIdentifiedByImageMagickError.new("#{file_path} is not recognized by the 'identify' command."))
18~30行目あたりのself.from_fileメソッドの上記コードで出力されているようです。
ここらへんでデバッグをしつつ、
identifyコマンドをフルパスで書いてみたりとやっていたところ
jpg形式はエラーにならずpng形式がエラーになっていた。
(PNGしか通さない仕様だったため気づかなかった)
ということは、単純にpingをサポートしてないだけじゃん?ということになり
・サポートできる拡張子を表示
$ convert -list format
やっぱりPNGが入っていなかった。
# yum -y install zlib
# yum -y install libjpeg-devel
ImageMagick再Install
# cd ??/ImageMagickxx/
# ./configure && make && make install
# convert -list format
# yum -y install libjpeg-devel
ImageMagick再Install
# cd ??/ImageMagickxx/
# ./configure && make && make install
# convert -list format
これで解決
