SVG Oluşturma ve Manipülasyon için Açık Kaynaklı Go Kitaplığı
SVG çizimleri oluşturmayı destekleyen çok kararlı bir Go API. Şekiller, çizgiler, metinler, resimler, yollar ekleyebilir ve renk, degradeler, animasyonlar ve daha fazlasını uygulayabilirsiniz.
SVGo, yazılım geliştiricilerin Ölçeklenebilir Vektör Grafikleri 1.1 Belirtimi kullanarak kendi uygulamaları içinde SVG oluşturmalarını sağlayan açık kaynaklı bir Go dil kitaplığıdır. Kitaplık, daireler, elipsler, çokgenler, dikdörtgenler vb. gibi SVG şekilleri için destek sağlar. Ayrıca çevirme, döndürme, ölçekleme, eğriltme vb. SVG dönüştürme özelliklerini de destekler.
SVGo kitaplığı, Go dilinin bulunduğu her yerde çalışabilir ve Linux, Mac OS X, Windows vb. gibi popüler işletim sistemlerinde tamamen taşınabilirdir. Kitaplık, şekiller, çizgiler, metin, çizim yolları, resimler ve gradyanlar, görüntü dönüştürme, filtre efektleri, animasyon uygulama, meta veri öğeleri vb.
Kitaplık, çeşitli SVG öğelerinden tam olarak yararlanan, ayarlanmış, el yapımı koda yakın standart, temiz, okunabilir kod üretmek üzere tasarlanmıştır. Kitaplık, standart sapmaya göre bulanıklaştırma işlevi, görüntüye gri tonlama filtresi, Tonları Döndürme, Görüntünün renklerini Ters Çevirme, sepya tonu uygulama ve çok daha fazlası gibi kullanıcı rahatlığı için yerleşik filtreler için destek sağlamıştır.
Görüntülemeye Başlarken
SVGo'yu kurmanın en kolay ve tavsiye edilen yolu GitHub'dır. Kolay ve sorunsuz bir kurulum için lütfen aşağıdaki komutu kullanın.
SVGo'yu GitHub aracılığıyla yükleyin
go get -u github.com/ajstarks/svgo
GO Kitaplığı aracılığıyla SVG oluşturun
Açık kaynaklı SVGo kitaplığı, yazılım geliştiricilerin Go komutlarını kullanarak kendi uygulamaları içinde programlı olarak SVG çizimleri oluşturmalarını sağlar. Geliştiricilerin, SVG tuvalinin genişliğini ve yüksekliğini ve ayrıca SVG'nin hedefini tanımlaması gerekir. Geliştiriciler daire, elips, çokgen vb. şekilleri kolayca çizebilir ve istedikleri metni kolaylıkla girebilir.
Create SVG Image via Gtt
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()
}
Şekiller ve Yollar Çizme
SVGo kitaplığı, kendi uygulamalarında farklı türde şekiller oluşturmak için işlevsellik sağlamıştır. Bir daire, elips, çokgen, dikdörtgen veya yuvarlak bir dikdörtgen, kare, bir dizi çizgi parçası ve daha fazlasını çizmeyi destekler. Ayrıca kolaylıkla çizgiler ve yollar çizebilirsiniz. Eliptik bir yay, sertleştirme, kübik bezier eğrisi, ikinci dereceden bezier eğrisi vb. çizebilirsiniz.
Çizim Circle Online via Gtt
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()
}
Resim ve Metin Desteği
Açık kaynak SVGo kitaplığı, Go komutlarını kullanarak bir SVG çizimi oluştururken resim ve metin eklemek için tam destek sağlamıştır. Bir resim veya metin yerleştirirken, koymak istediğiniz yeri belirtmeniz gerekir ve ayrıca resmin genişliğini ve yüksekliğini de tanımlayabilirsiniz. Ayrıca birden çok metin satırı ekleyebilir ve boyut, dolgu, hizalama ve boşluk tanımlayabilirsiniz. Ayrıca, yolla birlikte stilli metin yerleştirmeyi de destekler. RGB şemasını kullanarak istediğiniz rengi de tanımlayabilirsiniz.
Gt Apps içinde SVG için Image & Text ekleyin
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()
}
Animasyonu SVG'ye Uygulama
SVG animasyon öğeleri, World Wide Web Konsorsiyumu (W3C) Senkronize Multimedya Çalışma Grubu ile işbirliği içinde geliştirildi. SVGo, geliştiricilerin çarpıcı animasyonlar oluşturmasını ve tek bir animasyonlu SVG dosyasını kolaylıkla dışa aktarmasını sağlar. Kitaplık, bağlantı tarafından başvurulan öğenin canlandırılmasına, belirtilen yol boyunca başvurulan nesnenin canlandırılmasına, öteleme dönüşümünün canlandırılmasına, döndürme dönüşümünün canlandırılmasına, ölçek veya skewX dönüşümünün canlandırılmasına vb. izin verir.
SVG için Animasyon ekle Gt kütüphanesi
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()
}