如何转换的svg
到png
,在Python?我正在存储svg
一个实例StringIO
.我应该使用pyCairo库吗?我该如何编写代码?
我喜欢制作高质量的地块,因此尽可能避免光栅化的图形.
我正在尝试将svg文件导入到matplotlib图中:
import matplotlib.pyplot as plt
earth = plt.imread('./gfx/earth.svg')
fig, ax = plt.subplots()
im = ax.imshow(earth)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这与png完美配合.有人可以告诉我如何使用svg或至少指出我的正确文档.
我知道有一个类似的问题已经被问到(但没有回答):这里.从那以后有什么变化吗
PS我知道我可以导出高分辨率的png并实现类似的效果.这不是我要找的解决方案.
这是我要导入的图像:Earth_from_above.
任何提示都表示赞赏.谢谢!
我是 Python 新手,所以请耐心等待。
基本上我的脚本应该像这样运行:
1) 加载图像并将其拆分为 R、G、B 通道
2) 使用保存为 svg 文件的现有路径标记该图像的区域
3) 使用该区域的 R、G、B 值执行一些计算。
(进一步将图像发送到文件夹 A 或 B,具体取决于计算结果)
我已经完成了 1) 和 3) 的一部分,但我目前的问题是加载 svg 文件并将其应用于我的图像。
该图像是使用鱼眼镜头拍摄的照片。我只想获得实际照片的 RGB 值 - 而不是黑色背景。我通过使用 GIMP(不是圆形)绘制所需的路径来创建 svg 文件。
我的问题是:
如何使用 python 加载现有的 svg 文件(并将其作为路径读取)并将路径应用到图像上?
我确信有一种简单的方法可以做到这一点,但我还没有找到。
任何提示和建议将不胜感激!
编辑:
svg 文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
`"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg"
width="22.2222in" height="16.6667in"
viewBox="0 0 1600 1200">
<path id="Auswahl"
fill="none" stroke="black" stroke-width="1"
d="M 848.00,103.21
C 848.00,103.21 861.00,103.96 861.00,103.96
891.77,105.30 921.91,109.93 952.00,116.58
988.30,124.59 …
Run Code Online (Sandbox Code Playgroud)