加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – ImageMagick不能使用JPEG(OSX / X11)?

发布时间:2020-12-17 04:01:15 所属栏目:百科 来源:网络整理
导读:尝试使用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 Magickcat = ImageList.new("test.jpg")cat.d
尝试使用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
...

有任何想法吗?谢谢!

解决方法

图像已被成功读取和处理,cat.display抛出了您的错误.它不是图像格式委托丢失,而是窗口显示一个.

如果只键入以下内容,您将在命令行上看到相同的错误消息:

display test.jpg

所以这是一个Image Magick问题,而不是RMagick或Ruby问题.

似乎显示方法设计用于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将启动一个显示窗口.虽然我想我会继续自己使用其他观众.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读