Библиотека Go с открытым исходным кодом для создания и управления SVG

Очень стабильный API Go, который поддерживает создание рисунков SVG. Вы можете добавлять фигуры, линии, текст, изображения, пути и применять цвет, градиенты, анимацию и многое другое.  

SVGo — это библиотека языка Go с открытым исходным кодом, которая позволяет разработчикам программного обеспечения создавать SVG в своих собственных приложениях с использованием спецификации Scalable Vector Graphics 1.1. Библиотека обеспечивает поддержку фигур SVG, таких как круги, эллипсы, многоугольники, прямоугольники и т. д. Она также поддерживает функции преобразования SVG, такие как перевод, поворот, масштабирование, наклон и т. д.

Библиотека SVGo может работать везде, где доступен язык Go, и полностью переносима на популярные операционные системы, такие как Linux, Mac OS X, Windows и т. д. Библиотека включает несколько важных функций, связанных с фигурами, линиями, текстом, путями рисования, изображениями и т. д. градиенты, преобразование изображений, эффекты фильтров, применение анимации, элементы метаданных и так далее.

Библиотека предназначена для создания стандартного, чистого, удобочитаемого кода, который близок к настроенному, созданному вручную коду, в котором в полной мере используются различные элементы SVG. Библиотека обеспечивает поддержку встроенных фильтров для удобства пользователя, таких как функция размытия по стандартному отклонению, фильтр оттенков серого для изображения, поворот оттенков, инвертирование цветов изображения, применение тона сепии и многое другое.

Previous Next

Начало работы с визуализацией

Самый простой и рекомендуемый способ установки SVGo — через GitHub. Пожалуйста, используйте следующую команду для простой и плавной установки.

Установите SVGo через GitHub

go get -u github.com/ajstarks/svgo

Сгенерируйте SVG через GO Library

Библиотека SVGo с открытым исходным кодом позволяет разработчикам программного обеспечения программно создавать рисунки SVG внутри своего собственного приложения с помощью команд Go. Разработчикам необходимо определить ширину и высоту холста SVG, а также назначение SVG. Разработчики могут легко рисовать фигуры, такие как круги, эллипсы, многоугольники и т. д., а также могут легко вводить текст по своему выбору.

Создание SVG Изображение через 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()
}

Рисование фигур и путей

Библиотека SVGo предоставляет функциональные возможности для создания различных типов фигур внутри собственных приложений. Он поддерживает рисование круга, эллипса, многоугольника, прямоугольника или прямоугольника со скругленными углами, квадрата, серии отрезков линии и многого другого. Вы также можете легко рисовать линии и пути. Вы можете нарисовать эллиптическую дугу, лечение, кубическую кривую Безье, квадратичную кривую Безье и так далее.

Рисунок Круг онлайн через 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()
}

Поддержка изображений и текста

Библиотека SVGo с открытым исходным кодом обеспечивает полную поддержку вставки изображений и текста при создании рисунка SVG с помощью команд Go. При размещении изображения или текста вам необходимо указать место, куда вы хотите его поместить, а также можете определить ширину и высоту изображения. Вы также можете вставить несколько строк текста и определить размер, заливку, выравнивание и интервал. Он также поддерживает размещение стилизованного текста вместе с путем. Вы также можете определить цвет по вашему выбору, используя схему RGB.

Добавить изображение и текст в SVG в приложения 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()
}

Применение анимации к SVG

Анимационные элементы SVG были разработаны в сотрудничестве с рабочей группой Synchronized Multimedia Work Group консорциума World Wide Web Consortium (W3C). SVGo позволяет разработчикам создавать потрясающие анимации и с легкостью экспортировать один анимированный файл SVG. Библиотека позволяет анимировать элемент, на который ссылается ссылка, анимирует указанный объект по указанному пути, анимирует преобразование перемещения, анимирует преобразование вращения, анимирует преобразование масштаба или skewX и так далее.

Добавить анимацию в SVG через Библиотека 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()
}
 Русский