- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在Rails应用程序中将图像从SVG转换为PNG。由于Heroku目前无法/想要升级IM,因此ImageMagick不适用于我。我正在测试在开发人员中使用RSVG2/Cairo的一些想法,但遇到了障碍。
我可以轻松地将SVG转换并保存为PNG,如下所示:
#svg_test.rb
require 'debugger'
require 'rubygems'
require 'rsvg2'
SRC = 'test.svg'
DST = 'test.png'
svg = RSVG::Handle.new_from_file(SRC)
surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, 800, 800)
context = Cairo::Context.new(surface)
context.render_rsvg_handle(svg)
surface.write_to_png(DST)
最佳答案
啊哈!我是如此亲密,事后看来很明显。只需使用StringIO对象调用surface.write_to_png函数。这将填充字符串对象,然后您可以获取其字节。这是我编写的完成的svg_to_png函数,以及调用它的示例 Controller 。希望这可以帮助其他人。
ImageConvert函数:
def self.svg_to_png(svg)
svg = RSVG::Handle.new_from_data(svg)
surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, 800, 800)
context = Cairo::Context.new(surface)
context.render_rsvg_handle(svg)
b = StringIO.new
surface.write_to_png(b)
return b.string
end
def svg_img
path = File.expand_path('../../../public/images/test.svg', __FILE__)
f = File.open(path, 'r')
t = ImageConvert.svg_to_png(f.read)
send_data(t , :filename => 'test.png', :type=>'image/png')
end
关于ruby-on-rails - Ruby,RSVG和PNG流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11436873/
我使用 python rsvg 绑定(bind)将 svg 图像渲染到 cairo 中并保存到文件,这基本上可以工作。但如果 svg 文件包含链接图像,如下所示: 图像没有出现在最终文件中(svg
我正在尝试使用 ImageMagick 将 SVG 文件转换为 PNG。 SVG文件如下: 无论我使用什么方法,最终的结果都不包含图像。其他 SVG 元素已正确渲染。 我已经尝试过: c
我正在尝试使用以下代码(它是一个 Gtk 应用程序)使用 Cairo 和 RSVG 在 Python 中打印动态创建的 SVG。 它是一种特殊类型的纸张,正好是 147x205mm。如果我在 EOG
我正在使用以下代码读取 svg: from ctypes import CDLL, POINTER, Structure, byref, util from ctypes import c_bool,
我知道这个问题在这里有几个答案版本(例如: ImageMagick convert SVG to PNG not working with RSVG enabled ),但实际上我找不到真正解决我的确
我有一个在 Linux 上运行良好的 python 脚本,可以使用 Cairo 和 GTK 操作 SVG 文件。在 Linux 上,我包含了这个库: #import rsvg 我准备好了。在 Wind
我需要使用 RSVG 委托(delegate)进行转换。 convert -list format | grep SVG MSVG SVG rw+ ImageMagick's ow
我正在寻找使用 python 库 rsvg 将 SVG 图形转换为其他格式(主要是 PDF),但似乎无法在任何地方找到 python-librsvg 源来下载和安装在 Mac OSX 上。有帮助吗?
我正在尝试在 Python 3.2 中使用 rsvg,但我一直收到导入错误。我已经安装了所有的 librsvg 包和 cairo。我在网上找不到任何关于要安装什么才能让它工作的信息。我确实听说 rsv
有没有办法使用“rsvg-convert”将多页 SVG 或多 SVG 文件转换为单个多页 PDF? 我正在使用命令: /usr/bin/rsvg-convert -f pdf -o out.pdf
我使用 Cairo、OpenGL 和 rsvg 渲染了一个包含大量元素的巨大 SVG 文件。我通过 rsvg 在 cairo 表面绘制 svg 并创建一个 OpenGL 纹理来绘制它。一切安好。现在我
我在下载 r 包 rsvg 时遇到了困难。我首先使用 conda 为最新的 R 版本 4.0.2 创建了一个环境,遵循这些 instructions .我能够毫无问题地下载许多其他 R 包和 bioc
我正在尝试使用 Python、Cairo 和 librsvg 将 SVG 转换为 PNG。一切正常,除了沿着曲线键入的文本。尽管正常的水平文本没问题,但在结果 PNG 图像上此文本为空白。 Here
$ python -c '从 gi.repository 导入 Gtk'-c:1: PyGIWarning: 导入 Gtk 时未先指定版本。在导入之前使用 gi.require_version('Gt
我需要 Python 2.5.2 中的 rsvg 支持。 看来我必须安装所有 199 个 dep 以及软件包 python-gnome2-desktop,这听起来一点也不有趣。 替代方案? 最佳答案
我是一名优秀的程序员,十分优秀!