Open Source Go Library για δημιουργία και χειρισμό SVG

Ένα πολύ σταθερό Go API που υποστηρίζει τη δημιουργία σχεδίων SVG. Μπορείτε να προσθέσετε σχήματα, γραμμές, κείμενο, εικόνες, διαδρομές και να εφαρμόσετε χρώμα, διαβαθμίσεις, κινούμενα σχέδια και άλλα.  

Το SVGo είναι μια βιβλιοθήκη γλωσσών Go ανοιχτού κώδικα που επιτρέπει στους προγραμματιστές λογισμικού να δημιουργούν SVG μέσα στις δικές τους εφαρμογές χρησιμοποιώντας την Προδιαγραφή Scalable Vector Graphics 1.1. Η βιβλιοθήκη παρέχει υποστήριξη για σχήματα SVG όπως κύκλοι, ελλείψεις, πολύγωνα, ορθογώνια κ.λπ. Υποστηρίζει επίσης λειτουργίες μετασχηματισμού SVG όπως μετάφραση, περιστροφή, κλίμακα, λοξή κ.λπ.

Η βιβλιοθήκη SVGo μπορεί να εκτελεστεί οπουδήποτε είναι διαθέσιμη η γλώσσα Go και είναι πλήρως φορητή σε δημοφιλή λειτουργικά συστήματα όπως Linux, Mac OS X, Windows κ.λπ. Η βιβλιοθήκη έχει συμπεριλάβει αρκετές σημαντικές λειτουργίες που σχετίζονται με σχήματα, γραμμές, κείμενο, διαδρομές σχεδίασης, εικόνες και ντεγκραντέ, μετασχηματισμός εικόνας, εφέ φίλτρου, εφαρμογή κινούμενων εικόνων, στοιχεία μεταδεδομένων και ούτω καθεξής.

Η βιβλιοθήκη έχει σχεδιαστεί για να παράγει τυπικό, καθαρό, ευανάγνωστο κώδικα που είναι κοντά στον συντονισμένο, χειροποίητο κώδικα που κάνει πλήρη χρήση μιας ποικιλίας στοιχείων SVG. Η βιβλιοθήκη έχει παράσχει υποστήριξη για ενσωματωμένα φίλτρα για διευκόλυνση του χρήστη, όπως λειτουργία θαμπώματος κατά τυπική απόκλιση, φίλτρο κλίμακας του γκρι στην εικόνα, Περιστροφή αποχρώσεων, Αντιστροφή χρωμάτων της εικόνας, εφαρμογή τόνου σέπια και πολλά άλλα.

Previous Next

Ξεκινώντας με την Απεικόνιση

Ο ευκολότερος και προτεινόμενος τρόπος εγκατάστασης του SVGo είναι μέσω του GitHub. Χρησιμοποιήστε την παρακάτω εντολή για εύκολη και ομαλή εγκατάσταση.

Εγκαταστήστε το SVGo  μέσω GitHub

go get -u github.com/ajstarks/svgo

Δημιουργήστε SVG μέσω της Βιβλιοθήκης GO

Η βιβλιοθήκη ανοιχτού κώδικα SVGo επιτρέπει στους προγραμματιστές λογισμικού να δημιουργούν μέσω προγραμματισμού σχέδια SVG μέσα στη δική τους εφαρμογή χρησιμοποιώντας εντολές Go. Οι προγραμματιστές πρέπει να ορίσουν το πλάτος και το ύψος του καμβά SVG καθώς και τον προορισμό του SVG. Οι προγραμματιστές μπορούν εύκολα να σχεδιάσουν σχήματα όπως κύκλους, ελλείψεις, πολύγωνα κ.λπ., καθώς και να εισάγουν εύκολα το κείμενο της επιλογής τους.

Δημιουργία εικόνας SVG μέσω 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()
}

Σχεδίαση σχημάτων & μονοπατιών

Η βιβλιοθήκη SVGo έχει παράσχει λειτουργικότητα για τη δημιουργία διαφορετικών ειδών σχημάτων μέσα στις δικές τους εφαρμογές. Υποστηρίζει τη σχεδίαση κύκλου, έλλειψης, πολυγώνου, ορθογωνίου ή στρογγυλεμένου ορθογωνίου, τετραγώνου, σειράς τμημάτων γραμμής και πολλά άλλα. Μπορείτε επίσης να σχεδιάσετε εύκολα γραμμές και μονοπάτια. Μπορείτε να σχεδιάσετε ένα ελλειπτικό τόξο, μια ωρίμανση, μια κυβική καμπύλη bezier, μια τετραγωνική καμπύλη bezier και ούτω καθεξής.

Κυκλοφορεί online μέσω 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()
}

Υποστήριξη εικόνας και κειμένου

Η βιβλιοθήκη ανοιχτού κώδικα SVGo παρέχει πλήρη υποστήριξη για την εισαγωγή εικόνων και κειμένου κατά τη δημιουργία ενός σχεδίου SVG χρησιμοποιώντας εντολές Go. Κατά την τοποθέτηση μιας εικόνας ή κειμένου, πρέπει να καθορίσετε το μέρος όπου θέλετε να το τοποθετήσετε και επίσης να ορίσετε το πλάτος και το ύψος της εικόνας. Μπορείτε επίσης να εισαγάγετε πολλές γραμμές κειμένου και να ορίσετε το μέγεθος, το γέμισμα, τη στοίχιση και το διάστημα. Υποστηρίζει επίσης την τοποθέτηση κειμένου με στυλ μαζί με τη διαδρομή. Μπορείτε επίσης να ορίσετε το χρώμα της επιλογής σας χρησιμοποιώντας το σχήμα RGB.

Προσθήκη εικόνων και κειμένου στο SVG στο εσωτερικό των εφαρμογών 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()
}

Εφαρμογή κινούμενων εικόνων στο SVG

Τα στοιχεία κινούμενων εικόνων SVG αναπτύχθηκαν σε συνεργασία με την Ομάδα Εργασίας Συγχρονισμένης Πολυμέσων του World Wide Web Consortium (W3C). Το SVGo δίνει τη δυνατότητα στους προγραμματιστές να δημιουργούν εκπληκτικές κινούμενες εικόνες και να εξάγουν ένα μεμονωμένο αρχείο SVG με κίνηση. Η βιβλιοθήκη επιτρέπει την κίνηση του στοιχείου που αναφέρεται από τη σύνδεση, κινεί το αντικείμενο αναφοράς κατά μήκος της καθορισμένης διαδρομής, κινεί τον μετασχηματισμό μετάφρασης, κινεί τον μετασχηματισμό περιστροφής, κινεί τον μετασχηματισμό κλίμακας ή skewX κ.λπ.

Προσθήκη Animation στο SVG μέσω της βιβλιοθήκης 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()
}
 Ελληνικά