Perpustakaan Go Sumber Terbuka untuk Penciptaan dan Manipulasi SVG
Go API yang sangat stabil yang menyokong Menjana lukisan SVG. Anda boleh menambah bentuk, garisan, teks, imej, laluan dan menggunakan warna, kecerunan, animasi dan banyak lagi.
SVGo ialah perpustakaan bahasa Go sumber terbuka yang membolehkan pembangun perisian mencipta SVG dalam apl mereka sendiri menggunakan Spesifikasi Grafik Vektor Boleh Skala 1.1. Pustaka menyediakan sokongan untuk bentuk SVG seperti bulatan, elips, poligon, segi empat tepat, dll. Ia juga menyokong ciri transformasi SVG seperti terjemah, putar, skala, condong dan sebagainya.
Pustaka SVGo boleh dijalankan di mana-mana sahaja bahasa Go tersedia dan mudah alih sepenuhnya merentasi sistem pengendalian popular seperti Linux, Mac OS X, Windows, dll. Pustaka ini telah menyertakan beberapa ciri penting yang berkaitan dengan bentuk, garisan, teks, laluan lukisan, imej dan kecerunan, transformasi imej, kesan penapis, menerapkan animasi, elemen metadata dan sebagainya.
Perpustakaan ini direka bentuk untuk menghasilkan kod standard, bersih, boleh dibaca yang hampir dengan kod yang ditala, buatan tangan yang menggunakan sepenuhnya pelbagai elemen SVG. Perpustakaan telah menyediakan sokongan untuk penapis terbina dalam untuk kemudahan pengguna, seperti fungsi kabur mengikut sisihan piawai, penapis skala kelabu pada imej, Putar Hues, Terbalikkan warna imej, gunakan nada sepia dan banyak lagi.
Bermula dengan Pengimejan
Cara termudah dan disyorkan untuk memasang SVGo ialah melalui GitHub. Sila gunakan arahan berikut untuk pemasangan yang mudah dan lancar.
Pasang SVGo melalui GitHub
go get -u github.com/ajstarks/svgo
Hasilkan SVG melalui Perpustakaan GO
Pustaka SVGo sumber terbuka membolehkan pembangun perisian menjana lukisan SVG secara pemrograman di dalam aplikasi mereka sendiri menggunakan arahan Go. Pembangun perlu menentukan lebar dan ketinggian kanvas SVG serta destinasi SVG. Pembangun boleh melukis bentuk seperti bulatan, elips, poligon, dsb. dengan mudah serta boleh memasukkan teks pilihan mereka dengan mudah.
Cipta Imej SVG melalui GO
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()
}
Melukis Bentuk & Laluan
Pustaka SVGo telah menyediakan fungsi untuk mencipta pelbagai jenis bentuk dalam aplikasi mereka sendiri. Ia menyokong lukisan bulatan, elips, poligon, segi empat tepat atau segi empat tepat bulat, segi empat sama, siri segmen garisan dan banyak lagi. Anda juga boleh melukis garisan dan laluan dengan mudah dengan mudah. Anda boleh melukis lengkok elips, penawar, lengkung bezier padu, lengkung bezier kuadratik, dan sebagainya.
Melukis Bulatan Dalam Talian melalui GO
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()
}
Sokongan Imej dan Teks
Pustaka SVGo sumber terbuka telah menyediakan sokongan lengkap untuk memasukkan imej dan teks semasa mencipta lukisan SVG menggunakan arahan Go. Semasa meletakkan imej atau teks, anda perlu menentukan tempat di mana anda ingin meletakkannya dan juga boleh menentukan lebar dan ketinggian imej. Anda juga boleh memasukkan berbilang baris teks dan menentukan saiz, isi, penjajaran dan jarak. Ia juga menyokong meletakkan teks gaya bersama-sama dengan laluan. Anda juga boleh menentukan warna pilihan anda menggunakan skema RGB.
Tambah Imej & Teks pada SVG dalam GO 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()
}
Menggunakan Animasi pada SVG
Elemen animasi SVG telah dibangunkan dengan kerjasama Kumpulan Kerja Multimedia Disegerakkan World Wide Web Consortium (W3C). SVGo membolehkan pembangun membuat animasi yang menakjubkan dan mengeksport satu fail SVG animasi dengan mudah. Pustaka membenarkan menganimasikan item yang dirujuk oleh pautan, menghidupkan objek yang dirujuk di sepanjang laluan yang ditentukan, menghidupkan transformasi terjemahan, menghidupkan transformasi putaran, menghidupkan skala atau transformasi skewX dan sebagainya.
Tambahkan Animasi pada SVG melalui perpustakaan GO
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()
}