2012-10-23 43 views
4

CarrierWave的Railscast插曲:Rmagick無法操縱PNG

我通過自制的山獅安裝ImageMagick,導出以下路徑:

export PKG_CONFIG_PATH="/opt/local/lib/pkgconfig:$PKG_CONFIG_PATH" 

符號鏈接如下:

ln -s /usr/local/include/ImageMagick/wand /usr/local/include/wand 
ln -s /usr/local/include/ImageMagick/magick /usr/local/include/magick 

並通過bundler安裝rmagick

在我uploader我有以下幾點:

include CarrierWave::RMagick 
version :thumb do 
    process :resize_to_limit => [85, 85] 
end 

它創建縮略圖就好了,但不是png文件。我試過png圖像屈指可數,它總是失敗,此錯誤:

Failed to manipulate with rmagick, maybe it is not an image? Original Error: no decode delegate for this image format `<path>/public/uploads/tmp/20121022-2133-9885-3333/thumb_cat_vs_internet.png' @ error/constitute.c/ReadImage/544 

jpeg圖像工作得很好。

編輯

identify -list format | grep -i png回報什麼,說明PNG解碼代表可能缺失。怎麼辦?

+1

當你運行'identify -list format'時你會得到什麼?也許這個png代表確實缺少了...... – PinnyM

+0

@PinnyM - 好猜。更新了問題,但似乎沒有PNG代表。任何想法如何修改? –

+0

卸載/重新安裝是你可以採取的最好的第一槍... – PinnyM

回答

4

在確定沒有安裝PNG代理(使用identify -list format)之後,您應該嘗試卸載/重新安裝ImageMagick,因爲安裝程序可能會遺漏某些內容。