1. Produkter
  2.   Billede
  3.   GO
  4.   SVGo
 
  

Open Source Go-bibliotek til SVG-oprettelse og -manipulation

En meget stabil Go API der understøtter Generering af SVG-tegninger. Du kan tilføje former, linjer, tekst, billeder, stier og anvende farver, gradienter, animationer og mere.  

SVGo er et open source Go-sprogbibliotek, der gør det muligt for softwareudviklere at oprette SVG i deres egne apps ved hjælp af Scalable Vector Graphics 1.1 Specification. Biblioteket understøtter SVG-former som cirkler, ellipser, polygoner, rektangler osv. Det understøtter også SVG-transformationsfunktioner som oversætte, rotere, skalere, skæve og så videre.

SVGo-biblioteket kan køre overalt, hvor Go-sproget er tilgængeligt og er fuldstændig bærbart på tværs af populære operativsystemer som Linux, Mac OS X, Windows osv. Biblioteket har inkluderet flere vigtige funktioner relateret til former, linjer, tekst, tegnestier, billeder og gradienter, billedtransformation, filtereffekter, anvendelse af animationer, metadataelementer og så videre.

Biblioteket er designet til at producere standard, ren, læsbar kode, der er tæt på tunet, håndlavet kode, der gør fuld brug af en række SVG-elementer. Biblioteket har ydet understøttelse af indbyggede filtre for brugerens bekvemmelighed, såsom sløringsfunktion ved standardafvigelse, gråtonefilter til billedet, Roter nuancer, Inverter billedets farver, anvend sepiatone og mange flere.

Previous Next

Kom godt i gang med billedbehandling

Den nemmeste og anbefalede måde at installere SVGo på er via GitHub. Brug venligst følgende kommando for en nem og smidig installation.

Installer SVGo  via GitHub

go get -u github.com/ajstarks/svgo

Generer SVG via GO Library

Open source SVGo-biblioteket gør det muligt for softwareudviklere at generere SVG-tegninger programmatisk i deres egen applikation ved hjælp af Go-kommandoer. Udviklere skal definere bredden og højden af SVG-lærredet samt destinationen for SVG. Udviklere kan nemt tegne figurer som cirkler, ellipser, polygoner osv. samt kan nemt indtaste teksten efter eget valg.

Opret SVG-billede via 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()
}

Tegning af former og stier

SVGo-biblioteket har givet funktionalitet til at skabe forskellige former for former i deres egne applikationer. Det understøtter tegning af en cirkel, ellipse, polygon, rektangel eller et afrundet rektangel, firkant, række linjestykker og mere. Du kan også nemt tegne linjer og stier med lethed. Du kan tegne en elliptisk bue, kur, kubisk bezier-kurve, kvadratisk bezier-kurve og så videre.

Tegnecirkel online via 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()
}

Billed- og tekststøtte

Open source SVGo-biblioteket har givet komplet support til at indsætte billeder og tekst, mens du laver en SVG-tegning ved hjælp af Go-kommandoer. Mens du placerer et billede eller en tekst, skal du s angive det sted, hvor du vil placere det og kan også definere bredden og højden af billedet. Du kan også indsætte flere tekstlinjer og definere størrelse, fyld, justering og afstand. Det understøtter også placering af stylet tekst sammen med stien. Du kan også definere farven efter eget valg ved hjælp af RGB-skemaet.

Tilføj billede og tekst til SVG inde i 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()
}

Anvendelse af animation til SVG

SVG-animationselementer blev udviklet i samarbejde med World Wide Web Consortium (W3C) Synchronized Multimedia Working Group. SVGo gør det muligt for udviklere at lave fantastiske animationer og nemt eksportere en enkelt animeret SVG-fil. Biblioteket tillader at animere det element, der refereres til af linket, animerer det refererede objekt langs den angivne sti, animerer oversættelsestransformationen, animerer rotationstransformationen, animerer skalaen eller skewX-transformationen, og så videre.

Tilføj animation til SVG via GO-biblioteket

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