Open Source Go-bibliotheek voor het maken en manipuleren van SVG

Een zeer stabiele Go API die het genereren van SVG-tekeningen ondersteunt. U kunt vormen, lijnen, tekst, afbeeldingen, paden toevoegen en kleuren, verlopen, animaties en meer toepassen.  

SVGo is een open source Go-taalbibliotheek waarmee softwareontwikkelaars SVG kunnen maken in hun eigen apps met behulp van Scalable Vector Graphics 1.1-specificatie. De bibliotheek biedt ondersteuning voor SVG-vormen zoals cirkels, ellipsen, polygonen, rechthoeken, enz. Het ondersteunt ook functies voor SVG-transformaties zoals vertalen, roteren, schalen, scheeftrekken, enzovoort.

De SVGo-bibliotheek kan overal worden uitgevoerd waar de Go-taal beschikbaar is en is volledig overdraagbaar op populaire besturingssystemen zoals Linux, Mac OS X, Windows, enz. De bibliotheek heeft verschillende belangrijke functies opgenomen met betrekking tot vormen, lijnen, tekst, tekenpaden, afbeeldingen en verlopen, beeldtransformatie, filtereffecten, toepassen van animaties, metadata-elementen, enzovoort.

De bibliotheek is ontworpen om standaard, schone, leesbare code te produceren die dicht in de buurt komt van afgestemde, handgemaakte code die volledig gebruik maakt van een verscheidenheid aan SVG-elementen. De bibliotheek heeft ondersteuning geboden voor ingebouwde filters voor gebruikersgemak, zoals vervagingsfunctie door standaarddeviatie, grijswaardenfilter voor de afbeelding, tinten roteren, de kleuren van de afbeelding omkeren, sepiatinten toepassen en nog veel meer.

Previous Next

Aan de slag met beeldvorming

De gemakkelijkste en aanbevolen manier om SVGo te installeren is via GitHub. Gebruik de volgende opdracht voor een gemakkelijke en vlotte installatie.

Installeer SVGo via GitHub

go get -u github.com/ajstarks/svgo

Genereer SVG via GO Library

De open source SVGo-bibliotheek stelt softwareontwikkelaars in staat om programmatisch SVG-tekeningen te genereren in hun eigen applicatie met behulp van Go-commando's. Ontwikkelaars moeten de breedte en hoogte van het SVG-canvas definiëren, evenals de bestemming van SVG. Ontwikkelaars kunnen gemakkelijk vormen tekenen zoals cirkels, ellipsen, polygonen, enz. en kunnen ook gemakkelijk de tekst van hun keuze invoeren.

Creëer SVG Vertaling:

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()
}

Vormen en paden tekenen

De SVGo-bibliotheek biedt functionaliteit voor het maken van verschillende soorten vormen binnen hun eigen toepassingen. Het ondersteunt het tekenen van een cirkel, ellips, veelhoek, rechthoek of een afgeronde rechthoek, vierkant, reeks lijnsegmenten en meer. U kunt ook gemakkelijk lijnen en paden tekenen. U kunt een elliptische boog tekenen, genezen, kubieke bezier-curve, kwadratische bezier-curve, enzovoort.

Circle Online door 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()
}

Ondersteuning voor afbeeldingen en tekst

De open source SVGo-bibliotheek biedt volledige ondersteuning voor het invoegen van afbeeldingen en tekst tijdens het maken van een SVG-tekening met behulp van Go-opdrachten. Tijdens het plaatsen van een afbeelding of tekst moet u de plaats specificeren waar u deze wilt plaatsen en kunt u ook de breedte en hoogte van de afbeelding definiëren. U kunt ook meerdere regels tekst invoegen en grootte, vulling, uitlijning en afstand definiëren. Het ondersteunt ook het plaatsen van gestileerde tekst samen met het pad. U kunt ook de kleur van uw keuze definiëren met behulp van het RGB-schema.

Voeg Image Text toe aan SVG in GT 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()
}

Animatie toepassen op SVG

SVG-animatie-elementen zijn ontwikkeld in samenwerking met de Synchronized Multimedia Working Group van het World Wide Web Consortium (W3C). De SVGo stelt ontwikkelaars in staat verbluffende animaties te maken en met gemak een enkel geanimeerd SVG-bestand te exporteren. Met de bibliotheek kan het item waarnaar wordt verwezen door de link worden geanimeerd, het object waarnaar wordt verwezen langs het opgegeven pad worden geanimeerd, de translatietransformatie worden geanimeerd, de rotatietransformatie worden geanimeerd, de schaal- of skewX-transformatie worden geanimeerd, enzovoort.

Voeg Animatie toe aan SVG via GT bibliotheek

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()
}
 Dutch