Open Source Go Library pentru crearea și manipularea SVG
Un Go API foarte stabil, care acceptă generarea de desene SVG. Puteți adăuga forme, linii, text, imagini, căi și puteți aplica culori, degrade, animații și multe altele.
SVGo este o bibliotecă de limbaj Go open source care le permite dezvoltatorilor de software să creeze SVG în propriile aplicații folosind specificația Scalable Vector Graphics 1.1. Biblioteca oferă suport pentru forme SVG, cum ar fi cercuri, elipse, poligoane, dreptunghiuri etc. Acceptă, de asemenea, funcții de transformări SVG, cum ar fi translație, rotire, scalare, înclinare și așa mai departe.
Biblioteca SVGo poate rula oriunde este disponibilă limba Go și este complet portabilă în sistemele de operare populare precum Linux, Mac OS X, Windows etc. Biblioteca a inclus câteva caracteristici importante legate de forme, linii, text, trasee de desen, imagini și gradienți, transformarea imaginii, efecte de filtrare, aplicarea de animații, elemente de metadate și așa mai departe.
Biblioteca este concepută pentru a produce cod standard, curat, lizibil, care este aproape de codul reglat, realizat manual, care utilizează pe deplin o varietate de elemente SVG. Biblioteca a oferit suport pentru filtrele încorporate pentru confortul utilizatorului, cum ar fi funcția de estompare prin abatere standard, filtrul în tonuri de gri pentru imagine, Rotirea nuanțelor, Inversarea culorilor imaginii, aplicarea tonului sepia și multe altele.
Noțiuni introductive cu imagistica
Cel mai simplu și recomandat mod de a instala SVGo este prin GitHub. Vă rugăm să utilizați următoarea comandă pentru o instalare ușoară și ușoară.
Instalați SVGo prin GitHub
go get -u github.com/ajstarks/svgo
Generați SVG prin Biblioteca GO
Biblioteca SVGo open source permite dezvoltatorilor de software să genereze programatic desene SVG în cadrul propriei aplicații folosind comenzile Go. Dezvoltatorii trebuie să definească lățimea și înălțimea pânzei SVG, precum și destinația SVG. Dezvoltatorii pot desena cu ușurință forme precum cercuri, elipse, poligoane etc. și pot introduce cu ușurință textul la alegere.
Crearea imaginii SVG prin 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()
}
Desenarea formelor și a căilor
Biblioteca SVGo a oferit funcționalități pentru crearea diferitelor tipuri de forme în propriile aplicații. Acceptă desenarea unui cerc, elipsă, poligon, dreptunghi sau dreptunghi rotunjit, pătrat, serii de segmente de linie și multe altele. De asemenea, puteți desena cu ușurință linii și căi. Puteți desena un arc eliptic, o curbă, o curbă Bezier cubică, o curbă Bezier pătratică și așa mai departe.
Drawing Circle Online via 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()
}
Suport pentru imagini și text
Biblioteca SVGo open source a oferit suport complet pentru inserarea de imagini și text în timp ce creați un desen SVG folosind comenzile Go. În timp ce plasați o imagine sau un text, trebuie să specificați locul în care doriți să îl puneți și puteți defini, de asemenea, lățimea și înălțimea imaginii. De asemenea, puteți insera mai multe linii de text și puteți defini dimensiunea, umplerea, alinierea și spațierea. De asemenea, acceptă plasarea textului stilat împreună cu calea. De asemenea, puteți defini culoarea la alegere folosind schema RGB.
Adăugați imagine text la SVG în interiorul aplicațiilor 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()
}
Aplicarea animației la SVG
Elementele de animație SVG au fost dezvoltate în colaborare cu Grupul de lucru Synchronized Multimedia Consortium World Wide Web (W3C). SVGo le permite dezvoltatorilor să realizeze animații uimitoare și să exporte cu ușurință un singur fișier SVG animat. Biblioteca permite animarea elementului referit prin link, animă obiectul referit de-a lungul căii specificate, animă transformarea de translație, animă transformarea de rotație, animă transformarea scară sau skewX și așa mai departe.
Adăugați animație la SVG prin intermediul bibliotecii Gt
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()
}