Atvirojo kodo vaizdo dydžio keitimo serveris, užtikrinantis greitesnį apdorojimą
„Picfit“ yra „Pure Go“ sukurtas vaizdo dydžio keitimo serveris, kuris rūpinasi vaizdų apdorojimo dalimi, neatsižvelgiant į naudojamą saugojimo variklį.
Vaizdo apdorojimas, ypač dydžio keitimas, gali būti ilgas procesas, jei jūsų vaizdas saugomas skirtinguose varikliuose, nes gali užtrukti, kol programa pašalins pseudoportretų kodus ir išvengs sinchroninių skambučių, kad gautų sugeneruotą vaizdą.
„Picfit“ išsprendžia šias problemas, veikdama kaip tarpinis serveris tarp jūsų saugojimo variklio ir HTTP talpyklos sistemos. Nors jį galima nemokamai atsisiųsti, atvirojo kodo ir greitesnis apdorojimas, jis taip pat neleidžia generuoti to paties vaizdo du kartus ir neužima per daug vietos.
Galite saugoti vaizdus „Amazon S3“, „DigitalOcean S3“, failų sistemoje ir kt.
Darbo su Picfit pradžia
Lengviausias ir rekomenduojamas būdas įdiegti „Picfit“ yra per „GitHub“. Norėdami lengvai ir sklandžiai įdiegti, naudokite šią komandą.
Įdiekite „Picfit“ per „GitHub“.
git clone https://github.com/thoas/picfit.git
Pakeiskite vaizdų dydį naudodami nemokamą GO biblioteką
Atvirojo kodo „picfit“ biblioteka leidžia programinės įrangos kūrėjams programiškai keisti vaizdų dydį savo programoje naudojant „Go“ komandas. Viena iš pagrindinių Picfit funkcijų yra galimybė keisti vaizdų dydį pagal jūsų pasirinktą aukštį ir plotį. Tiesiog pateikite w (norimo vaizdo pločio) ir h (norimo vaizdo aukščio) reikšmes.
Pakeiskite vaizdo dydį naudodami nemokamą GO biblioteką
func (e *GoImageEngine) Resize(img *imagefile.ImageFile, width int, height int, options *Options) ([]byte, error) {
if options.Format == imaging.GIF {
content, err := e.TransformGIF(img, width, height, options, imaging.Resize)
if err != nil {
return nil, err
}
return content, nil
}
image, err := e.Source(img)
if err != nil {
return nil, err
}
return e.resize(image, width, height, options)
}
Nemokamai eikite į biblioteką, kad sukurtumėte miniatiūras
Galite naudoti šią funkciją, kad sukurtumėte naują vaizdą su pakartotinai atrinktu filtru, padidintu arba sumažintu, ir apkarpyti iki nurodyto aukščio ir pločio. Vėlgi, naudodami šią funkciją, turite pateikti w ir h reikšmes.
Kaip generuoti GIF miniatiūras „GO Apps“?
func (e *GoImageEngine) Thumbnail(img *imagefile.ImageFile, width int, height int, options *Options) ([]byte, error) {
if options.Format == imaging.GIF {
content, err := e.TransformGIF(img, width, height, options, imaging.Thumbnail)
if err != nil {
return nil, err
}
return content, nil
}
image, err := e.Source(img)
if err != nil {
return nil, err
}
return e.thumbnail(image, width, height, options)
}
Gaukite vaizdo informaciją per Go API
Be dydžio keitimo funkcijų, „Picfit“ taip pat turi keletą svarbių funkcijų, leidžiančių gauti informaciją apie failą, pvz., „Gauti“, taip pat saugojimo ar įkėlimo komandas. Naudodami funkciją Gauti gausite šiuos parametrus:
- Failo pavadinimas: sugeneruoto failo pavadinimas
- Kelias: tai bus jūsų sugeneruoto failo kelias jūsų saugojimo variklyje
- URL: jei yra base_url, gausite visą sugeneruoto failo URL