Biblioteca Go de código abierto para la creación y manipulación de SVG
Una API de Go muy estable que admite la generación de dibujos SVG. Puede agregar formas, líneas, texto, imágenes, rutas y aplicar color, degradados, animaciones y más.
SVGo es una biblioteca de lenguaje Go de código abierto que permite a los desarrolladores de software crear SVG dentro de sus propias aplicaciones utilizando la especificación Scalable Vector Graphics 1.1. La biblioteca brinda soporte para formas SVG como círculos, elipses, polígonos, rectángulos, etc. También admite funciones de transformaciones SVG como traducir, rotar, escalar, sesgar, etc.
La biblioteca SVGo puede ejecutarse en cualquier lugar donde esté disponible el lenguaje Go y es completamente portátil en los sistemas operativos populares como Linux, Mac OS X, Windows, etc. La biblioteca ha incluido varias características importantes relacionadas con formas, líneas, texto, rutas de dibujo, imágenes y degradados, transformación de imágenes, efectos de filtro, aplicación de animaciones, elementos de metadatos, etc.
La biblioteca está diseñada para producir un código estándar, limpio y legible que está cerca del código ajustado y hecho a mano que hace un uso completo de una variedad de elementos SVG. La biblioteca ha brindado soporte para filtros incorporados para la comodidad del usuario, como la función de desenfoque por desviación estándar, filtro de escala de grises para la imagen, rotación de tonos, inversión de colores de la imagen, aplicación de tono sepia y muchos más.
Primeros pasos con la imagenología
La forma más fácil y recomendada de instalar SVGo es a través de GitHub. Utilice el siguiente comando para una instalación fácil y sin problemas.
Instalar SVGo a través de GitHub
go get -u github.com/ajstarks/svgo
Generar SVG a través de GO Library
La biblioteca SVGo de código abierto permite a los desarrolladores de software generar dibujos SVG mediante programación dentro de su propia aplicación utilizando los comandos Go. Los desarrolladores deben definir el ancho y la altura del lienzo SVG, así como el destino de SVG. Los desarrolladores pueden dibujar fácilmente formas como círculos, elipses, polígonos, etc. y también pueden ingresar el texto de su elección con facilidad.
Crear imagen SVG a través de 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()
}
Dibujar formas y caminos
La biblioteca SVGo ha proporcionado funcionalidad para crear diferentes tipos de formas dentro de sus propias aplicaciones. Admite dibujar un círculo, una elipse, un polígono, un rectángulo o un rectángulo redondeado, un cuadrado, una serie de segmentos de línea y más. También puede dibujar fácilmente líneas y caminos con facilidad. Puede dibujar un arco elíptico, un curado, una curva de Bézier cúbica, una curva de Bézier cuadrática, etc.
Círculo de dibujo en línea a través de 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()
}
Soporte de imagen y texto
La biblioteca SVGo de código abierto ha brindado soporte completo para insertar imágenes y texto al crear un dibujo SVG usando los comandos Go. Al colocar una imagen o texto, debe especificar el lugar donde desea colocarlo y también puede definir el ancho y el alto de la imagen. También puede insertar varias líneas de texto y definir el tamaño, el relleno, la alineación y el espaciado. También admite la colocación de texto con estilo junto con la ruta. También puede definir el color de su elección utilizando el esquema RGB.
Añadir Imagen Texto a SVG dentro de aplicaciones 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()
}
Aplicar animación a SVG
Los elementos de animación SVG se desarrollaron en colaboración con el Grupo de trabajo de multimedia sincronizada del World Wide Web Consortium (W3C). El SVGo permite a los desarrolladores crear animaciones sorprendentes y exportar un único archivo SVG animado con facilidad. La biblioteca permite animar el elemento al que hace referencia el vínculo, anima el objeto al que se hace referencia a lo largo de la ruta especificada, anima la transformación de traslación, anima la transformación de rotación, anima la transformación de escala o sesgoX, etc.
Añadir Animación a SVG a través de la 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()
}