如何创建SVG并将其导出为PNG/JPEG [英] How to create and export svg to png/jpeg
本文介绍了如何创建SVG并将其导出为PNG/JPEG的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码片段,例如
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的东西。请谁来帮帮我。
推荐答案
如果您更喜欢使用纯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)
}
}
这篇关于如何创建SVG并将其导出为PNG/JPEG的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文