可以使用第三方库rasterx,以下是一个简单示例:

package main

import (
    "os"

    "github.com/llgcode/draw2d/draw2dimg"
    "github.com/llgcode/draw2d/draw2dsvg"
    "github.com/llgcode/rasterx"
    "github.com/llgcode/rxsvg"
)

func main() {
    // 从SVG文件中解析出图像
    img, err := rxsvg.LoadSvgFile("example.svg")
    if err != nil {
        panic(err)
    }

    // 创建一个画布,大小与图像相同
    canvas := rasterx.NewDenseRaster(img.Bounds().Dx(), img.Bounds().Dy())
    g := rasterx.NewGraphics(canvas)

    // 绘制SVG图像
    svg := draw2dsvg.NewGraphicContext(g)
    img.Draw(svg)

    // 保存为PNG文件
    f, err := os.Create("example.png")
    if err != nil {
        panic(err)
    }
    defer f.Close()
    draw2dimg.SaveToPngFile(f, canvas)
}
golang svg转png

原文地址: https://www.cveoy.top/t/topic/ZNt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录