Бібліотека Go з відкритим кодом для створення та обробки SVG

Дуже стабільний Go API, який підтримує створення креслень 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

Бібліотека SVGo з відкритим кодом дозволяє розробникам програмного забезпечення програмно генерувати малюнки SVG у власних програмах за допомогою команд Go. Розробникам потрібно визначити ширину та висоту полотна 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 надала функціональні можливості для створення різних видів фігур у власних програмах. Він підтримує малювання кола, еліпса, багатокутника, прямокутника або прямокутника з округленими кутами, квадрата, серії відрізків ліній тощо. Ви також можете легко малювати лінії та контури. Ви можете намалювати еліптичну дугу, вилікувати, кубічну криву Безьє, квадратичну криву Безьє тощо.

Креслення VIP через 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. Під час розміщення зображення або тексту вам потрібно s вказати місце, куди ви хочете його розмістити, а також можете визначити ширину та висоту зображення. Ви також можете вставити кілька рядків тексту та визначити розмір, заливку, вирівнювання та інтервал. Він також підтримує розміщення стилізованого тексту разом із контуром. Ви також можете визначити колір на свій вибір за допомогою схеми 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 були розроблені у співпраці з Робочою групою синхронізованих мультимедійних матеріалів Консорціуму Всесвітньої павутини (W3C). SVGo дозволяє розробникам створювати приголомшливі анімації та легко експортувати один анімований файл SVG. Бібліотека дозволяє анімувати елемент, на який посилається посилання, анімувати об’єкт, на який посилається, уздовж указаного шляху, анімувати перетворення переміщення, анімувати перетворення обертання, анімувати перетворення масштабу або skewX тощо.

Додати анімацію до SVG через РусскийУкраїнськаБеларускаяOʻzbek tiliEnglish

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()
}
 Українська