问题标签 [rsvg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8985 浏览

python - 在 Ubuntu 上使用 Python 3.2 的 rsvg

我正在尝试在 Python 3.2 中使用 rsvg,但我不断收到导入错误。我已经安装了所有的 librsvg 包和 cairo。我在网上找不到任何关于要安装什么才能让它工作的东西。我确实听说 rsvg 模块自 2005 年以来一直没有更新,所以它只是与 Python 3.2 不兼容,还是我可以尝试安装其他东西?或者,如果 rsvg 不起作用,是否有人对通过 Python 显示 SVG 文件的简单方法有任何建议(基本上只是显示图像)?

编辑:我得到的错误是:'ImportError:没有名为 rsvg 的模块'

此错误未在 python2 中显示

提前致谢

0 投票
1 回答
733 浏览

pygtk - pygtk / rsvg - 获取绘图的大小?

RSVG 和 Cairo 是否可以在 SVG 图像中找到绘图的范围?

即不是页面宽度/高度,而是绘图元素实际使用的空间。

这不起作用,它只返回页面大小:

这似乎没有返回任何有关大小的信息:

这不起作用,它还会返回页面大小:

这是 pygtk-all-in-one-2.24.0.win32-py2.7 和 RSVG 2.22.3-1_win32,在其中我找不到其他答案中提到的 get_dimensions_sub() 函数。

0 投票
1 回答
2608 浏览

ruby-on-rails - Ruby、RSVG 和 PNG 流

我正在尝试在 Rails 应用程序中进行从 SVG 到 PNG 的图像转换。ImageMagick 不适合我,因为 Heroku 目前无法/想要升级 IM。我正在测试一些在开发中使用 RSVG2 / Cairo 的想法,但遇到了障碍。

我可以像这样轻松地将 SVG 转换并保存为 PNG:

但这只能让我写出 PNG 文件。在应用程序中,我需要能够动态生成这些,然后将它们作为数据发送到客户端浏览器。而且我无法弄清楚如何做到这一点,或者即使它受支持。我知道我至少可以调用surface.data 来获取原始数据,但是我对图像格式的了解还不够,无法知道如何将其作为PNG。

谢谢

0 投票
3 回答
16484 浏览

svg - ImageMagick 将 SVG 转换为 PNG 不能在启用 RSVG 的情况下工作

我正在使用 ImageMagick 的convert实用程序将 SVG 文件转换为 PNG 图像。起初,我在 OSX ( brew install imagemagick) 上使用 IM 的 vanilla 安装来转换 SVG,使用:

除了该文件中的某些图像对象被偏移(到图像的实际链接)之外,这很有效。然后我阅读了一个相关的问题,该问题建议 ImageMagick 使用rsvg支持进行编译(自制软件使用 rsvg 来编译brew install imagemagick --use-rsvg)。

现在,当我尝试执行转换时,没有呈现图像。我尝试使用这个 SVG 文件,结果 PNG 是空白的。但是,如果 SVG 上存在任何文本,则会将其呈现在正确的位置。任何想法如何进行?谢谢。

0 投票
1 回答
1851 浏览

python - 使用 pyrsvg 和 Cairo 在 Python 中渲染 SVG

我在使用以下代码将一些 SVG 渲染为 PNG 数据时遇到了一些问题。使用 StringIO 编写器是因为图像最终旨在用作 HTTP 响应的主体。

结果是正确尺寸的 PNG,但它是完全透明的。

被渲染的 SVG 数据如下:

0 投票
1 回答
806 浏览

python - Python+RSVG+Cario:将 SVG 缩放为打印尺寸

我正在尝试使用 Cairo 和 RSVG 使用以下代码在 Python 中打印动态创建的 SVG(它是 Gtk 应用程序)。
它是一种特殊类型的纸张,正好是 147x205mm。如果我在 EOG 中打开 SVG,我可以毫无问题地打印它,但是使用下面的代码会使 SVG 变得太大,因此只有一部分适合纸张。
我正在寻找一种方法来告诉 RSVG/Cairo 将 SVG 缩放到打印上下文。

如果它有用,我的 SVG 的开头(总是一样):

更新
我添加了以下几行print_bill

这正好等于 SVG 的大小。我重新检查了 Inkscape,它告诉我,这是大小和 PX,但如果我在 MM 中查找值,它会显示正确的值。
也许有一个 SVG 标签来解决这个问题?

0 投票
2 回答
305 浏览

svg - 通过 mediawiki 中的 rsvg 将 svg 转换为 png 无效

在将此文件上传 到我的 wiki 实例时,应用程序用于librsvg将其转换为 png 缩略图。但结果就像这个链接

这条龙似乎是在 Inkscape 中生成的,所以我尝试使用inkscape 作为转换器。它适用于该图像(但不适用于其他图像),但它具有 X 依赖项,因此我无法使用它。

在这里,我发现 wikimedia 项目使用 rsvg 进行此类转换。

谁能帮我解决这种奇怪的行为?

svg 支持的 Mediawiki 设置:

环境:

0 投票
0 回答
2246 浏览

svg - Text font issues with rsvg-convert

We were using rsvg-convert for SVG to PDF conversion and it was working like a charm, till we encountered text.

Here's an example-

Command: rsvg-convert -w 842 -f pdf -o testing.pdf testing.svg

Here's the SVG: http://pdf-balancer-693758372.us-east-1.elb.amazonaws.com/development/assets/img/uploads/testing.svg

Here's the PDF: http://pdf-balancer-693758372.us-east-1.elb.amazonaws.com/development/assets/img/uploads/testing.pdf

Problems noticeable in the converted PDF:

  1. Underline is lost

  2. Some text positioning is incorrect (compare the corresponding character in the bold text right below the last character of the non-bold text in both SVG and PDF)

  3. It's is fine in the example in this email but for some fonts, bold markup is lost

.

Help!

0 投票
1 回答
5469 浏览

python - 你能在 python 程序中显示图像(不使用 pygame)吗?

我想做类似的事情:

它会以图像的形式出现。

PS 我想要 PNG 或 JPEG,而不是 GIF。

0 投票
0 回答
1413 浏览

ubuntu - 使用 RSVG 将 svg 与非本地图像转换

我有一个 SVG 图像,如下所示,我正在尝试将其转换为 PNG:

这在 Ubuntu 10.04 上有效,但现在在 12.04 上无效。原因似乎是 RSVG 现在不会加载任何没有相对路径的图像 URL。

这不是一个选项 - 我的网站生成 SVG(所以我知道它是安全的),但它需要通过 HTTP 加载图像。

图像在 Chrome 中显示良好,但在 Imagemagick、Gimp 或(奇怪的)Inkscape 中显示不佳。

如果有帮助,我将通过 PHP 使用 Imagemagick,但 RSVG 是此处进行 SVG 转换的代表。

除了重新编译librsvg之外,有没有人对如何解决这个问题有任何想法?

我已经尝试过ImageMagick (RSVG) won't import images in SVG的建议,看起来很可疑,就像是这个问题:rsvg doesn't render linked images


我在这里找到了负责的代码:https ://git.gnome.org/browse/librsvg/tree/rsvg-base.c#n2169

我可能是错的,但似乎他们已经禁用了来自其他 URL 的加载,没有任何方法可以在重新编译之前重新启用它?