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

Open Source Go-bibliotek for SVG-oppretting og -manipulering

En veldig stabil Go API som støtter Generering av SVG-tegninger. Du kan legge til former, linjer, tekst, bilder, baner og bruke farger, gradienter, animasjoner og mer.  

SVGo er et Go-språkbibliotek med åpen kildekode som gjør det mulig for programvareutviklere å lage SVG i sine egne apper ved å bruke Scalable Vector Graphics 1.1 Specification. Biblioteket gir støtte for SVG-former som sirkler, ellipser, polygoner, rektangler osv. Det støtter også SVG-transformasjonsfunksjoner som oversette, rotere, skalere, skjeve og så videre.

SVGo-biblioteket kan kjøres hvor som helst Go-språket er tilgjengelig og er fullstendig bærbart på tvers av populære operativsystemer som Linux, Mac OS X, Windows osv. Biblioteket har inkludert flere viktige funksjoner knyttet til former, linjer, tekst, tegnebaner, bilder og gradienter, bildetransformasjon, filtereffekter, bruk av animasjoner, metadataelementer og så videre.

Biblioteket er designet for å produsere standard, ren, lesbar kode som er nær innstilt, håndlaget kode som gjør full bruk av en rekke SVG-elementer. Biblioteket har gitt støtte for innebygde filtre for brukervennlighet, for eksempel uskarphet funksjon ved standardavvik, gråtonefilter til bildet, Roter fargetoner, Inverter bildets farger, bruk sepia-toner og mye mer.

Previous Next

Komme i gang med bildebehandling

Den enkleste og anbefalte måten å installere SVGo på er via GitHub. Bruk følgende kommando for en enkel og smidig installasjon.

Installer SVGo via GitHub

go get -u github.com/ajstarks/svgo

Generer SVG via GO Library

SVGo-biblioteket med åpen kildekode gjør det mulig for programvareutviklere å programmatisk generere SVG-tegninger i sin egen applikasjon ved å bruke Go-kommandoer. Utviklere må definere bredden og høyden på SVG-lerretet samt destinasjonen til SVG. Utviklere kan enkelt tegne former som sirkler, ellipser, polygoner, osv., og kan enkelt skrive inn teksten de ønsker.

Lag SVG-bilde 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()
}

Tegne former og stier

SVGo-biblioteket har gitt funksjonalitet for å lage forskjellige typer former i sine egne applikasjoner. Den støtter tegning av en sirkel, ellipse, polygon, rektangel eller et avrundet rektangel, firkant, serie med linjestykker og mer. Du kan også enkelt tegne linjer og stier. Du kan tegne en elliptisk bue, kur, kubisk bezier-kurve, kvadratisk bezier-kurve, og så videre.

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

Bilde- og tekststøtte

SVGo-biblioteket med åpen kildekode har gitt fullstendig støtte for å sette inn bilder og tekst mens du lager en SVG-tegning ved hjelp av Go-kommandoer. Mens du plasserer et bilde eller en tekst, må du s spesifisere stedet der du vil plassere det og kan også definere bredden og høyden på bildet. Du kan også sette inn flere linjer med tekst og definere størrelse, fyll, justering og avstand. Den støtter også plassering av stilet tekst sammen med banen. Du kan også definere fargen du ønsker ved å bruke RGB-skjemaet.

Legg til bilde og tekst til SVG 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()
}

Bruker animasjon på SVG

SVG-animasjonselementer ble utviklet i samarbeid med World Wide Web Consortium (W3C) Synchronized Multimedia Working Group. SVGo gjør det mulig for utviklere å lage fantastiske animasjoner og enkelt eksportere én enkelt animert SVG-fil. Biblioteket tillater animering av elementet det refereres til av lenken, animerer det refererte objektet langs den angitte banen, animerer translasjonstransformasjonen, animerer rotasjonstransformasjonen, animerer skalaen eller skewX-transformasjonen, og så videre.

Legg til animasjon 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()
}
 Norsk