Accesați API pentru procesarea imaginilor bazată pe HTTP
Open Source Go Library care acceptă decuparea inteligentă online, răsturnarea sau rotirea imaginilor, crearea de miniaturi ale imaginilor, mărirea imaginilor, adăugarea de filigran la PNG, WEBP, TIFF, PDF, GIF și SVG etc.
Imaginarul este un API Go de procesare a imaginii bazat pe HTTP cu sursă deschisă foarte puternic, care oferă dezvoltatorilor de software puterea de a efectua operațiuni avansate de imagine prin servicii HTTP private sau publice, cu o dependență mai mică. Acceptă operațiuni avansate, cum ar fi autorizarea jetonului API, protecția semnăturii URL, strategia de accelerare a traficului HTTP și suportul CORS pentru clienții web. Biblioteca poate citi imagini din încărcături utile HTTP POST, căi locale ale serverului sau servere HTTP la distanță.
Imaginarul este o bibliotecă puternică și stabilă construită pe baza libvips, o procesare rapidă și eficientă a imaginii. Biblioteca a inclus suport pentru formate de imagine, cum ar fi formatele JPEG, PNG, HEIF, WEBP, TIFF, PDF, GIF și SVG, precum și conversie transparentă între ele. A oferit suport complet pentru Docker & Fly.io. Lucrul grozav despre Fly este că poate reduce latența și poate oferi o practică mai bună prin deservirea traficului aproape de locația utilizatorului.
Biblioteca imaginară acceptă pe deplin câteva caracteristici importante legate de crearea, conversia și manipularea imaginilor, cum ar fi redimensionarea imaginilor, mărirea imaginilor, tăierea imaginilor, trunchierea inteligentă, imaginile rotative, Rotire automată cu transformări ulterioare ale imaginii, răsturnare automată pe baza metadatelor EXIF, imagine flop, zoom imagini, creați miniaturi de imagini, potriviți imagini, încorporați sau extindeți o imagine, adăugați o imagine filigran, adăugați efecte de estompare la o imagine și multe altele.
Începeți cu imaginarul
Cel mai simplu și recomandat mod de a instala imaginary este prin GitHub.
Instalați imaginary prin GitHub
go get -u github.com/h2non/imaginary
Convertiți imaginile în alte formate prin Go
Biblioteca imaginară API open-source a inclus suport pentru conversia imaginilor dvs. în alte formate de fișiere acceptate cu ușurință. Puteți salva imagini în unele formate foarte utile, cum ar fi formatele JPEG, PNG și WEBP. Biblioteca a oferit suport de conversie cu setări suplimentare de calitate și compresie. Trebuie doar să furnizați numele corecte a imaginii, adresa și formatul de conversie, iar biblioteca o va converti cu ușurință pentru dvs. cu doar câteva comenzi Go.
Convertirea imaginii prin intermediul unei biblioteci imaginare
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)
}
Decuparea imaginilor online prin Go
Biblioteca imaginară open source permite dezvoltatorilor de software să-și decupe imaginile online cu doar câteva rânduri de cod Go în propriile aplicații. Vă puteți decupa imaginea furnizând lățime sau înălțime personalizate. Biblioteca vă ușurează munca prin menținerea raportului de imagine. Biblioteca acceptă, de asemenea, decuparea imaginii utilizând algoritmul de decupare inteligent încorporat libvips. De asemenea, puteți defini nivelul de compresie a imaginii pentru imaginile PNG și puteți să răsturnați, să vă rotiți și să vă rotiți imaginile cu ușurință.
Sursă foto: Go Library
{
"operation": "crop",
"params": {
"width": 500,
"height": 300
}
Redimensionați imaginile pentru a se potrivi
Biblioteca imaginară gratuită a inclus suport pentru redimensionarea imaginilor pentru a se potrivi folosind comenzile Go în aplicațiile lor. Puteți redimensiona cu ușurință o imagine pentru a se potrivi în lățime și înălțime, fără a decupa. Biblioteca vă ușurează munca prin menținerea raportului de aspect al imaginii. Lățimea și înălțimea specifică o casetă de delimitare maximă pentru imagine.
Sursă foto: 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)
}
Rotiți și rotiți automat imaginile
Biblioteca imaginară gratuită a oferit funcționalitate pentru rotirea imaginilor cu ușurință. De asemenea, a inclus o funcție foarte utilă pentru rotirea automată a imaginilor în interiorul aplicațiilor Go. Rotește automat imaginea fără alte transformări ale imaginii pe baza metadatelor de orientare EXIF. Metoda AutoRotate produce o nouă imagine cu aceeași dimensiune și format ca imaginea de intrare.
5 imagini din Free Go Library
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{}
}
}