Mergi
উন্নত ছবি ম্যানিপুলেশনের জন্য GO API
ওপেন সোর্স গো লাইব্রেরি প্রোগ্রাম্যাটিকভাবে মার্জ, ক্রপ এবং ইমেজ রিসাইজ করতে। আপনি আপনার নিজের অ্যাপের ভিতরের ছবিতে ওয়াটারমার্ক এবং অ্যানিমেশন যোগ করতে পারেন।
Mergi হল একটি শক্তিশালী গো লাইব্রেরি যা GO ভাষা ব্যবহার করে প্রোগ্রাম্যাটিকভাবে ছবি প্রসেস করার ক্ষমতা প্রদান করে। লাইব্রেরিটি সুসংগঠিত এবং গো কোডের মাত্র কয়েকটি লাইনের সাথে অসংখ্য ক্রিয়াকলাপ সম্পাদন করতে সহজেই একত্রিত করা যেতে পারে। লাইব্রেরিটি এমআইটি লাইসেন্সের অধীনে অবাধে পাওয়া যায় এবং সহজেই আপনার প্রকল্পের ভিতরে ব্যবহার করা যেতে পারে।
ওপেন সোর্স মের্গি লাইব্রেরিতে বেশ কিছু গুরুত্বপূর্ণ ইমেজ প্রসেসিং ফিচারের সম্পূর্ণ সমর্থন অন্তর্ভুক্ত করা হয়েছে যেমন ইমেজ মার্জ করা, ইমেজ ক্রপিং সাপোর্ট, ইমেজ রিসাইজ করা, আপনার ছবিতে ওয়াটারমার্ক যোগ করা, ইমেজ অ্যানিমেশন সুবিধা, ইমেজ সহজ করা, ইমেজে ট্রানজিশন যোগ করা এবং আরও অনেক কিছু।
Mergi দিয়ে শুরু করা
Mergi ইনস্টল করার সবচেয়ে সহজ উপায় হল GitHub এর মাধ্যমে ব্যবহার করা। একটি মসৃণ ইনস্টলেশনের জন্য অনুগ্রহ করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন
GitHub এর মাধ্যমে Mergi ইনস্টল করুন।
$ go get github.com/noelyahan/mergi
Go API এর মাধ্যমে ছবি অ্যানিমেট করুন
ওপেন সোর্স মের্গি লাইব্রেরি সফ্টওয়্যার ডেভেলপারদের তাদের নিজস্ব GO অ্যাপ্লিকেশনের মধ্যে যে কোনো প্রদত্ত ইমেজ অ্যারে ফলাফল অ্যানিমেট করার ক্ষমতা দেয়। আপনাকে চিত্রের সঠিক পথ বা ফাইল পাথের URL প্রদান করতে হবে। তারপরে আপনাকে একটি অ্যারেতে চিত্রগুলি পাস করতে হবে এবং আপনার প্রয়োজন অনুসারে বিলম্ব প্রয়োগ করতে হবে। শেষ পর্যন্ত, আপনি ফলাফলের GIF ফাইল পেতে একটি অ্যানিমেশন রপ্তানিকারকের মাধ্যমে চূড়ান্ত ফলাফল রপ্তানি করতে পারেন।
Go API এর মাধ্যমে ছবিগুলিকে কীভাবে অ্যানিমেট করবেন
func Animate(imgs []image.Image, delay int) (gif.GIF, error) {
for i, v := range imgs {
if v == nil {
msg := fmt.Sprintf("Mergi found a error image=[%v] on %d", v, i)
return gif.GIF{}, errors.New(msg)
}
}
delays := make([]int, 0)
for i := 0; i < len(imgs); i++ {
delays = append(delays, delay)
}
images := encodeImgPaletted(&imgs)
return gif.GIF{
Image: images,
Delay: delays,
}, nil
}
Go API এর মাধ্যমে ছবি ক্রপিং
একটি নিখুঁত ছবি হাজার শব্দ বলতে পারে। ইমেজ ক্রপিং হল একটি ফোকাস তৈরি করতে বা ইমেজকে শক্তিশালী করার জন্য ছবির একটি অবাঞ্ছিত এলাকা অপসারণ করা। Mergi লাইব্রেরি সফ্টওয়্যার প্রোগ্রামারদের তাদের নিজস্ব Go অ্যাপ্লিকেশনের মধ্যে তাদের ছবি ক্রপ করতে সক্ষম করে। বিকাশকারীকে প্রয়োজনীয় চিত্র এবং অবস্থানের কাস্টম প্রস্থ এবং উচ্চতা প্রদান করতে হবে।
Go API এর মাধ্যমে ছবি ক্রপ করুন
var errCrop = errors.New("Mergi found a error image on Crop")
var errCropBound = errors.New("Mergi expects more than 0 value for bounds")
func Animate(imgs []image.Image, delay int) (gif.GIF, error) {
for i, v := range imgs {
if v == nil {
msg := fmt.Sprintf("Mergi found a error image=[%v] on %d", v, i)
return gif.GIF{}, errors.New(msg)
}
}
delays := make([]int, 0)
for i := 0; i < len(imgs); i++ {
delays = append(delays, delay)
}
images := encodeImgPaletted(&imgs)
return gif.GIF{
Image: images,
Delay: delays,
}, nil
}
ছবিতে ওয়াটারমার্ক সংযোজন
বিনামূল্যে Mergi লাইব্রেরি সফ্টওয়্যার প্রোগ্রামারদের সহজে তাদের Go অ্যাপ্লিকেশনের ভিতরে ইমেজগুলিতে প্রোগ্রাম্যাটিকভাবে জলছাপ সন্নিবেশ করার ক্ষমতা দেয়। ওয়াটারমার্কিং বৈশিষ্ট্য ব্যবহার করে আমরা অননুমোদিত অনুলিপি তৈরি এবং বিতরণ থেকে সহজেই সুরক্ষিত আমাদের ছবি করতে পারি৷ লাইব্রেরি গো কোডের কয়েকটি লাইন ব্যবহার করে একটি লোগো এবং পাঠ্য ওয়াটারমার্ক স্থাপন সমর্থন করে। ওয়াটারমার্কগুলি আপনার পছন্দের যে কোনও নির্বাচিত অবস্থানে পাশাপাশি আপনার পছন্দের অস্বচ্ছতার সাথে স্থাপন করা যেতে পারে।
Go API এর মাধ্যমে ছবিতে ওয়াটারমার্ক যোগ করুন
originalImage, _ := mergi.Import(impexp.NewFileImporter("./testdata/mergi_bg_1.png"))
watermarkImage, _ := mergi.Import(impexp.NewFileImporter("./testdata/glass-mergi_logo_watermark_90x40.jpg"))
res, _ := mergi.Watermark(watermarkImage, originalImage, image.Pt(250, 10))
mergi.Export(impexp.NewFileExporter(res, "watermark.png"))
ইমেজ মার্জিং সাপোর্ট
Mergi লাইব্রেরি ডেভেলপারদের Go প্রোগ্রামিং কমান্ড ব্যবহার করে তাদের চাহিদা অনুযায়ী একাধিক ছবিকে একটি একক ছবিতে একত্রিত করতে সহায়তা করে। লাইব্রেরি প্রদত্ত টেমপ্লেট অনুযায়ী একাধিক ছবি একত্রিত করতে সমর্থন করে। এটি অনুভূমিক একত্রীকরণ এবং উল্লম্ব মার্জ সুবিধা সমর্থন করে। দুটি চিত্রকে একত্রিত করতে আপনাকে একটি চিত্রের পথ বা সঠিক URL প্রদান করতে হবে এবং এর পরে, আপনি চিত্রগুলিকে অনুভূমিকভাবে বা উল্লম্বভাবে মার্জ করতে একটি টেমপ্লেট নির্বাচন করতে পারেন৷
Go API এর মাধ্যমে চিত্রগুলিকে মার্জ করুন৷
image1, _ := mergi.Import(impexp.NewFileImporter("./testdata/mergi_bg_1.png"))
image2, _ := mergi.Import(impexp.NewFileImporter("./testdata/mergi_bg_2.png"))
horizontalImage, _ := mergi.Merge("TT", []image.Image{image1, image2})
mergi.Export(impexp.NewFileExporter(horizontalImage, "horizontal.png"))
verticalImage, _ := mergi.Merge("TB", []image.Image{image1, image2})
mergi.Export(impexp.NewFileExporter(verticalImage, "vertical.png"))