SVG তৈরি এবং ম্যানিপুলেশনের জন্য ওপেন সোর্স গো লাইব্রেরি

একটি অত্যন্ত স্থিতিশীল Go API যা SVG অঙ্কন তৈরি করা সমর্থন করে। আপনি আকার, লাইন, পাঠ্য, চিত্র, পথ যোগ করতে পারেন এবং রঙ, গ্রেডিয়েন্ট, অ্যানিমেশন এবং আরও অনেক কিছু প্রয়োগ করতে পারেন।  

SVGo হল একটি ওপেন সোর্স Go ল্যাঙ্গুয়েজ লাইব্রেরি যা সফ্টওয়্যার ডেভেলপারদের স্কেলেবল ভেক্টর গ্রাফিক্স 1.1 স্পেসিফিকেশন ব্যবহার করে তাদের নিজস্ব অ্যাপের মধ্যে SVG তৈরি করতে সক্ষম করে। লাইব্রেরি SVG আকৃতি যেমন বৃত্ত, উপবৃত্ত, বহুভুজ, আয়তক্ষেত্র ইত্যাদির জন্য সমর্থন প্রদান করে। এটি অনুবাদ, ঘূর্ণন, স্কেল, স্কু ইত্যাদির মত SVG রূপান্তর বৈশিষ্ট্যগুলিকেও সমর্থন করে।

SVGo লাইব্রেরি যেখানে Go ভাষা উপলব্ধ আছে সেখানে চলতে পারে এবং লিনাক্স, Mac OS X, Windows ইত্যাদির মতো জনপ্রিয় অপারেটিং সিস্টেম জুড়ে সম্পূর্ণ বহনযোগ্য গ্রেডিয়েন্ট, চিত্র রূপান্তর, ফিল্টার প্রভাব, অ্যানিমেশন প্রয়োগ, মেটাডেটা উপাদান, এবং তাই।

লাইব্রেরিটি স্ট্যান্ডার্ড, পরিষ্কার, পঠনযোগ্য কোড তৈরি করার জন্য ডিজাইন করা হয়েছে যা টিউন করা, হাতে তৈরি করা কোডের কাছাকাছি যা বিভিন্ন SVG উপাদানের সম্পূর্ণ ব্যবহার করে। লাইব্রেরি ব্যবহারকারীর সুবিধার জন্য অন্তর্নির্মিত ফিল্টারগুলির জন্য সমর্থন প্রদান করেছে, যেমন স্ট্যান্ডার্ড বিচ্যুতি দ্বারা ব্লার ফাংশন, ছবিতে গ্রেস্কেল ফিল্টার, রঙগুলি ঘোরানো, চিত্রের রঙগুলি উল্টানো, সেপিয়া টোন প্রয়োগ করা এবং আরও অনেক কিছু।

Previous Next

ইমেজিং দিয়ে শুরু করা

SVGo ইনস্টল করার সবচেয়ে সহজ এবং প্রস্তাবিত উপায় হল GitHub এর মাধ্যমে। একটি সহজ এবং মসৃণ ইনস্টলেশনের জন্য অনুগ্রহ করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

GitHub এর মাধ্যমে SVGo ইনস্টল করুন

go get -u github.com/ajstarks/svgo

GO লাইব্রেরির মাধ্যমে SVG তৈরি করুন

ওপেন সোর্স SVGo লাইব্রেরি সফ্টওয়্যার ডেভেলপারদের Go কমান্ড ব্যবহার করে তাদের নিজস্ব অ্যাপ্লিকেশনের মধ্যে প্রোগ্রাম্যাটিকভাবে SVG অঙ্কন তৈরি করতে সক্ষম করে। ডেভেলপারদের SVG ক্যানভাসের প্রস্থ এবং উচ্চতা এবং সেইসাথে SVG-এর গন্তব্য নির্ধারণ করতে হবে। বিকাশকারীরা সহজেই বৃত্ত, উপবৃত্ত, বহুভুজ ইত্যাদির মতো আকার আঁকতে পারে এবং সেইসাথে তাদের পছন্দের পাঠ্যটি সহজেই প্রবেশ করতে পারে।

GO এর মাধ্যমে SVG ইমেজ তৈরি করুন

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 লাইব্রেরি Go কমান্ড ব্যবহার করে একটি SVG অঙ্কন তৈরি করার সময় ছবি এবং পাঠ্য সন্নিবেশ করার জন্য সম্পূর্ণ সমর্থন প্রদান করেছে। একটি ইমেজ বা টেক্সট স্থাপন করার সময় আপনাকে সেই জায়গাটি নির্দিষ্ট করতে হবে যেখানে আপনি এটি রাখতে চান এবং ছবির প্রস্থ এবং উচ্চতাও নির্ধারণ করতে পারেন। আপনি পাঠ্যের একাধিক লাইন সন্নিবেশ করতে পারেন এবং আকার, পূরণ, প্রান্তিককরণ এবং ব্যবধান নির্ধারণ করতে পারেন। এটি পথের সাথে স্টাইল করা পাঠ্য স্থাপনকেও সমর্থন করে। আপনি আরজিবি স্কিম ব্যবহার করে আপনার পছন্দের রঙটিও সংজ্ঞায়িত করতে পারেন।

GO Apps-এর ভিতরে SVG-তে ছবি ও টেক্সট যোগ করুন

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 অ্যানিমেশন উপাদানগুলি ওয়ার্ল্ড ওয়াইড ওয়েব কনসোর্টিয়াম (W3C) সিঙ্ক্রোনাইজড মাল্টিমিডিয়া ওয়ার্কিং গ্রুপের সহযোগিতায় তৈরি করা হয়েছিল। The 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()
}
 বাংলা