将SVG转换为png或其他格式?

5

在iPython笔记本中显示SVG文件的内容非常容易,那么有没有一种(同样简单的)方法可以获取我们在png文件或其他文件中看到的内容呢?

from IPython.display import SVG
SVG(filename='../images/python_logo.svg')

如果我执行svg = SVG(filename='../images/python_logo.svg')

我该如何将它保存为png文件?

1个回答

7

SVG是矢量图像(将绘图保存为绘制线条、圆等命令)。PNG是位图。因此,要将SVG转换为PNG,需要一个渲染器。

最明显的解决方案是使用ImageMagick,这是一个库,你已经安装了它,因为它被用在几个程序中。一个不太明显的方法是使用Inkscape。使用命令行选项,可以将Inkscape作为转换程序使用。由于Inkscape是基于矢量的,我怀疑其质量比ImageMagick更好(后者更注重位图)。

作为矢量图像(SVG)是一个包含绘图指令的文本文件,因此更容易理解。PNG只包含像素信息,并且它们被使用相当复杂的算法进行压缩。理解它们并不那么容易。

查看Inkscape手册页面,很容易理解如何使用它。这是IMagick转换帮助


1
OP 对“简单”和“困难”的理解有些奇怪。位图只是一种位图,而 SVG 存在各种可能的问题:颜色解释、线宽、缩放和转换、抗锯齿、本地或嵌入式字体等等。如果“只需使用库!”是针对 SVG 的“简单”答案,那么同样适用于 PNG。可能倍受欢迎。 - Jongware
@Jongware 是的,但这些东西大多数不在SVG中,而是在屏幕上显示SVG图像时。SVG本身并不那么复杂 - 至少它是较小的w3c标准之一 :-) - jcoppens
1
以前不知道SVG是保存为指令的(知道它们是矢量格式,但没有深入思考)。感谢您让我学到了新知识:D - Indigo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接