Rmagick将SVG转换与ImageMagick不同

4
这是我的测试链接:http://pestnow.herokuapp.com/tester/svg,左侧的图像是SVG格式的,右侧是PNG格式的转换。以下是转换的极为简单的代码:
def self.svg_to_png(svg)
  img = Magick::Image::from_blob(svg)
  return img[0].to_blob {self.format = 'PNG'}
end

我一直在解决这个问题,并在这里找到了答案:SVG to PNG Conversion with ImageMagick doesn't handle defs?。该问题与正确进行IM转换有关。而且,通过简单的“convert test.svg test.png”命令行确实可以完成转换。
但是,RMagick转换并不相同。在我的本地开发环境中,我已经编译了支持RVG的ImageMagick,并解决了命令行问题。但我不知道如何使RMagick以同样的方式使用它。
此外,我希望这是我需要在我的代码中做的事情,而不是服务器上所需的某些功能,因为这个应用程序托管在heroku上,我无法控制他们如何安装IM。

3
我得出结论,Heroku的ImageMagick版本不支持RSVG,并已经联系他们是否可以启用。我会回报我的支持票据的结果。 - Dave Sanders
是的,Heroku已经安装了ImageMagick,但据我所知,在那里你不能真正自定义设置。你可以尝试使用允许你安装东西的不同主机... - AJcodez
1
链接失效:http://pestnow.herokuapp.com/tester/svg 404。 - Besi
1个回答

0

我应该回报告一下。

是的,Heroku有IM,但他们不支持它。它只是作为他们使用的(我相信)Ubuntu的长期支持版本的一部分存在。我们来回交流了几次,他们说他们可能会在未来升级它,以及其他Linux库/实用程序,但没有明确的时间表。我的猜测是,也许在下一个堆栈上。

在那之前,我已经停止在我的SVG中使用符号,并且必须对变换顺序进行一些技巧,但大多数情况下我已经使事情正常工作了。另一个建议是确保您在Dev box上使用与Heroku使用的完全相同的IM版本。这样可以节省很多心痛。


好久不见了。请问您在Heroku上运行的IM版本是哪个?我也遇到了SVG支持的问题。 - Nobita
这是Heroku在该服务器上的最新状态 - 我不知道自从我第一次发布以来它是否有所改变。版本:ImageMagick 6.5.7-8 2012-08-17 Q16 http://www.imagemagick.org 版权所有:Copyright (C) 1999-2009 ImageMagick Studio LLC 特性:OpenMP - Dave Sanders

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接