尝试使用Mac OSX和自制软件给RMagick一个旋转。
版本: Mac OSX 10.7.5,HomeBrew 0.9.4。,Ruby 2.0,Rmagick 2.13.2,ImageMagick 6.8.6-3。
这是我的Ruby代码,位于名为rename.rb
的文件中:
require 'RMagick'
include Magick
cat = ImageList.new("test.jpg")
cat.display
exit
这是我的终端输出:
rename.rb:5:in `display': delegate library support not built-in `test.jpg' (X11) @ error/display.c/DisplayImages/16067 (Magick::ImageMagickError)
from rename.rb:5:in `<main>'
虽然我安装了适当的代理(但我不完全确定,因为我是ImageMagick的n00b)。如果我运行convert -list configure
,我会得到这个:
...
DELEGATES bzlib fontconfig freetype jng jpeg png rsvg tiff xml zlib
...
任何想法?谢谢!
答案 0 :(得分:11)
图像已被成功读取和处理,cat.display
引发了错误。它不是图像格式委托丢失,而是窗口显示一个。
如果只键入:
,您将在命令行中看到相同的错误消息display test.jpg
所以这是一个Image Magick问题,而不是RMagick或Ruby问题。
似乎display
方法设计用于X11窗口,这不是Mac OS X上的默认功能。您可以重新构建它,包括X11服务和库。我使用XQuartz支持X11,但在 Image Magick之后安装它(正如我所做的那样)无法解决这个问题。所以,我得到的错误与你相同,但我不使用display
,我只是在命令行上使用open test.jpg
之类的命令,或者:
`open test.jpg`
来自Ruby的这不是一个与平台无关的解决方案,但我可以查看我处理的图像。
或者,您可以尝试使用X11支持重新安装Image Magick和rmagick(当然,如果您安装了X11服务,例如XQuartz):
brew unlink imagemagick
brew install imagemagick --with-x11
gem install rmagick
我已经对此进行了测试,它的工作原理是cat.display
将启动一个显示窗口。虽然我想我会继续自己使用其他观众。