【问题标题】:ImageMagick can't use JPEG (OSX/X11)?ImageMagick 不能使用 JPEG (OSX/X11)?
【发布时间】:2013-08-11 12:43:16
【问题描述】:

尝试使用 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
...

有什么想法吗?谢谢!

【问题讨论】:

    标签: ruby imagemagick homebrew rmagick


    【解决方案1】:

    图像已成功读取和处理,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`
    

    来自红宝石。这不是一个与平台无关的解决方案,但我可以很好地查看我处理的图像。

    或者,您可以尝试重新安装支持 X11 的 Image Magick 和 rmagick(当然前提是您安装了 XQuartz 等 X11 服务):

    brew unlink imagemagick
    brew install imagemagick --with-x11
    gem install rmagick
    

    我已经对此进行了测试,它可以让cat.display 启动一个显示窗口。虽然我认为我自己会继续使用其他查看器。

    【讨论】:

    • 谢谢。在使用 X11 重新安装之前,我必须实际卸载 imagemagick
    猜你喜欢
    • 1970-01-01
    • 2013-06-05
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    相关资源
    最近更新 更多