gpt4 book ai didi

python - 如何在 Python 中将 SVG 转换为 PNG 或 JPEG?

转载 作者:行者123 更新时间:2023-12-03 14:25:10 70 4
gpt4 key购买 nike

我正在使用 svgwrite并生成 svg 文件,如何将它们转换为 PNG 或 JPEG?

最佳答案

pyvips支持SVG加载。它免费、快速、需要很少的内存,并且适用于 macOS、Windows 和 Linux。
你可以这样使用它:

import pyvips

image = pyvips.Image.new_from_file("something.svg", dpi=300)
image.write_to_file("x.png")
默认 DPI 为 72,这可能有点低,但您可以设置任何您喜欢的 DPI。您可以以明显的方式写入 JPG。
您还可以按您想要的像素尺寸加载,如下所示:
import pyvips

image = pyvips.Image.thumbnail("something.svg", 200, height=300)
image.write_to_file("x.png")
这将渲染 SVG 以适应 200 x 300 像素的框。 docs introduce all the options .
pyvips SVG 加载器有一些不错的属性:
  • 它使用 librsvg 进行实际渲染,因此 PNG 将具有高质量的抗锯齿边缘。
  • 它比 ImageMagick 之类的系统快得多,后者只是简单地使用inkscape 进行渲染。
  • 它支持渐进式渲染。大图像(每边超过几千像素)是分段渲染的,即使对于非常大的图像,也可以控制内存使用。
  • 它支持流式传输,因此您可以将 SVG 直接渲染到一个巨大的 Deep Zoom 金字塔(例如),而无需任何中间存储。
  • 它支持来自内存区域、字符串和管道以及文件的输入。

  • 从字符串渲染可能很方便,例如:
    import pyvips

    x = pyvips.Image.svgload_buffer(b"""
    <svg viewBox="0 0 200 200">
    <circle r="100" cx="100" cy="100" fill="#900"/>
    </svg>
    """)

    x.write_to_file("x.png")

    关于python - 如何在 Python 中将 SVG 转换为 PNG 或 JPEG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51450134/

    70 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com