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 does not handle defs? 这个问题与让 IM 正确进行转换有关。它确实,从命令行使用一个简单的“convert test.svg test.png”

但是 RMagick 转换的工作方式不同。在我的本地开发机器上,我确实使用 RVG 支持编译了 ImageMagick,并且修复了命令行。但我不知道如何让 RMagick 以同样的方式使用它。

此外,我希望它是我需要在我的代码中做的事情,而不是服务器上需要的某些功能,因为这个应用程序托管在 heroku 上,我无法控制他们如何安装 IM。

4

1 回答 1

0

我应该回来报告的。

是的,Heroku 有 IM,但他们不支持它。它只是他们使用的(我相信)Ubuntu 的长期支持版本的一部分。我们来回讨论了几次,他们说他们将来可能会升级它,以及其他 linux libs / utils,但没有明确的时间表。我的猜测是,也许在下一个堆栈上。

在那之前,我已经停止在我的 SVG 中使用符号,并且不得不在转换顺序上做一些技巧,但在大多数情况下,我的工作正常。另一条建议是确保您使用的是 Heroku 在您的 Dev box 上使用的 IM 的 EXACT 版本。省了很多心痛。

于 2012-07-26T23:35:47.633 回答