کتابخانه متن باز Go برای ایجاد و دستکاری SVG
یک Go API بسیار پایدار که از ایجاد نقشههای SVG پشتیبانی میکند. شما می توانید اشکال، خطوط، متن، تصاویر، مسیرها را اضافه کنید و رنگ، شیب، انیمیشن و موارد دیگر را اعمال کنید.
SVGo یک کتابخانه زبان Go منبع باز است که به توسعه دهندگان نرم افزار امکان می دهد SVG را در داخل برنامه های خود با استفاده از Scalable Vector Graphics 1.1 Specification ایجاد کنند. این کتابخانه از اشکال SVG مانند دایره، بیضی، چند ضلعی، مستطیل و غیره پشتیبانی می کند. همچنین از ویژگی های تبدیل SVG مانند ترجمه، چرخش، مقیاس، کج و غیره پشتیبانی می کند.
کتابخانه SVGo می تواند در هر جایی که زبان Go در دسترس باشد اجرا شود و به طور کامل در سیستم عامل های محبوب مانند لینوکس، مک او اس ایکس، ویندوز و غیره قابل حمل است. این کتابخانه دارای چندین ویژگی مهم مربوط به اشکال، خطوط، متن، مسیرهای ترسیم، تصاویر و گرادیان، تبدیل تصویر، افکت های فیلتر، اعمال انیمیشن ها، عناصر ابرداده و غیره.
این کتابخانه برای تولید کد استاندارد، تمیز و خوانا طراحی شده است که نزدیک به کد تنظیم شده و دست ساز است که از انواع عناصر SVG استفاده کامل می کند. این کتابخانه برای راحتی کاربر از فیلترهای داخلی پشتیبانی میکند، مانند عملکرد تاری بر اساس انحراف استاندارد، فیلتر مقیاس خاکستری برای تصویر، چرخش رنگها، معکوس کردن رنگهای تصویر، اعمال رنگ قهوهای و بسیاری موارد دیگر.
شروع کار با تصویربرداری
ساده ترین و توصیه شده ترین راه برای نصب 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()
}