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

Open Source Go Library för att skapa och manipulera SVG

En mycket stabil Go API som stöder generering av SVG-ritningar. Du kan lägga till former, linjer, text, bilder, banor och använda färg, övertoningar, animationer och mer.  

SVGo är ett Go-språkbibliotek med öppen källkod som gör det möjligt för mjukvaruutvecklare att skapa SVG i sina egna appar med hjälp av Scalable Vector Graphics 1.1 Specification. Biblioteket ger stöd för SVG-former som cirklar, ellipser, polygoner, rektanglar, etc. Det stöder även SVG-transformationsfunktioner som översätta, rotera, skala, skeva och så vidare.

SVGo-biblioteket kan köras var som helst där Go-språket är tillgängligt och är helt portabelt över populära operativsystem som Linux, Mac OS X, Windows, etc. Biblioteket har inkluderat flera viktiga funktioner relaterade till former, linjer, text, ritbanor, bilder och gradienter, bildtransformation, filtereffekter, applicering av animationer, metadataelement och så vidare.

Biblioteket är designat för att producera standard, ren, läsbar kod som är nära inställd, handgjord kod som till fullo utnyttjar en mängd SVG-element. Biblioteket har tillhandahållit stöd för inbyggda filter för användarens bekvämlighet, såsom oskärpa funktion med standardavvikelse, gråskalefilter på bilden, Rotera nyanser, Invertera bildens färger, applicera sepiatoner och många fler.

Previous Next

Komma igång med bildbehandling

Det enklaste och rekommenderade sättet att installera SVGo är via GitHub. Använd följande kommando för en enkel och smidig installation.

Installera SVGo  via GitHub

go get -u github.com/ajstarks/svgo

Generera SVG via GO Library

SVGo-biblioteket med öppen källkod gör det möjligt för mjukvaruutvecklare att programmatiskt generera SVG-ritningar i sin egen applikation med hjälp av Go-kommandon. Utvecklare måste definiera bredden och höjden på SVG-duken samt destinationen för SVG. Utvecklare kan enkelt rita former som cirklar, ellipser, polygoner, etc. samt kan enkelt skriva in texten som de väljer.

Skapa SVG Bild via 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()
}

Rita former och banor

SVGo-biblioteket har tillhandahållit funktionalitet för att skapa olika typer av former i sina egna applikationer. Det stöder att rita en cirkel, ellips, polygon, rektangel eller en rundad rektangel, kvadrat, serier av linjesegment och mer. Du kan också enkelt rita linjer och banor med lätthet. Du kan rita en elliptisk båge, bota, kubisk bezier-kurva, kvadratisk bezier-kurva och så vidare.

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

Stöd för bild och text

SVGo-biblioteket med öppen källkod har gett komplett stöd för att infoga bilder och text samtidigt som du skapar en SVG-ritning med Go-kommandon. När du placerar en bild eller text måste du s ange var du vill placera den och kan även definiera bildens bredd och höjd. Du kan också infoga flera rader med text och definiera storlek, fyllning, justering och avstånd. Det stöder också att placera formaterad text tillsammans med sökvägen. Du kan också definiera vilken färg du väljer med hjälp av RGB-schemat.

Lägg till bild och text till SVG inuti 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()
}

Använder animering på SVG

SVG-animationselement utvecklades i samarbete med World Wide Web Consortium (W3C) Synchronized Multimedia Working Group. SVGo gör det möjligt för utvecklare att göra fantastiska animationer och exportera en enda animerad SVG-fil med lätthet. Biblioteket tillåter animering av objektet som länken refererar till, animerar det refererade objektet längs den angivna banan, animerar översättningstransformationen, animerar rotationstransformationen, animerar skalan eller skewX-transformationen och så vidare.

Lägg till Animation till SVG via Gt Bibliotek

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