Mergi
GO API for Advanced Image Manipulation
برای ادغام، برش و تغییر اندازه تصاویر به صورت برنامهریزی، کتابخانه منبعدهی Go را باز کنید. می توانید واترمارک و انیمیشن را به تصاویر داخل برنامه های خود اضافه کنید.
Mergi یک کتابخانه قدرتمند go است که قابلیت پردازش برنامهای تصاویر را با استفاده از زبان GO فراهم میکند. این کتابخانه به خوبی سازماندهی شده است و می تواند به راحتی برای انجام عملیات های متعدد تنها با چند خط کد Go یکپارچه شود. این کتابخانه به صورت رایگان تحت مجوز MIT در دسترس است و می تواند به راحتی در پروژه های شما استفاده شود.
کتابخانه منبع باز Mergi شامل پشتیبانی کامل از چندین ویژگی مهم پردازش تصویر مانند ادغام تصاویر، پشتیبانی از برش تصویر، تغییر اندازه تصاویر، افزودن واترمارک به تصاویر شما، تسهیلات انیمیشن تصویر، آسان کردن تصاویر، افزودن انتقال به تصاویر و بسیاری موارد دیگر است.
شروع کار با Mergi
ساده ترین راه برای نصب Mergi استفاده از GitHub است. لطفا از دستور زیر برای نصب راحت استفاده کنید
Mergi را از طریق GitHub نصب کنید.
$ go get github.com/noelyahan/mergi
تصاویر را از طریق Go API متحرک کنید
کتابخانه منبع باز Mergi به توسعه دهندگان نرم افزار این قدرت را می دهد که هر نتیجه آرایه تصویری را در برنامه های GO خود متحرک کنند. شما باید مسیر صحیح تصویر یا URL مسیر فایل را ارائه دهید. سپس باید Images را به یک آرایه منتقل کنید و بر اساس نیاز خود تاخیر اعمال کنید. در پایان، میتوانید نتیجه نهایی را از طریق یک صادرکننده انیمیشن صادر کنید تا فایل 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 خود وارد کنند. با استفاده از ویژگی Watermarking به راحتی می توانیم از تصاویر خود را از ایجاد و توزیع کپی های غیرمجاز محافظت کنیم. این کتابخانه از قرار دادن لوگو و همچنین واترمارک متنی با استفاده از چند خط کد 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"))