我正在从浏览器(Javascript)向运行Rails(Ruby)的服务器发送SVG字符串。我想将此字符串转换为带有透明度的PNG,或者至少转换为SVG文件以便稍后转换。有什么好的想法吗?我已经安装了RMagick,但仍然不确定如何从字符串创建文件。是否有其他解决方案可以实现此目标?我的想法是动态创建简单的“标志”。
require "RMagick"
svg_string='
<svg xmlns="http://www.w3.org/2000/svg" width="120" height="120" viewPort="0 0 120 120" version="1.1">
<rect width="150" height="150" fill="rgb(0, 255, 0)" stroke-width="1" stroke="rgb(0, 0, 0)" />
<line x1="20" y1="100" x2="100" y2="20" stroke="black" stroke-width="2"/>
</svg>'
img = Magick::Image.from_blob(svg_string) {
self.format = 'SVG'
self.background_color = 'transparent'
}
img.write "example_out.png"
编辑
如果该字符串只是SVG路径,则可以使用Magick :: Draw.path
来“重建”矢量图形。文档和示例在这里。
img [0] .write()
。 - Jeff Hykin