Rmagick无法处理PNG图片。

4

在跟 CarrierWave 相关的 Railscast 集数(第 253 集)之后:

我通过 Homebrew 在 Mountain Lion 上安装了 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
@PinnyM - 猜得不错。我更新了问题,但似乎没有PNG委托。你有什么想法如何修改它? - Tyler DeWitt
卸载/重新安装是您可以尝试的最佳第一步... - PinnyM
1
第一次卸载/重新安装没有起作用...我会尝试更新Homebrew并进行另一次安装。 - Tyler DeWitt
好的,很棒。经过一次自制更新后,它就可以工作了。如果你想把你的评论变成答案,我会接受的。谢谢! - Tyler DeWitt
1个回答

4

如果确定未安装PNG代理(使用identify -list format),则应尝试卸载/重新安装ImageMagick,因为安装程序可能会遗漏某些内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接