Eikite į API, kad gautumėte HTTP pagrįstą vaizdo apdorojimą
Atvirojo kodo „Go“ biblioteka, kuri palaiko internetinį išmanųjį apkarpymą, apverskite arba pasukite vaizdus, kurkite vaizdų miniatiūras, keiskite vaizdo mastelį, pridėkite vandens ženklų prie PNG, WEBP, TIFF, PDF, GIF, SVG ir kt.
Įsivaizduojamasis yra labai galingas atvirojo kodo HTTP pagrįstas vaizdų apdorojimo „Go“ API, suteikiantis programinės įrangos kūrėjams galią atlikti pažangias vaizdo operacijas naudojant privačias arba viešąsias HTTP paslaugas su mažesne priklausomybe. Jis palaiko išplėstines operacijas, tokias kaip API prieigos rakto autorizacija, URL parašo apsauga, HTTP srauto droselio strategija ir CORS palaikymas žiniatinklio klientams. Biblioteka gali nuskaityti vaizdus iš HTTP POST naudingųjų apkrovų, serverio vietinių kelių arba nuotolinių HTTP serverių.
Imaginary yra galinga ir stabili biblioteka, sukurta ant libvips greito ir efektyvaus vaizdo apdorojimo. Biblioteka palaiko vaizdo formatus, tokius kaip JPEG, PNG, HEIF, WEBP, TIFF, PDF, GIF ir SVG formatai, taip pat skaidrų konvertavimą tarp jų. Jis suteikė visišką Docker & Fly.io palaikymą. Puikus „Fly“ pranašumas yra tai, kad jis gali sumažinti delsą ir užtikrinti geresnę praktiką aptarnaudamas srautą netoli jūsų naudotojo vietos.
Įsivaizduojama biblioteka visiškai palaiko keletą svarbių funkcijų, susijusių su vaizdo kūrimu, konvertavimu ir manipuliavimu, pvz., vaizdo dydžio keitimą, vaizdų didinimą, vaizdų apkarpymą, išmanųjį apkarpymą, vaizdų pasukimą, automatinį pasukimą su tolesniais vaizdo transformavimais, automatinį apvertimą pagal EXIF metaduomenis, vaizdą šnipšti, keisti vaizdus, kurti vaizdų miniatiūras, pritaikyti vaizdus, įterpti arba išplėsti vaizdą, pridėti vandens ženklo vaizdą, pridėti vaizdo suliejimo efektų ir dar daugiau.
Darbo pradžia su įsivaizduojamu
Paprasčiausias ir rekomenduojamas būdas įdiegti įsivaizduojamą yra per GitHub.
Įdiekite „imaginary“ per „GitHub“.
go get -u github.com/h2non/imaginary
Konvertuokite vaizdus į kitus formatus naudodami „Go“.
Atvirojo kodo API įsivaizduojamoji biblioteka apima palaikymą, leidžiantį lengvai konvertuoti vaizdus į kitus palaikomus failų formatus. Galite išsaugoti vaizdus kai kuriais labai naudingais formatais, tokiais kaip JPEG, PNG ir WEBP formatai. Biblioteka suteikė konvertavimo palaikymą su papildomais kokybės ir glaudinimo parametrais. Jums tereikia pateikti teisingą vaizdo pavadinimą, adresą ir konvertavimo formatą, o biblioteka lengvai konvertuos jį už jus tik keliomis „Go“ komandomis.
Konvertuoti vaizdą per Imaginary Library
func Convert(buf []byte, o ImageOptions) (Image, error) {
if o.Type == "" {
return Image{}, NewError("Missing required param: type", http.StatusBadRequest)
}
if ImageType(o.Type) == bimg.UNKNOWN {
return Image{}, NewError("Invalid image type: "+o.Type, http.StatusBadRequest)
}
opts := BimgOptions(o)
return Process(buf, opts)
}
Vaizdo apkarpymas internetu naudojant „Go“.
Atvirojo kodo įsivaizduojama biblioteka leidžia programinės įrangos kūrėjams apkarpyti savo vaizdus internete, naudojant tik keletą eilučių Go kodo savo programose. Galite apkarpyti vaizdą nurodydami pasirinktinį plotį arba aukštį. Biblioteka palengvina jūsų darbą išlaikant vaizdo santykį. Biblioteka taip pat palaiko vaizdo apkarpymą naudojant libvips integruotą išmaniojo apkarpymo algoritmą. Taip pat galite nustatyti PNG vaizdų vaizdo glaudinimo lygį ir lengvai apversti, apversti ir pasukti vaizdus.
Vaizdo apkarpymas naudojant „Go Library“.
{
"operation": "crop",
"params": {
"width": 500,
"height": 300
}
Pakeiskite vaizdų dydį, kad tilptų
Nemokama įsivaizduojama biblioteka apima vaizdų dydžio keitimo palaikymą, kad tilptų naudojant „Go“ komandas jų programose. Galite lengvai pakeisti vaizdo dydį, kad jis tilptų į plotį ir aukštį, neapkarpydami. Biblioteka palengvina jūsų darbą išlaikant vaizdo formato santykį. Plotis ir aukštis nurodo didžiausią vaizdo apribojimo laukelį.
Pakeiskite vaizdo dydį naudodami „Free Go Library“.
func Resize(buf []byte, o ImageOptions) (Image, error) {
if o.Width == 0 && o.Height == 0 {
return Image{}, NewError("Missing required param: height or width", http.StatusBadRequest)
}
opts := BimgOptions(o)
opts.Embed = true
if o.IsDefinedField.NoCrop {
opts.Crop = !o.NoCrop
}
return Process(buf, opts)
}
Pasukite ir automatiškai pasukite vaizdus
Nemokama įsivaizduojama biblioteka suteikia galimybę lengvai pasukti vaizdus. Jame taip pat yra labai naudinga funkcija, skirta automatiškai pasukti vaizdus „Go“ programose. Jis automatiškai pasuka vaizdą be tolesnių vaizdo transformacijų pagal EXIF orientacijos metaduomenis. Naudojant automatinio sukimo metodą sukuriamas naujas tokio pat dydžio ir formato vaizdas kaip ir įvesties vaizdas.
Automatiškai pasukti vaizdą per Free Go biblioteką
func AutoRotate(buf []byte, o ImageOptions) (out Image, err error) {
defer func() {
if r := recover(); r != nil {
switch value := r.(type) {
case error:
err = value
case string:
err = errors.New(value)
default:
err = errors.New("libvips internal error")
}
out = Image{}
}
}