gpt4 book ai didi

canvas - 如何创建 svg 并将其导出为 png/jpeg

转载 作者:IT王子 更新时间:2023-10-29 01:09:08 27 4
gpt4 key购买 nike

例如,我有以下代码片段

package main

import (
"github.com/ajstarks/svgo"
"os"
_ "image"
_ "fmt"
)

func main(){
width := 512
height := 512

canvas := svg.New(os.Stdout)
canvas.Start(width,height)
canvas.Image(0,0,512,512,"src.jpg","0.50")
canvas.End()
}

我想将此代码创建的 svg 导出为 jpeg 或 png 或 svg 让我们说。我不知道该怎么做。我可以使用 imagemagick 或其他东西,但为此我需要 SVG 东西。请有人帮我解决这个问题。

最佳答案

如果你更喜欢使用 pure go

package main

import (
"image"
"image/png"
"os"

"github.com/srwiley/oksvg"
"github.com/srwiley/rasterx"
)

func main() {
w, h := 512, 512

in, err := os.Open("in.svg")
if err != nil {
panic(err)
}
defer in.Close()

icon, _ := oksvg.ReadIconStream(in)
icon.SetTarget(0, 0, float64(w), float64(h))
rgba := image.NewRGBA(image.Rect(0, 0, w, h))
icon.Draw(rasterx.NewDasher(w, h, rasterx.NewScannerGV(w, h, rgba, rgba.Bounds())), 1)

out, err := os.Create("out.png")
if err != nil {
panic(err)
}
defer out.Close()

err = png.Encode(out, rgba)
if err != nil {
panic(err)
}
}

关于canvas - 如何创建 svg 并将其导出为 png/jpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42993407/

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