ছবি তৈরি ও ম্যানিপুলেশনের জন্য ওপেন সোর্স গো লাইব্রেরি
শক্তিশালী Go API যা JPEG, PNG, GIF, TIFF এবং BMP ছবিগুলিকে রিসাইজ, ক্রপ এবং রোটেট সমর্থন করে। এছাড়াও আপনি চিত্রের উজ্জ্বলতা, বৈসাদৃশ্য, চিত্রগুলির গামা সংশোধন সামঞ্জস্য করতে পারেন।
ওপেন সোর্স গো ইমেজিং এপিআই একটি অত্যন্ত শক্তিশালী প্যাকেজ যা ইমেজ তৈরি এবং ম্যানিপুলেশন সম্পর্কিত সম্পূর্ণ কার্যকারিতা প্রদান করে। লাইব্রেরিটি খুবই নমনীয় এবং ডেভেলপারদের সহজে নতুন ছবি তৈরি করতে এবং কোডের কয়েকটি লাইন দিয়ে বিদ্যমান ছবিগুলিকে সংশোধন করতে দেয়।
ইমেজিং হল একটি বিশুদ্ধ গো লাইব্রেরি যা আকারে ছোট এবং কার্যকারিতায় দক্ষ। এতে JPEG, PNG, GIF, TIFF, BMP এবং আরও অনেক কিছুর মতো গুরুত্বপূর্ণ ইমেজ ফাইল ফরম্যাটের সমর্থন অন্তর্ভুক্ত রয়েছে। লাইব্রেরিতে ইমেজ রিসাইজ করার জন্য বেশ কিছু রিস্যাম্পলিং ফিল্টারও রয়েছে। কিছু গুরুত্বপূর্ণ ফিল্টার হল NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box, ইত্যাদি। লাইব্রেরি ডেভেলপারদের কাস্টম ফিল্টার তৈরি করতে সহায়তা করেছে।
বিনামূল্যের ইমেজিং লাইব্রেরিতে ইমেজ প্রক্রিয়াকরণের সাথে সম্পর্কিত বেশ কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য অন্তর্ভুক্ত করা হয়েছে, যেমন ইমেজ রিসাইজ করা, ইমেজ রোটেশন, ইমেজ ক্রপিং, ইমেজ ব্রাইটনেস অ্যাডজাস্ট করা, ইমেজ কনট্রাস্ট অ্যাডজাস্টমেন্ট, ইমেজের গামা কারেকশন, ইমেজের স্যাচুরেশন পরিবর্তন, ক্লোন ইমেজ, ইমেজ। ব্লার, এনকোড এবং ডিকোড ইমেজ, ইমেজ ওভারলে, তীক্ষ্ণতা যোগ করুন, থাম্বনেল তৈরি করুন এবং অন্যান্য অনেক বৈশিষ্ট্য।
ইমেজিং দিয়ে শুরু করা
GitHub এর মাধ্যমে Imagingis ইনস্টল করার সবচেয়ে সহজ এবং প্রস্তাবিত উপায়।
GitHub এর মাধ্যমে ইমেজিং ইনস্টল করুন
go get -u github.com/disintegration/imaging
Go API এর মাধ্যমে নতুন ছবি তৈরি করুন
ওপেন সোর্স ইমেজিং লাইব্রেরিতে Go কমান্ড ব্যবহার করে তাদের নিজস্ব অ্যাপ্লিকেশনের ভিতরে নতুন ছবি তৈরি করার জন্য সমর্থন অন্তর্ভুক্ত করা হয়েছে। নতুন ছবি তৈরির জন্য ছবির প্রস্থ, উচ্চতা, ছবির পটভূমির রঙ এবং ছবির আউটপুট বিন্যাস প্রয়োজন। এছাড়াও আপনি সহজেই তৈরি করা ইমেজ পরিবর্তন করতে পারেন এবং বিভিন্ন ক্রিয়াকলাপ যেমন ফ্লিপ, অপাসিটি সেটিং, ব্লেন্ড, ব্লার এবং আরও অনেক কিছু করতে পারেন।
Go API এর মাধ্যমে নতুন ছবি তৈরি করুন
func New(width, height int, fillColor color.Color) *image.NRGBA {
if width <= 0 || height <= 0 {
return &image.NRGBA{}
}
c := color.NRGBAModel.Convert(fillColor).(color.NRGBA)
if (c == color.NRGBA{0, 0, 0, 0}) {
return image.NewNRGBA(image.Rect(0, 0, width, height))
}
return &image.NRGBA{
Pix: bytes.Repeat([]byte{c.R, c.G, c.B, c.A}, width*height),
Stride: 4 * width,
Rect: image.Rect(0, 0, width, height),
}
}
Go এর মাধ্যমে অন্য ফরম্যাটে ইমেজ কনভার্সন
সফ্টওয়্যার বিকাশকারীরা একটি বিনামূল্যের ইমেজিং লাইব্রেরি ব্যবহার করে তাদের নিজস্ব GO Apps-এর মধ্যে সহজেই তাদের ছবিগুলিকে অন্যান্য সমর্থিত ফাইল ফর্ম্যাটে রূপান্তর করতে পারে৷ আপনাকে শুধু ছবির নাম এবং আউটপুট ইমেজ ফরম্যাট প্রদান করতে হবে। সেভ ফাংশন ব্যবহার করে আপনি সহজেই অন্যান্য সমর্থিত ইমেজ ফাইল ফরম্যাটে যেমন PNG, BMP, GIF, JPEG, TIFF এবং আরও অনেক কিছুতে ছবি রপ্তানি করতে পারেন।
আকার পরিবর্তন করুন এবং ছবি ক্রপ করুন
ফ্রি ইমেজিং এপিআই Go কমান্ড ব্যবহার করে আপনার প্রয়োজন অনুযায়ী চিত্রের আকার পরিবর্তন করার কার্যকারিতা অন্তর্ভুক্ত করেছে। প্রথমে, আপনাকে একটি চিত্র খুলতে হবে এবং এটির আকার পরিবর্তন করতে ছবির উচ্চতা এবং প্রস্থ প্রদান করতে হবে। আরেকটি বিকল্প হল যে আপনি আকৃতির অনুপাত সংরক্ষণ করে শুধুমাত্র প্রস্থ প্রদান করে চিত্রটির আকার পরিবর্তন করতে পারেন। লাইব্রেরিটি কাস্টম প্রস্থ, উচ্চতা এবং কেন্দ্রের অ্যাঙ্কর ব্যবহার করে মূল চিত্রটি ক্রপ করার অনুমতি দেয়।
Go API এর মাধ্যমে চিত্র ক্রপ এবং রিসাইজ করুন
func cropAndResize(img image.Image, width, height int, anchor Anchor, filter ResampleFilter) *image.NRGBA {
dstW, dstH := width, height
srcBounds := img.Bounds()
srcW := srcBounds.Dx()
srcH := srcBounds.Dy()
srcAspectRatio := float64(srcW) / float64(srcH)
dstAspectRatio := float64(dstW) / float64(dstH)
var tmp *image.NRGBA
if srcAspectRatio < dstAspectRatio {
cropH := float64(srcW) * float64(dstH) / float64(dstW)
tmp = CropAnchor(img, srcW, int(math.Max(1, cropH)+0.5), anchor)
} else {
cropW := float64(srcH) * float64(dstW) / float64(dstH)
tmp = CropAnchor(img, int(math.Max(1, cropW)+0.5), srcH, anchor)
}
return Resize(tmp, dstW, dstH, filter)
}
ফ্লিপ, ঘোরান, অস্পষ্ট এবং ক্লোন ছবি
ইমেজিং লাইব্রেরিতে ইমেজ ম্যানিপুলেশন যেমন ইমেজ ফ্লিপিং, ইমেজ রোটেশন, ব্লারিং এবং ক্লোনিং এর জন্য বেশ কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য অন্তর্ভুক্ত করা হয়েছে। একটি বিদ্যমান চিত্রের একটি অনুলিপি তৈরি করতে আপনাকে কেবল ক্লোন ফাংশনটি কল করতে হবে এবং বিদ্যমান চিত্র সরবরাহ করতে হবে। লাইব্রেরিটি কোডের মাত্র কয়েকটি লাইন দিয়ে আপনার ছবি ঘোরানো এবং ফ্লিপ করাকেও সমর্থন করে। আপনি সহজেই প্রদত্ত কোণ দ্বারা একটি ছবি ঘড়ির কাঁটার বিপরীত দিকে ঘোরাতে পারেন। কোণ প্যারামিটার হল ডিগ্রীতে ঘূর্ণন কোণ।
Go API এর মাধ্যমে ছবি ক্লোন করুন
func Clone(img image.Image) *image.NRGBA {
src := newScanner(img)
dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h))
size := src.w * 4
parallel(0, src.h, func(ys <-chan int) {
for y := range ys {
i := y * dst.Stride
src.scan(0, y, src.w, y+1, dst.Pix[i:i+size])
}
})
return dst
}