Thư viện mã nguồn mở Go để tạo và thao tác SVG

Một API Go rất ổn định hỗ trợ Tạo bản vẽ SVG. Bạn có thể thêm hình dạng, đường thẳng, văn bản, hình ảnh, đường dẫn và áp dụng màu, độ dốc, hoạt ảnh và hơn thế nữa.  

SVGo là một thư viện ngôn ngữ Go mã nguồn mở cho phép các nhà phát triển phần mềm tạo SVG bên trong các ứng dụng của riêng họ bằng cách sử dụng Đặc tả Đồ họa Vectơ có thể mở rộng 1.1. Thư viện cung cấp hỗ trợ cho các hình dạng SVG như hình tròn, hình elip, đa giác, hình chữ nhật, v.v. Nó cũng hỗ trợ các tính năng biến đổi SVG như dịch, xoay, chia tỷ lệ, xiên, v.v.

Thư viện SVGo có thể chạy ở bất kỳ đâu mà ngôn ngữ Go có sẵn và hoàn toàn di động trên các hệ điều hành phổ biến như Linux, Mac OS X, Windows, v.v. Thư viện đã bao gồm một số tính năng quan trọng liên quan đến hình dạng, đường thẳng, văn bản, đường vẽ, hình ảnh và gradient, chuyển đổi hình ảnh, hiệu ứng bộ lọc, áp dụng hoạt ảnh, yếu tố siêu dữ liệu, v.v.

Thư viện được thiết kế để tạo ra mã chuẩn, rõ ràng, có thể đọc được, gần với mã được điều chỉnh, thủ công sử dụng đầy đủ các yếu tố SVG khác nhau. Thư viện đã cung cấp hỗ trợ cho các bộ lọc tích hợp để thuận tiện cho người dùng, chẳng hạn như chức năng làm mờ theo độ lệch chuẩn, bộ lọc thang độ xám cho hình ảnh, Xoay màu, Đảo ngược màu sắc của hình ảnh, áp dụng tông màu nâu đỏ, và nhiều hơn nữa.

Previous Next

Bắt đầu với Hình ảnh

Cách dễ nhất và được đề xuất để cài đặt SVGo là thông qua GitHub. Vui lòng sử dụng lệnh sau để cài đặt dễ dàng và suôn sẻ.

Cài đặt SVGo qua GitHub

go get -u github.com/ajstarks/svgo

Tạo SVG qua Thư viện GO

Thư viện SVGo mã nguồn mở cho phép các nhà phát triển phần mềm tạo lập trình các bản vẽ SVG bên trong ứng dụng của riêng họ bằng cách sử dụng lệnh Go. Các nhà phát triển cần xác định chiều rộng và chiều cao của canvas SVG cũng như đích của SVG. Các nhà phát triển có thể dễ dàng vẽ các hình dạng như hình tròn, hình elip, đa giác, v.v. cũng như có thể nhập văn bản họ chọn một cách dễ dàng.

Tạo ra SVG Hình ảnh qua 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()
}

Vẽ Hình dạng & Đường dẫn

Thư viện SVGo đã cung cấp chức năng để tạo các loại hình dạng khác nhau bên trong các ứng dụng của riêng họ. Nó hỗ trợ vẽ hình tròn, hình elip, hình đa giác, hình chữ nhật hoặc hình chữ nhật tròn, hình vuông, chuỗi đoạn thẳng và hơn thế nữa. Bạn cũng có thể dễ dàng vẽ các đường thẳng và đường dẫn một cách dễ dàng. Bạn có thể vẽ một cung elip, chữa, đường cong bezier khối, đường cong bezier bậc hai, v.v.

Vẽ Circle online qua 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()
}

Hỗ trợ hình ảnh và văn bản

Thư viện SVGo mã nguồn mở đã cung cấp hỗ trợ hoàn chỉnh cho việc chèn hình ảnh và văn bản trong khi tạo bản vẽ SVG bằng các lệnh Go. Trong khi đặt một hình ảnh hoặc văn bản, bạn cần chỉ định nơi bạn muốn đặt nó và cũng có thể xác định chiều rộng và chiều cao của hình ảnh. Bạn cũng có thể chèn nhiều dòng văn bản và xác định kích thước, điền, căn chỉnh và khoảng cách. Nó cũng hỗ trợ đặt văn bản theo kiểu cùng với đường dẫn. Bạn cũng có thể xác định màu bạn chọn bằng cách sử dụng lược đồ RGB.

Thêm hình ảnh và tin nhắn vào SVG bên trong 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()
}

Áp dụng Hoạt ảnh cho SVG

Các yếu tố hoạt hình SVG được phát triển với sự cộng tác của Nhóm làm việc đa phương tiện được đồng bộ hóa của World Wide Web Consortium (W3C). The SVGo cho phép các nhà phát triển tạo hoạt ảnh tuyệt đẹp và xuất một tệp SVG hoạt ảnh duy nhất một cách dễ dàng. Thư viện cho phép tạo hoạt ảnh mục được tham chiếu bởi liên kết, tạo hoạt ảnh cho đối tượng được tham chiếu dọc theo đường dẫn đã chỉ định, tạo hoạt ảnh cho phép biến đổi dịch, tạo ảnh động cho phép biến đổi xoay, tạo ảnh động cho phép biến đổi tỷ lệ hoặc skewX, v.v.

Thêm hoạt hình cho SVG thông qua Thư viện 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()
}
 Tiếng Việt