ImageMagick 错误

22
尝试在我的Grunt任务中通过node-imagemagick运行ImageMagick时,我从ImageMagick收到以下错误信息:
警告:命令失败:identify: 无法加载模块'/usr/local/Cellar/imagemagick/6.8.8-9/lib/ImageMagick//modules-Q16/coders/jpeg.la':文件不存在@ error/module.c/OpenModule/1275。 identify: no decode delegate for this image format /inventaire/videos/OFF_Arrestation joueur_14_petit.jpg' @ error/constitute.c/ReadImage/501. 使用--force以继续。
为什么ImageMagick要在'/usr/local/Cellar/imagemagick/6.8.8-9/lib/ImageMagick//modules-Q16/coders/jpeg.la'处加载JPG编码器?为什么在ImageMagick//之后有双斜杠?
这个grunt脚本在OSX 10.8上运行得很完美,但现在在10.9.2上失败了。有人知道如何修复吗?

嘿,Dominic,@emcconville的解决方案对你有用吗?我在使用Imagemagick和paperclip时遇到了相同的错误。 - rohitmishra
5个回答

23

当我从Mt.Lion升级到Mavericks时,我也遇到了这个问题。我在homebrew的github存储库中找到了一个问题。对我有效的解决方法是:

$ brew uninstall imagemagick
$ brew install imagemagick --build-from-source

1
这最终是我在从Mt Lion -> Mavericks升级后找到的解决方案。 - netricate
如果在源代码构建时出现404错误,请确保您已更新(可能还升级了)Homebrew。 - Austin Moore

17

OSX Mavericks似乎破坏了jpeg库的链接。你所需要做的就是重新链接jpeg,然后重新安装imagemagick。

brew unlink jpeg
brew link jpeg

然后从源代码重新安装imagemagick

brew uninstall imagemagick
brew install imagemagick --build-from-source

现在,您可以检查委托中是否有JPEG。

identify -list configure | grep DELEGATES

现在应该支持jpeg格式

DELEGATES bzlib mpeg freetype jng jpeg lcms lzma png tiff xml zlib


1
在我的情况下,只需执行 brew unlink jpeg/brew link jpeg 就可以解决问题。 - viphe
在我的情况下,仅仅使用brew unlink jpeg/brew link jpeg命令是不够的,但是添加上brew uninstall imagemagick/brew install imagemagick --build-from-source命令(大约需要6分钟)确实可以解决问题! - Quuxplusone

6

在多次安装和卸载后,以下方法最终让我成功了。使用以下选项卸载并重新安装imagemagick:

brew install imagemagick --with-fontconfig --with-ghostscript --with-libtiff --with-webp

目前我只使用jpegpng格式,不确定这些选项如何帮助,但值得一试。


1
这也可以在不使用 --with-ghostscript 标志的情况下工作。 - cogell
1
为了正确安装imagemagick,我不得不删除graphicsmagick - chovy
我曾经遇到过同样的问题。按照这个链接所述,运行brew unlink libpng && brew link --overwrite libpng命令解决了我的问题。其中的overwrite参数是解决问题的关键。 - danomatika
非常感谢您...我尝试了很多方法。这个最终对我起作用了。 - Christophe

6
这是我的解决方案:
brew uninstall imagemagick@6 
brew install imagemagick@6 
PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfig gem install rmagick

3

由于系统升级,ImageMagick的模块依赖已经过时。您需要重新安装homebrew软件包。请参阅这些文章:“在OSX Mavericks上升级homebrew软件包”或“在OSX Lion上安装ImageMagick”。

为什么ImageMagick尝试在 /usr/local/Cellar/imagemagick/6.8.8-9/lib/ImageMagick//modules-Q16/coders/jpeg.la 中加载JPG编码器?

ImageMagick期望使用静态库来处理JPEG。该模块不存在或无法读取。

为什么ImageMagick//后面有双斜杠?

这是homebrew常见的一种用法。它是安全的,并将解析为 ImageMagick/

……知道如何修复吗?

在终端中运行以下命令:

brew uninstall imagemagick
brew update
brew cleanup
brew doctor
brew install imagemagick

仍然出现convert: unable to load module /usr/local/Cellar/imagemagick/6.8.9-1/lib/ImageMagick//modules-Q16/coders/png.la': file not found @ error/module.c/OpenModule/1282.`错误,已尝试所有方法。 - chovy

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