Mergi
GO API išplėstiniam vaizdo manipuliavimui
Open Source Go biblioteka, skirta programiškai sujungti, apkarpyti ir pakeisti vaizdus. Savo programose prie vaizdų galite pridėti vandens ženklų ir animacijos.
Mergi yra galinga go biblioteka, kuri suteikia galimybę programiškai apdoroti vaizdus naudojant GO kalbą. Biblioteka yra gerai organizuota ir gali būti lengvai integruota, kad būtų galima atlikti daugybę operacijų, naudojant tik keletą eilučių Go kodo. Biblioteka yra laisvai prieinama pagal MIT licenciją ir gali būti lengvai naudojama jūsų projektuose.
Atvirojo kodo Mergi biblioteka apima visišką kelių svarbių vaizdo apdorojimo funkcijų palaikymą, pvz., vaizdų sujungimą, vaizdų apkarpymo palaikymą, vaizdų dydžio keitimą, vandens ženklų pridėjimą prie vaizdų, vaizdų animacijos funkciją, vaizdų palengvinimą, perėjimo prie vaizdų pridėjimą ir daug daugiau.
Darbo su Mergi pradžia
Lengviausias būdas įdiegti Mergi yra naudojant GitHub. Norėdami sklandžiai įdiegti, naudokite šią komandą
Įdiekite „Mergi“ per „GitHub“.
$ go get github.com/noelyahan/mergi
Animuokite vaizdus naudodami „Go API“.
Atvirojo kodo Mergi biblioteka suteikia programinės įrangos kūrėjams galią animuoti bet kurį vaizdų masyvo rezultatą savo pačių GO programose. Turite nurodyti teisingą vaizdo kelią arba failo kelio URL. Tada turite perduoti vaizdus į masyvą ir pritaikyti delsą pagal savo poreikius. Galų gale galite eksportuoti galutinį rezultatą naudodami animacijos eksportuotoją, kad gautumėte gautą GIF failą.
Kaip animuoti vaizdus naudojant „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
}
Vaizdo apkarpymas naudojant „Go API“.
Puikus vaizdas gali pasakyti tūkstantį žodžių. Vaizdo apkarpymas – tai nepageidaujamos vaizdo srities pašalinimas, siekiant sufokusuoti arba sustiprinti vaizdą. „Mergi“ biblioteka leidžia programuotojams apkarpyti vaizdus savo „Go“ programose. Kūrėjas turi pateikti pasirinktinį reikiamo vaizdo ir vietos plotį ir aukštį.
Apkarpyti vaizdą per „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
}
Vandenženklių papildymas vaizdams
Nemokama Mergi biblioteka suteikia programuotojams galimybę programiškai lengvai įterpti vandens ženklus į vaizdus savo Go programose. Naudodami vandens ženklų funkciją galime lengvai apsaugoti savo vaizdus nuo neteisėtų kopijų kūrimo ir platinimo. Biblioteka palaiko logotipo ir teksto vandens ženklų įdėjimą, naudojant kelias Go kodo eilutes. Vandenženkliai gali būti dedami bet kurioje pasirinktoje jūsų pasirinktoje vietoje, taip pat pagal jūsų pasirinktą neskaidrumą.
Pridėkite vandens ženklus prie vaizdo naudodami „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"))
Vaizdų sujungimo palaikymas
Mergi biblioteka padeda kūrėjams sujungti kelis vaizdus į vieną vaizdą pagal savo poreikius, naudojant Go programavimo komandas. Biblioteka palaiko kelių vaizdų sujungimą pagal duotus šablonus. Jis palaiko horizontalaus ir vertikalaus sujungimo įrenginius. Norėdami sujungti du vaizdus, turite nurodyti vaizdo kelią arba teisingą URL, o po to galite pasirinkti šabloną, kad sujungtumėte vaizdus horizontaliai arba vertikaliai.
Sujunkite vaizdus per 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"))