Open Source Go Library för att skapa och manipulera SVG
En mycket stabil Go API som stöder generering av SVG-ritningar. Du kan lägga till former, linjer, text, bilder, banor och använda färg, övertoningar, animationer och mer.
SVGo är ett Go-språkbibliotek med öppen källkod som gör det möjligt för mjukvaruutvecklare att skapa SVG i sina egna appar med hjälp av Scalable Vector Graphics 1.1 Specification. Biblioteket ger stöd för SVG-former som cirklar, ellipser, polygoner, rektanglar, etc. Det stöder även SVG-transformationsfunktioner som översätta, rotera, skala, skeva och så vidare.
SVGo-biblioteket kan köras var som helst där Go-språket är tillgängligt och är helt portabelt över populära operativsystem som Linux, Mac OS X, Windows, etc. Biblioteket har inkluderat flera viktiga funktioner relaterade till former, linjer, text, ritbanor, bilder och gradienter, bildtransformation, filtereffekter, applicering av animationer, metadataelement och så vidare.
Biblioteket är designat för att producera standard, ren, läsbar kod som är nära inställd, handgjord kod som till fullo utnyttjar en mängd SVG-element. Biblioteket har tillhandahållit stöd för inbyggda filter för användarens bekvämlighet, såsom oskärpa funktion med standardavvikelse, gråskalefilter på bilden, Rotera nyanser, Invertera bildens färger, applicera sepiatoner och många fler.
Komma igång med bildbehandling
Det enklaste och rekommenderade sättet att installera SVGo är via GitHub. Använd följande kommando för en enkel och smidig installation.
Installera SVGo via GitHub
go get -u github.com/ajstarks/svgo
Generera SVG via GO Library
SVGo-biblioteket med öppen källkod gör det möjligt för mjukvaruutvecklare att programmatiskt generera SVG-ritningar i sin egen applikation med hjälp av Go-kommandon. Utvecklare måste definiera bredden och höjden på SVG-duken samt destinationen för SVG. Utvecklare kan enkelt rita former som cirklar, ellipser, polygoner, etc. samt kan enkelt skriva in texten som de väljer.
Skapa SVG Bild via 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()
}
Rita former och banor
SVGo-biblioteket har tillhandahållit funktionalitet för att skapa olika typer av former i sina egna applikationer. Det stöder att rita en cirkel, ellips, polygon, rektangel eller en rundad rektangel, kvadrat, serier av linjesegment och mer. Du kan också enkelt rita linjer och banor med lätthet. Du kan rita en elliptisk båge, bota, kubisk bezier-kurva, kvadratisk bezier-kurva och så vidare.
Rita 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()
}
Stöd för bild och text
SVGo-biblioteket med öppen källkod har gett komplett stöd för att infoga bilder och text samtidigt som du skapar en SVG-ritning med Go-kommandon. När du placerar en bild eller text måste du s ange var du vill placera den och kan även definiera bildens bredd och höjd. Du kan också infoga flera rader med text och definiera storlek, fyllning, justering och avstånd. Det stöder också att placera formaterad text tillsammans med sökvägen. Du kan också definiera vilken färg du väljer med hjälp av RGB-schemat.
Lägg till bild och text till SVG inuti Gt Apps
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()
}
Använder animering på SVG
SVG-animationselement utvecklades i samarbete med World Wide Web Consortium (W3C) Synchronized Multimedia Working Group. SVGo gör det möjligt för utvecklare att göra fantastiska animationer och exportera en enda animerad SVG-fil med lätthet. Biblioteket tillåter animering av objektet som länken refererar till, animerar det refererade objektet längs den angivna banan, animerar översättningstransformationen, animerar rotationstransformationen, animerar skalan eller skewX-transformationen och så vidare.
Lägg till Animation till SVG via Gt Bibliotek
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()
}