2012-03-31 42 views
2

我通过MacPorts和mini_magick gem安装了ImageMagick,并且出现以下脚本的错误消息。我该如何解决这个问题?mini_magick gem无法与我的ImageMagick安装配合使用

require 'rubygems' 
require 'mini_magick' 

image = MiniMagick::Image.open("input.jpg") 
image.resize "100x100" 
image.write "output.jpg" 



/Users/Max/.rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:164:in `create': MiniMagick::Invalid (MiniMagick::Invalid) 
    from /Users/Max/.rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:73:in `read' 
    from /Users/Max/.rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:134:in `block in open' 
    from /Users/Max/.rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:133:in `open' 
    from /Users/Max/.rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:133:in `open' 
    from minimagick.rb:4:in `<main>' 

回答

2

它看起来好像MiniMagick无法理解文件。见this comment in the source

检查,以确保MiniMagick可以读取该文件,并了解它 。

这使用'identify'命令行实用程序来检查文件。如果 您遇到问题,请直接使用 'identify'命令,看看您是否可以找出问题所在。

+0

我已经尝试过它与PNG图像,它的工作原理,但我也需要它与JPEG和创建上述错误。 – qendu 2012-04-01 00:07:03

+0

这是identify命令的输出。我用不同的有效JPEG来试用它。识别:对于此图像格式'input.jpg',不解码代表。 – qendu 2012-04-01 00:09:56

+0

我知道ImageMagick的Homebrew版本[取决于外部jpeg库](https://github.com/mxcl/homebrew/blob/ce082c167cba9e5df3c95e429ec510da8a29fa19/Library/Formula/imagemagick.rb#L69);有没有可能MacPorts版本默认不安装一个版本? – 2012-04-01 01:49:59

7

尝试重新安装ImageMagick的,如果你使用的是Mac OS X:

brew uninstall imagemagick jpeg libtiff jasper 
brew install imagemagick 

对于检查JPG格式现在可供选择:

identify -list format | grep JPG 

这将返回可用的格式JPG ...

+2

为我完美工作。谢谢!!! – Edmund 2014-03-04 16:17:15

+0

我不得不用'--build-from-source'标志来安装ImageMagick。 – shrx 2014-06-12 17:39:32

+0

我第一次只重新安装imagemagick。没有成功。我没有碧玉,但也删除了jpeg和libtiff,然后重新安装imagemagick。 – flixt 2015-01-09 10:07:20

1

在我的情况下,它通过自制软件安装ghostscript后打破了。我认为ghostscript安装了一些ImageMagick依赖关系并将其破坏。重新安装ImagEMagick解决了这个问题。 :)