SVG Yaradılması və Manipulyasiyası üçün Açıq Mənbəli Go Kitabxanası
SVG çertyojlarının yaradılmasını dəstəkləyən çox stabil Go API. Siz formalar, xətlər, mətn, şəkillər, yollar əlavə edə və rəng, gradient, animasiya və s. tətbiq edə bilərsiniz.
SVGo açıq mənbəli Go dil kitabxanasıdır və proqram tərtibatçılarına Scalable Vector Graphics 1.1 Spesifikasiyasından istifadə edərək öz proqramlarında SVG yaratmağa imkan verir. Kitabxana dairələr, ellipslər, çoxbucaqlılar, düzbucaqlılar və s. kimi SVG formaları üçün dəstək verir. O, həmçinin tərcümə, döndərmə, miqyas, əyilmə və s. kimi SVG transformasiya funksiyalarını dəstəkləyir.
SVGo kitabxanası Go dilinin mövcud olduğu hər yerdə işləyə bilər və Linux, Mac OS X, Windows və s. kimi məşhur əməliyyat sistemlərində tamamilə portativdir. Kitabxanaya formalar, xətlər, mətn, rəsm yolları, şəkillər və gradientlər, təsvirin dəyişdirilməsi, filtr effektləri, animasiyaların tətbiqi, metadata elementləri və s.
Kitabxana müxtəlif SVG elementlərindən tam istifadə edən sazlanmış, əl ilə hazırlanmış koda yaxın olan standart, təmiz, oxunaqlı kod istehsal etmək üçün nəzərdə tutulmuşdur. Kitabxana istifadəçinin rahatlığı üçün standart sapma ilə tutqunluq funksiyası, təsvirin boz rəngli filtri, Rəngləri fırlatmaq, təsvirin rənglərini çevirmək, sepiya tonunu tətbiq etmək və sair kimi daxili filtrlərə dəstək verib.
Şəkil çəkməyə başlamaq
SVGo-nu quraşdırmağın ən asan və tövsiyə olunan yolu GitHub vasitəsilədir. Asan və hamar quraşdırma üçün aşağıdakı əmrdən istifadə edin.
GitHub vasitəsilə SVGo quraşdırın
go get -u github.com/ajstarks/svgo
GO Library vasitəsilə SVG yaradın
Açıq mənbəli SVGo kitabxanası proqram tərtibatçılarına Go əmrlərindən istifadə edərək proqramlı şəkildə öz proqramlarında SVG çertyojlarını yaratmağa imkan verir. Tərtibatçılar SVG kətanının enini və hündürlüyünü, həmçinin SVG-nin təyinat yerini müəyyən etməlidirlər. Tərtibatçılar asanlıqla dairələr, ellipslər, çoxbucaqlılar və s. kimi fiqurları çəkə, eləcə də istədikləri mətni asanlıqla daxil edə bilərlər.
GO vasitəsilə SVG Şəkil yaradın
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()
}
Formaların və Yolların Çəkilməsi
SVGo kitabxanası öz proqramlarında müxtəlif növ formalar yaratmaq üçün funksionallıq təmin etmişdir. Bu dairə, ellips, çoxbucaqlı, düzbucaqlı və ya dairəvi düzbucaqlı, kvadrat, xətt seqmentləri seriyası və s. çəkməyi dəstəkləyir. Siz həmçinin asanlıqla xətləri və yolları asanlıqla çəkə bilərsiniz. Elliptik qövs, müalicə, kub bezier əyrisi, kvadrat bezier əyrisi və s.
GO vasitəsilə çevrəni onlayn çəkmək
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()
}
Şəkil və Mətn Dəstəyi
Açıq mənbəli SVGo kitabxanası Go əmrlərindən istifadə edərək SVG rəsmini yaratarkən şəkillərin və mətnin daxil edilməsi üçün tam dəstəyi təmin etmişdir. Şəkil və ya mətni yerləşdirərkən siz onu yerləşdirmək istədiyiniz yeri göstərməlisiniz, həmçinin şəklin enini və hündürlüyünü təyin edə bilərsiniz. Siz həmçinin çoxlu mətn sətirləri əlavə edə və ölçü, doldurma, hizalama və məsafəni təyin edə bilərsiniz. O, həmçinin üslublu mətnin yol ilə birlikdə yerləşdirilməsini dəstəkləyir. Siz həmçinin RGB sxemindən istifadə edərək istədiyiniz rəngi təyin edə bilərsiniz.
GO Proqramları daxilində SVG-yə Şəkil və Mətn əlavə edin
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()
}
SVG-yə Animasiya Tətbiqi
SVG animasiya elementləri Ümumdünya Şəbəkə Konsorsiumu (W3C) Sinxronlaşdırılmış Multimedia İşçi Qrupu ilə əməkdaşlıqda hazırlanmışdır. SVGo yaradıcılara heyrətamiz animasiyalar yaratmağa və asanlıqla tək animasiya edilmiş SVG faylını ixrac etməyə imkan verir. Kitabxana keçid tərəfindən istinad edilən elementi canlandırmağa imkan verir, istinad edilən obyekti müəyyən edilmiş yol boyunca canlandırır, tərcümə çevrilməsini canlandırır, fırlanma transformasiyasını canlandırır, miqyaslı və ya skewX transformasiyasını canlandırır və s.
GO kitabxanası vasitəsilə SVG-yə Animasiya əlavə edin
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()
}