Open Source Go Library pro tvorbu a manipulaci SVG
Velmi stabilní rozhraní Go API, které podporuje generování výkresů SVG. Můžete přidat tvary, čáry, text, obrázky, cesty a použít barvy, přechody, animace a další.
SVGo je open source jazyková knihovna Go, která umožňuje vývojářům softwaru vytvářet SVG ve vlastních aplikacích pomocí specifikace Scalable Vector Graphics 1.1. Knihovna poskytuje podporu pro tvary SVG, jako jsou kruhy, elipsy, mnohoúhelníky, obdélníky atd. Podporuje také funkce transformací SVG, jako je překládání, otáčení, měřítko, zkosení a tak dále.
Knihovna SVGo může běžet kdekoli, kde je dostupný jazyk Go, a je zcela přenosná napříč populárními operačními systémy, jako je Linux, Mac OS X, Windows atd. Knihovna obsahuje několik důležitých funkcí souvisejících s tvary, čarami, textem, cestami kreslení, obrázky a přechody, transformace obrazu, efekty filtrů, použití animací, prvků metadat a tak dále.
Knihovna je navržena tak, aby produkovala standardní, čistý a čitelný kód, který se blíží vyladěnému, ručně vytvořenému kódu, který plně využívá různé prvky SVG. Knihovna poskytuje podporu pro vestavěné filtry pro pohodlí uživatele, jako je funkce rozostření podle směrodatné odchylky, filtr ve stupních šedi na obrázku, Otočit odstíny, Invertovat barvy obrázku, použít sépiový tón a mnoho dalších.
Začínáme s Imaging
Nejjednodušší a doporučený způsob instalace SVGo je přes GitHub. Pro snadnou a hladkou instalaci použijte prosím následující příkaz.
Nainstalujte SVGo přes GitHub
go get -u github.com/ajstarks/svgo
Vygenerujte SVG prostřednictvím knihovny GO
Knihovna SVGo s otevřeným zdrojovým kódem umožňuje vývojářům softwaru programově generovat výkresy SVG uvnitř jejich vlastní aplikace pomocí příkazů Go. Vývojáři musí definovat šířku a výšku SVG plátna a také cíl SVG. Vývojáři mohou snadno kreslit tvary, jako jsou kruhy, elipsy, mnohoúhelníky atd., stejně jako mohou snadno zadávat text podle svého výběru.
Vytvořit SVG Obrázek přes Gt
package main
import (
"github.com/ajstarks/svgo"
"os"
)
func main() {
width := 500
height := 500
canvas := svg.New(os.Stdout)
canvas.Start(width, height)
canvas.Circle(width/2, height/2, 100)
canvas.Text(width/2, height/2, "Hello, SVG", "text-anchor:middle;font-size:30px;fill:white")
canvas.End()
}
Kreslení tvarů a cest
Knihovna SVGo poskytuje funkce pro vytváření různých druhů tvarů uvnitř jejich vlastních aplikací. Podporuje kreslení kruhu, elipsy, mnohoúhelníku, obdélníku nebo zaobleného obdélníku, čtverce, řady úseček a další. Můžete také snadno kreslit čáry a cesty. Můžete nakreslit eliptický oblouk, vytvrzení, kubickou Bézierovu křivku, kvadratickou Bézierovu křivku a tak dále.
Drawing Circle online přes Gt
package main
import (
"log"
"github.com/ajstarks/svgo"
"net/http"
)
func main() {
http.Handle("/circle", http.HandlerFunc(circle))
err := http.ListenAndServe(":2003", nil)
if err != nil {
log.Fatal("ListenAndServe:", err)
}
}
func circle(w http.ResponseWriter, req *http.Request) {
w.Header().Set("Content-Type", "image/svg+xml")
s := svg.New(w)
s.Start(500, 500)
s.Circle(250, 250, 125, "fill:none;stroke:black")
s.End()
}
Podpora obrázků a textu
Open source knihovna SVGo poskytuje kompletní podporu pro vkládání obrázků a textu při vytváření výkresu SVG pomocí příkazů Go. Při umísťování obrázku nebo textu musíte určit místo, kam jej chcete umístit, a také můžete definovat šířku a výšku obrázku. Můžete také vložit více řádků textu a definovat velikost, výplň, zarovnání a mezery. Podporuje také umístění stylizovaného textu spolu s cestou. Můžete také definovat barvu podle svého výběru pomocí schématu RGB.
Přidat obrázek a text do SVG uvnitř aplikace Gt
import (
"os"
svg "github.com/ajstarks/svgo"
)
func main() {
width := 500
height := 500
canvas := svg.New(os.Stdout)
canvas.Start(width, height)
canvas.Circle(width/2, height/2, 100)
canvas.Gstyle("text-anchor:middle;font-family:sans;fill:white")
canvas.Textspan(width/2, height/2, "Hello ", "font-size:30px")
canvas.Span("SVG", "font-family:serif;font-size:50px;fill:yellow")
canvas.TextEnd()
canvas.Gend()
canvas.End()
}
Použití animace na SVG
Prvky animace SVG byly vyvinuty ve spolupráci s World Wide Web Consortium (W3C) Synchronized Multimedia Working Group. SVGo umožňuje vývojářům snadno vytvářet úžasné animace a exportovat jediný animovaný soubor SVG. Knihovna umožňuje animovat položku, na kterou odkaz odkazuje, animovat odkazovaný objekt podél zadané cesty, animovat transformaci translace, animovat transformaci rotace, animovat transformaci měřítka nebo skewX a tak dále.
Přidání animace do SVG prostřednictvím Gt knihovna
func main() {
width, height := 500, 500
rsize := 100
csize := rsize / 2
duration := 5.0
repeat := 5
imw, imh := 100, 144
canvas := svg.New(os.Stdout)
canvas.Start(width, height)
canvas.Circle(csize, csize, csize, `fill="red"`, `id="circle"`)
canvas.Image((width/2)-(imw/2), 0, imw, imh, "gopher.jpg", `id="gopher"`)
canvas.Square(width-rsize, 0, rsize, `fill="blue"`, `id="square"`)
canvas.Animate("#circle", "cx", 0, width, duration, repeat)
canvas.Animate("#circle", "cy", 0, height, duration, repeat)
canvas.Animate("#square", "x", width, 0, duration, repeat)
canvas.Animate("#square", "y", height, 0, duration, repeat)
canvas.Animate("#gopher", "y", 0, height, duration, repeat)
canvas.End()
}