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