کتابخانه متن باز Go برای ایجاد و دستکاری SVG

یک Go API  بسیار پایدار که از ایجاد نقشه‌های SVG پشتیبانی می‌کند. شما می توانید اشکال، خطوط، متن، تصاویر، مسیرها را اضافه کنید و رنگ، شیب، انیمیشن و موارد دیگر را اعمال کنید.  

SVGo یک کتابخانه زبان Go منبع باز است که به توسعه دهندگان نرم افزار امکان می دهد SVG را در داخل برنامه های خود با استفاده از Scalable Vector Graphics 1.1 Specification ایجاد کنند. این کتابخانه از اشکال SVG مانند دایره، بیضی، چند ضلعی، مستطیل و غیره پشتیبانی می کند. همچنین از ویژگی های تبدیل SVG مانند ترجمه، چرخش، مقیاس، کج و غیره پشتیبانی می کند.

کتابخانه SVGo می تواند در هر جایی که زبان Go در دسترس باشد اجرا شود و به طور کامل در سیستم عامل های محبوب مانند لینوکس، مک او اس ایکس، ویندوز و غیره قابل حمل است. این کتابخانه دارای چندین ویژگی مهم مربوط به اشکال، خطوط، متن، مسیرهای ترسیم، تصاویر و گرادیان، تبدیل تصویر، افکت های فیلتر، اعمال انیمیشن ها، عناصر ابرداده و غیره.

این کتابخانه برای تولید کد استاندارد، تمیز و خوانا طراحی شده است که نزدیک به کد تنظیم شده و دست ساز است که از انواع عناصر SVG استفاده کامل می کند. این کتابخانه برای راحتی کاربر از فیلترهای داخلی پشتیبانی می‌کند، مانند عملکرد تاری بر اساس انحراف استاندارد، فیلتر مقیاس خاکستری برای تصویر، چرخش رنگ‌ها، معکوس کردن رنگ‌های تصویر، اعمال رنگ قهوه‌ای و بسیاری موارد دیگر.

Previous Next

شروع کار با تصویربرداری

ساده ترین و توصیه شده ترین راه برای نصب SVGo از طریق GitHub است. لطفا برای نصب آسان و روان از دستور زیر استفاده کنید.

SVGo را از طریق GitHub نصب کنید

go get -u github.com/ajstarks/svgo

SVG را از طریق GO Library تولید کنید

کتابخانه منبع باز SVGo توسعه دهندگان نرم افزار را قادر می سازد تا با استفاده از دستورات Go، نقشه های SVG را به صورت برنامه نویسی در داخل برنامه خود ایجاد کنند. توسعه دهندگان باید عرض و ارتفاع بوم SVG و همچنین مقصد SVG را تعریف کنند. توسعه دهندگان به راحتی می توانند اشکالی مانند دایره، بیضی، چندضلعی و غیره را ترسیم کنند و همچنین می توانند متن دلخواه خود را به راحتی وارد کنند.

تصویر SVG را از طریق GO ایجاد کنید

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 قابلیتی برای ایجاد انواع مختلف اشکال در داخل برنامه های خود ارائه کرده است. از کشیدن یک دایره، بیضی، چند ضلعی، مستطیل یا مستطیل گرد، مربع، یک سری پاره خط و موارد دیگر پشتیبانی می کند. همچنین می توانید به راحتی خطوط و مسیرها را ترسیم کنید. می توانید یک قوس بیضوی، کیور، منحنی بزیر مکعبی، منحنی بزیر درجه دوم و غیره بکشید.

ترسیم دایره آنلاین از طریق GO

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 در داخل برنامه های GO

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 را متحرک می کند و غیره.

انیمیشن را از طریق کتابخانه GO به SVG اضافه کنید

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()
}
 فارسی