本文介绍了在 Python 中将 SVG 转换为 PNG的处理方法,对大家解决问题具有一定的参考价值
问题描述
如何在 Python 中将 svg
转换为 png
?我将 svg
存储在 StringIO
的实例中.我应该使用 pyCairo 库吗?我该如何编写该代码?
解决方案
答案是pyrsvg" - librsvg 的 Python 绑定.>
有一个 Ubuntu python-rsvg 包提供它.在 Google 上搜索它的名字很糟糕,因为它的源代码似乎包含在gnome-python-desktop"Gnome 项目 GIT 存储库中.
我制作了一个极简主义的hello world",将 SVG 渲染为 cairo表面并将其写入磁盘:
导入开罗导入 rsvgimg = cairo.ImageSurface(cairo.FORMAT_ARGB32, 640,480)ctx = cairo.Context(img)## handle = rsvg.Handle()# 或者,对于内存中的 SVG 数据:句柄= rsvg.Handle(None, str())handle.render_cairo(ctx)img.write_to_png("svg.png")
更新:截至 2014 年,Fedora Linux 发行版所需的软件包是:gnome-python2-rsvg
.上面的代码片段列表仍然按原样工作.
How do I convert an svg
to png
, in Python? I am storing the svg
in an instance of StringIO
. Should I use the pyCairo library? How do I write that code?
解决方案
The answer is "pyrsvg" - a Python binding for librsvg.
There is an Ubuntu python-rsvg package providing it. Searching Google for its name is poor because its source code seems to be contained inside the "gnome-python-desktop" Gnome project GIT repository.
I made a minimalist "hello world" that renders SVG to a cairo
surface and writes it to disk:
import cairo
import rsvg
img = cairo.ImageSurface(cairo.FORMAT_ARGB32, 640,480)
ctx = cairo.Context(img)
## handle = rsvg.Handle(<svg filename>)
# or, for in memory SVG data:
handle= rsvg.Handle(None, str(<svg data>))
handle.render_cairo(ctx)
img.write_to_png("svg.png")
Update: as of 2014 the needed package for Fedora Linux distribution is: gnome-python2-rsvg
. The above snippet listing still works as-is.
这篇关于在 Python 中将 SVG 转换为 PNG的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,WP2
我需要上传图像到wordpress编程,理想情况下没有安装额外的插件。不过,我对涉及插件的最佳实践持开放态度。到目前为止,我已经能够使用会话登录和移动站点,但是当我尝试将文件上载到媒体时-新建.php或异步-上传.php我收到以下错误消息The file is a test text file with a single line (also the upload limit on the site is 1GB) so it\"s not the common file size limit. This ...
日期:2021-08-21 05:00:01
浏览:784
本文介绍了压缩序列化的Python数据最节省空间的方法是什么?的处理方法,对大家解决问题具有一定的参考价值 问题描述 发件人the Python documentation:默认情况下,Pickle数据格式使用相对紧凑的二进制表示。如果您需要最佳大小特性,您可以高效地压缩酸洗数据。我将在一个运行了几个小时的过程结束时序列化...
日期:2022-06-23 08:50:34
浏览:753
本文介绍了在Python中,有没有一种方法可以将一个单词分割成等分?的处理方法,对大家解决问题具有一定的参考价值 问题描述 几周前我问了这个问题,得到了答案this is the original post但我需要将输出分成相等的部分,无论字符串的长度如何,所以在我发布的第一个帖子中,我得到了这个答案,它很好地工作了,这要...
日期:2022-06-24 06:52:06
浏览:475
本文介绍了如何在 Google AppEngine Python37 中获取凭据的处理方法,对大家解决问题具有一定的参考价值 问题描述 我在 AppEngine Python3.7 标准中启动了新应用.I started new app in AppEngine Python3.7 stadard.我正在尝试使用以下代码段...
日期:2022-06-24 09:00:27
浏览:549
本文介绍了为什么 python 字符串和元组是不可变的?的处理方法,对大家解决问题具有一定的参考价值 问题描述 我不确定为什么字符串和元组是不可变的;使它们不可变的优点和缺点是什么?I am not sure why strings and tuples were made to be immutable; what ar...
日期:2022-06-24 09:00:30
浏览:885
本文介绍了使用 Python 解析 Gmail 并将所有早于日期的内容标记为“已读"的处理方法,对大家解决问题具有一定的参考价值 问题描述 长话短说,我创建了一个新的 gmail 帐户,并将其他几个帐户关联到该帐户(每个帐户都有 1000 条消息),我正在导入这些帐户.所有导入的邮件都以未读的形式到达,但我需要它们显示为已...
日期:2022-06-24 10:00:29
浏览:809
本文介绍了了解python线程错误的处理方法,对大家解决问题具有一定的参考价值 问题描述 阅读http://bugs.python.org/msg160297,我可以看到Stephen White编写的一个简单脚本,它演示了该异常是如何导致python线程出错的Exception AttributeError: Attri...
日期:2022-06-24 21:00:28
浏览:946
本文介绍了从python调用url时获取“错误"的页面源的处理方法,对大家解决问题具有一定的参考价值 问题描述 尝试从网站检索页面源时,得到的文本与通过 Web 浏览器查看相同页面源时完全不同(且更短).Trying to retrieve the page source from a website, I get a c...
日期:2022-06-25 01:00:31
浏览:598
本文介绍了基于 Python 类的装饰器,带有可以装饰方法或函数的参数的处理方法,对大家解决问题具有一定的参考价值 问题描述 我见过很多 Python 装饰器的例子:I've seen many examples of Python decorators that are:函数样式装饰器(包装函数)类样式装饰器(实现 __...
日期:2022-06-25 04:00:31
浏览:929
本文介绍了用python解析outlook .msg文件的处理方法,对大家解决问题具有一定的参考价值 问题描述 环顾四周,没有找到满意的答案.有谁知道如何使用 Python 解析 Outlook 中的 .msg 文件?Looked around and couldn't find a satisfactory answer...
日期:2022-06-25 06:00:30
浏览:641