![](https://products-qa.fileformat.com/ar/image/go/mergi/header-image.png)
Mergi
GO API للمعالجة المتقدمة للصور
مكتبة Open Source Go لدمج الصور واقتصاصها وتغيير حجمها برمجيًا. يمكنك إضافة علامات مائية ورسوم متحركة للصور داخل تطبيقاتك الخاصة.
Mergi هي مكتبة go قوية توفر القدرة على معالجة الصور برمجيًا باستخدام لغة GO. المكتبة منظمة جيدًا ويمكن دمجها بسهولة لإجراء العديد من العمليات باستخدام سطرين فقط من كود Go. المكتبة متاحة مجانًا بموجب ترخيص MIT ويمكن استخدامها داخل مشاريعك بسهولة.
تضمنت مكتبة Mergi مفتوحة المصدر دعمًا كاملاً للعديد من ميزات معالجة الصور المهمة مثل دمج الصور ، ودعم اقتصاص الصور ، وتغيير حجم الصور ، وإضافة العلامات المائية إلى صورك ، ومرفق الرسوم المتحركة للصور ، وتخفيف الصور ، وإضافة الانتقال إلى الصور ، وغير ذلك الكثير.
الشروع في العمل مع ميرجي
أسهل طريقة لتثبيت Mergi هي باستخدام عبر GitHub. الرجاء استخدام الأمر التالي للتثبيت السلس
قم بتثبيت Mergi عبر GitHub.
$ go get github.com/noelyahan/mergi
تحريك الصور عبر Go API
تمنح مكتبة Mergi مفتوحة المصدر مطوري البرامج القدرة على تحريك أي نتيجة مصفوفة صور معينة داخل تطبيقات 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. يمكن وضع العلامات المائية في أي موضع تختاره من اختيارك بالإضافة إلى التعتيم الذي تختاره.
أضف علامات مائية إلى الصورة عبر 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"))