1. produkty
  2.   obraz
  3.   GO
  4.   SVGo
 
  

Open Source Go Library pro tvorbu a manipulaci SVG

Velmi stabilní rozhraní Go API, které podporuje generování výkresů SVG. Můžete přidat tvary, čáry, text, obrázky, cesty a použít barvy, přechody, animace a další.  

SVGo je open source jazyková knihovna Go, která umožňuje vývojářům softwaru vytvářet SVG ve vlastních aplikacích pomocí specifikace Scalable Vector Graphics 1.1. Knihovna poskytuje podporu pro tvary SVG, jako jsou kruhy, elipsy, mnohoúhelníky, obdélníky atd. Podporuje také funkce transformací SVG, jako je překládání, otáčení, měřítko, zkosení a tak dále.

Knihovna SVGo může běžet kdekoli, kde je dostupný jazyk Go, a je zcela přenosná napříč populárními operačními systémy, jako je Linux, Mac OS X, Windows atd. Knihovna obsahuje několik důležitých funkcí souvisejících s tvary, čarami, textem, cestami kreslení, obrázky a přechody, transformace obrazu, efekty filtrů, použití animací, prvků metadat a tak dále.

Knihovna je navržena tak, aby produkovala standardní, čistý a čitelný kód, který se blíží vyladěnému, ručně vytvořenému kódu, který plně využívá různé prvky SVG. Knihovna poskytuje podporu pro vestavěné filtry pro pohodlí uživatele, jako je funkce rozostření podle směrodatné odchylky, filtr ve stupních šedi na obrázku, Otočit odstíny, Invertovat barvy obrázku, použít sépiový tón a mnoho dalších.

Previous Next

Začínáme s Imaging

Nejjednodušší a doporučený způsob instalace SVGo je přes GitHub. Pro snadnou a hladkou instalaci použijte prosím následující příkaz.

Nainstalujte SVGo přes GitHub

go get -u github.com/ajstarks/svgo

Vygenerujte SVG prostřednictvím knihovny GO

Knihovna SVGo s otevřeným zdrojovým kódem umožňuje vývojářům softwaru programově generovat výkresy SVG uvnitř jejich vlastní aplikace pomocí příkazů Go. Vývojáři musí definovat šířku a výšku SVG plátna a také cíl SVG. Vývojáři mohou snadno kreslit tvary, jako jsou kruhy, elipsy, mnohoúhelníky atd., stejně jako mohou snadno zadávat text podle svého výběru.

Vytvořit SVG Obrázek přes 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()
}

Kreslení tvarů a cest

Knihovna SVGo poskytuje funkce pro vytváření různých druhů tvarů uvnitř jejich vlastních aplikací. Podporuje kreslení kruhu, elipsy, mnohoúhelníku, obdélníku nebo zaobleného obdélníku, čtverce, řady úseček a další. Můžete také snadno kreslit čáry a cesty. Můžete nakreslit eliptický oblouk, vytvrzení, kubickou Bézierovu křivku, kvadratickou Bézierovu křivku a tak dále.

Drawing Circle online přes 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()
}

Podpora obrázků a textu

Open source knihovna SVGo poskytuje kompletní podporu pro vkládání obrázků a textu při vytváření výkresu SVG pomocí příkazů Go. Při umísťování obrázku nebo textu musíte určit místo, kam jej chcete umístit, a také můžete definovat šířku a výšku obrázku. Můžete také vložit více řádků textu a definovat velikost, výplň, zarovnání a mezery. Podporuje také umístění stylizovaného textu spolu s cestou. Můžete také definovat barvu podle svého výběru pomocí schématu RGB.

Přidat obrázek a text do SVG uvnitř aplikace 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()
}

Použití animace na SVG

Prvky animace SVG byly vyvinuty ve spolupráci s World Wide Web Consortium (W3C) Synchronized Multimedia Working Group. SVGo umožňuje vývojářům snadno vytvářet úžasné animace a exportovat jediný animovaný soubor SVG. Knihovna umožňuje animovat položku, na kterou odkaz odkazuje, animovat odkazovaný objekt podél zadané cesty, animovat transformaci translace, animovat transformaci rotace, animovat transformaci měřítka nebo skewX a tak dále.

Přidání animace do SVG prostřednictvím Gt knihovna

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()
}
 Čeština