用Minimagick替换Rmagick后,出现“identify.im6:没有针对此图像格式的解码代理”错误。

9
在我的Rails应用程序中,我刚刚移除了Rmagick并添加了Minimagick。 Rmagick太重了。使用Rmagick时一切正常,但是在minimagick中我遇到了以下错误:
MiniMagick::Invalid: `identify /tmp/mini_magick20150518-10411-1qz42x8` failed with error:
identify.im6: no decode delegate for this image format `/tmp/mini_magick20150518-10411-1qz42x8' @ error/constitute.c/ReadImage/544.
from /home/pubudu/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/mini_magick-4.2.4/lib/mini_magick/image.rb:200:in `rescue in validate!'

文件的URL地址:
[8] pry(main)> file.file.file
=> "/home/pubudu/Projects/istockseller/public/store/photos/thpubs/istockseller-13642162-wallhaven-61582.jpg"

The code im trying to run :

MiniMagick::Image.read(file.file.file).first

1
当你在控制台中输入以下内容时,会得到什么结果:identify -list format | grep JPG - errata
1
我得到了这个:JPG* JPEG rw- 联合图像专家组 JFIF 格式(80。我在Ubuntu 14.04中。 - THpubs
看起来 liblqr 没有正确链接。你的应用程序正在期望液体缩放——这是 Minimagick 不需要的功能。你需要使用 --with-lqr=yes 重新构建 ImageMagick。 - emcconville
@emcconville 怎么做呢?我从软件包管理器中安装了ImageMagick。但是在使用Rmagick时它能正常工作! - THpubs
2个回答

6
尝试重新安装ImageMagick并在配置中添加--with-jpeg=yes
运行convert -list configure,查看DELEGATES下是否有jpeg。如果没有,请 重新安装ImageMagick并在./configure中添加参数。
1. wget http://www.imagemagick.org/download/ImageMagick.tar.gz
2. tar xvfz ImageMagick.tar.gz
3. cd ImageMagick
4. ./configure --with-bzlib=yes --with-fontconfig=yes --with-freetype=yes --with-gslib=yes --with-gvc=yes --with-jpeg=yes --with-jp2=yes --with-png=yes --with-tiff=yes --disable-shared
5. make
6. sudo make install
7. sudo ldconfig /usr/local/lib
8. run again "convert -list configure" and look at changes

获取更多信息:Carrierwave错误信息:使用MiniMagick进行操作失败,可能不是一张图片?


0

我在我的Ubuntu服务器上也遇到了同样的问题。不过,我通过将ghostscriptlibgs-dev添加到我的Dockerfile的apt-get行中解决了它。

FROM ruby:2.5.3

RUN apt-get update -qq && apt-get install -y \
  ghostscript libgs-dev imagemagick

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