Biblioteka Open Source Go do tworzenia i manipulacji SVG
Bardzo stabilny interfejs API Go, który obsługuje generowanie rysunków SVG. Możesz dodawać kształty, linie, tekst, obrazy, ścieżki oraz stosować kolory, gradienty, animacje i nie tylko.
SVGo to biblioteka języka Go o otwartym kodzie źródłowym, która umożliwia programistom tworzenie SVG we własnych aplikacjach przy użyciu specyfikacji Scalable Vector Graphics 1.1. Biblioteka zapewnia obsługę kształtów SVG, takich jak koła, elipsy, wielokąty, prostokąty itp. Obsługuje również funkcje transformacji SVG, takie jak tłumaczenie, obracanie, skalowanie, pochylanie i tak dalej.
Biblioteka SVGo może działać wszędzie tam, gdzie jest dostępny język Go i jest całkowicie przenośna w popularnych systemach operacyjnych, takich jak Linux, Mac OS X, Windows itp. Biblioteka zawiera kilka ważnych funkcji związanych z kształtami, liniami, tekstem, ścieżkami rysowania, obrazami i gradienty, transformacja obrazu, efekty filtrów, stosowanie animacji, elementy metadanych itd.
Biblioteka została zaprojektowana do tworzenia standardowego, czystego, czytelnego kodu, który jest zbliżony do dostrojonego, ręcznie tworzonego kodu, który w pełni wykorzystuje różnorodne elementy SVG. Biblioteka zapewnia obsługę wbudowanych filtrów dla wygody użytkownika, takich jak funkcja rozmycia według odchylenia standardowego, filtr skali szarości do obrazu, obracanie odcieni, odwracanie kolorów obrazu, stosowanie odcieni sepii i wiele innych.
Pierwsze kroki z obrazowaniem
Najłatwiejszym i zalecanym sposobem instalacji SVGo jest korzystanie z GitHub. Użyj następującego polecenia, aby uzyskać łatwą i bezproblemową instalację.
Zainstaluj SVGo przez GitHub
go get -u github.com/ajstarks/svgo
Generuj SVG za pomocą biblioteki GO
Biblioteka SVGo o otwartym kodzie źródłowym umożliwia programistom programowe generowanie rysunków SVG we własnej aplikacji za pomocą poleceń Go. Deweloperzy muszą zdefiniować szerokość i wysokość płótna SVG, a także przeznaczenie SVG. Deweloperzy mogą z łatwością rysować kształty, takie jak koła, elipsy, wielokąty itp., a także z łatwością wprowadzać wybrany przez siebie tekst.
Tworzenie obrazu SVG przez 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()
}
Rysowanie kształtów i ścieżek
Biblioteka SVGo zapewnia funkcjonalność do tworzenia różnego rodzaju kształtów we własnych aplikacjach. Obsługuje rysowanie okręgu, elipsy, wielokąta, prostokąta lub zaokrąglonego prostokąta, kwadratu, serii odcinków linii i nie tylko. Możesz także z łatwością rysować linie i ścieżki. Możesz narysować łuk eliptyczny, leczyć, sześcienną krzywą Beziera, kwadratową krzywą Beziera i tak dalej.
Krąg rysunkowy Online przez 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()
}
Obsługa obrazów i tekstu
Biblioteka SVGo o otwartym kodzie źródłowym zapewnia pełną obsługę wstawiania obrazów i tekstu podczas tworzenia rysunku SVG za pomocą poleceń Go. Umieszczając obrazek lub tekst musisz określić miejsce, w którym chcesz go umieścić, a także określić szerokość i wysokość obrazka. Możesz także wstawić wiele wierszy tekstu i zdefiniować rozmiar, wypełnienie, wyrównanie i odstępy. Obsługuje również umieszczanie stylizowanego tekstu wraz ze ścieżką. Możesz również zdefiniować wybrany kolor za pomocą schematu RGB.
Dodaj obraz i tekst do SVG wewnątrz aplikacji 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()
}
Stosowanie animacji do SVG
Elementy animacji SVG zostały opracowane we współpracy z grupą roboczą Synchronized Multimedia Consortium World Wide Web Consortium (W3C). SVGo umożliwia programistom tworzenie oszałamiających animacji i łatwe eksportowanie pojedynczego animowanego pliku SVG. Biblioteka umożliwia animację elementu, do którego odwołuje się łącze, animację obiektu, do którego się odwołuje, wzdłuż określonej ścieżki, animację transformacji translacji, animację transformacji obrotu, animację skali lub transformacji skewX i tak dalej.
Dodaj animację do SVG poprzez bibliotekę 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()
}