2012-03-31 43 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解決了這個問題。 :)