1. Produtos
  2.   Imagem
  3.   GO
  4.   SVGo
 
  

Biblioteca Go de código aberto para criação e manipulação de SVG

Uma Go API muito estável que oferece suporte à geração de desenhos SVG. Você pode adicionar formas, linhas, texto, imagens, caminhos e aplicar cores, gradientes, animações e muito mais.  

SVGo é uma biblioteca de linguagem Go de código aberto que permite que desenvolvedores de software criem SVG dentro de seus próprios aplicativos usando a especificação Scalable Vector Graphics 1.1. A biblioteca oferece suporte para formas SVG como círculos, elipses, polígonos, retângulos, etc. Ela também suporta recursos de transformações SVG como traduzir, girar, dimensionar, inclinar e assim por diante.

A biblioteca SVGo pode ser executada em qualquer lugar em que a linguagem Go esteja disponível e é completamente portátil em sistemas operacionais populares como Linux, Mac OS X, Windows, etc. A biblioteca inclui vários recursos importantes relacionados a formas, linhas, texto, caminhos de desenho, imagens e gradientes, transformação de imagem, efeitos de filtro, aplicação de animações, elementos de metadados e assim por diante.

A biblioteca foi projetada para produzir código padrão, limpo e legível, próximo ao código ajustado e feito à mão, que faz uso total de uma variedade de elementos SVG. A biblioteca fornece suporte para filtros integrados para conveniência do usuário, como função de desfoque por desvio padrão, filtro de escala de cinza para a imagem, girar matizes, inverter as cores da imagem, aplicar tom sépia e muito mais.

Previous Next

Introdução à imagem

A maneira mais fácil e recomendada de instalar o SVGo é via GitHub. Por favor, use o seguinte comando para uma instalação fácil e suave.

Instale o SVGo pelo GitHub

go get -u github.com/ajstarks/svgo

Gerar SVG via Biblioteca GO

A biblioteca SVGo de código aberto permite que desenvolvedores de software gerem desenhos SVG programaticamente dentro de seu próprio aplicativo usando comandos Go. Os desenvolvedores precisam definir a largura e a altura da tela SVG, bem como o destino do SVG. Os desenvolvedores podem facilmente desenhar formas como círculos, elipses, polígonos, etc., bem como inserir o texto de sua escolha com facilidade.

Criar Imagem SVG 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()
}

Desenhar formas e caminhos

A biblioteca SVGo forneceu funcionalidade para criar diferentes tipos de formas dentro de seus próprios aplicativos. Ele suporta o desenho de um círculo, elipse, polígono, retângulo ou retângulo arredondado, quadrado, série de segmentos de linha e muito mais. Você também pode desenhar facilmente linhas e caminhos com facilidade. Você pode desenhar um arco elíptico, cura, curva bezier cúbica, curva bezier quadrática e assim por diante.

Círculo de Desenho 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()
}

Suporte de imagem e texto

A biblioteca SVGo de código aberto fornece suporte completo para inserir imagens e texto ao criar um desenho SVG usando comandos Go. Ao colocar uma imagem ou texto, você precisa especificar o local onde deseja colocá-lo e também pode definir a largura e a altura da imagem. Você também pode inserir várias linhas de texto e definir tamanho, preenchimento, alinhamento e espaçamento. Ele também suporta a colocação de texto estilizado junto com o caminho. Você também pode definir a cor de sua escolha usando o esquema RGB.

Adicionar imagem e texto ao SVG dentro do 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()
}

Aplicando animação ao SVG

Os elementos de animação SVG foram desenvolvidos em colaboração com o World Wide Web Consortium (W3C) Synchronized Multimedia Working Group. O SVGo permite que desenvolvedores criem animações impressionantes e exportem um único arquivo SVG animado com facilidade. A biblioteca permite animar o item referenciado pelo link, anima o objeto referenciado ao longo do caminho especificado, anima a transformação de translação, anima a transformação de rotação, anima a escala ou transformação skewX e assim por diante.

Adicionar Animação ao SVG através da biblioteca Gt

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()
}
 Português