ImageMagick - 转换失败

时间:2017-08-29 12:40:16

标签: imagemagick carrierwave imagemagick-convert

我正在尝试在ruby中使用CarrierWave,并且它一直在失败。 我设法使用convert实用程序重现错误。

> convert file.jpg file.bmp
convert: unable to load module `/usr/local/Cellar/imagemagick/6.9.7-3/lib/ImageMagick//modules-Q16/coders/jpeg.la': file not found @ error/module.c/OpenModule/1302.
convert: no decode delegate for this image format `JPEG' @ error/constitute.c/ReadImage/504.
convert: no images defined `file.bmp' @ error/convert.c/ConvertImageCommand/3258.

但我看到jpeg.la确实存在的文件。 我使用Homebrew(brew install ImageMagick)安装了ImageMagick,尝试升级到最新版本但仍然失败。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

尝试升级 imagemagick @ 6 ,而不是普通的 imagemagick 公式。

2016年12月/ 2017年1月,carrierwave使用了rmagick,它依赖于ImageMagick的 6 版本。大约在同一时间,brew转移到了ImageMagick的 7 版本。此busted rmagick和载波功能,Hombebrew/core-brew项目added an imagemagick@6公式。

运行carrierwave的快速而肮脏的修复方法是brew install imagemagick@6 && brew link imagemagick@6 --force

如果是这种情况,那么brew upgrade imagemagick将不会更新rmagick正在使用的库。相反brew upgrade imagemagick@6是必要的。

替代路线可能正在从使用rmagick切换到mini_magick。在撰写本文时(2017年10月至03年),mini_magick gem似乎更好地维护,并且似乎与最新版本的imagemagick一起使用。