1. Produkter
  2.   Bild
  3.   GO
  4.   imaginary
 
  

Gå API för HTTP-baserad bildbehandling

Open Source Go Library som stöder smart beskärning online, vänd eller rotera bilder, skapa bildminiatyrer, bildzoomning, lägga till vattenstämpel i PNG, WEBP, TIFF, PDF, GIF och SVG, etc.

Den imaginära är en mycket kraftfull öppen källkod HTTP-baserad bildbehandling Go API som ger mjukvaruutvecklare möjlighet att utföra avancerade bildoperationer via privata eller offentliga HTTP-tjänster med mindre beroende. Den stöder avancerade operationer som API-tokenauktorisering, URL-signaturskydd, HTTP-trafikbegränsningsstrategi och CORS-stöd för webbklienter. Biblioteket kan läsa bilder från HTTP POST-nyttolaster, lokala serversökvägar eller fjärranslutna HTTP-servrar.

Den imaginära är ett kraftfullt och stabilt bibliotek byggt ovanpå libvips en snabb och effektiv bildbehandling. Biblioteket har inkluderat stöd för bildformat som JPEG, PNG, HEIF, WEBP, TIFF, PDF, GIF och SVG-format samt transparent konvertering över dem. Det har gett komplett stöd för Docker & Fly.io. Det fantastiska med Fly är att det kan minska latensen och ge bättre övningar genom att betjäna trafik nära din användares plats.

Det imaginära biblioteket stöder fullt ut flera viktiga funktioner relaterade till bildskapande, konvertering och manipulering som bildstorleksändring, förstoring av bilder, bildbeskärning, smart-beskärning, roterande bilder, AutoRotate med ytterligare bildtransformationer, auto-flip baserat på EXIF-metadata, bild floppa, zooma bilder, skapa miniatyrbilder, anpassa bilder, bädda in eller utöka en bild, lägg till vattenstämpelbild, lägg till oskärpa effekter på en bild och mycket mer.

Previous Next

Komma igång med imaginära

Det enklaste och rekommenderade sättet att installera imaginärt är via GitHub.

Installera imaginärt via GitHub

go get -u github.com/h2non/imaginary

Konvertera bilder till andra format via Go

Det imaginära API-biblioteket med öppen källkod har inkluderat stöd för att enkelt konvertera dina bilder till andra filformat som stöds. Du kan spara bilder i några mycket användbara format som JPEG-, PNG- och WEBP-format. Biblioteket har tillhandahållit konverteringsstöd med ytterligare kvalitets- och komprimeringsinställningar. Du behöver bara ange rätt bildnamn, adress och konverteringsformat och biblioteket kommer enkelt att konvertera det åt dig med bara ett par Go-kommandon.

Konvertera bild via 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)
}

Bildbeskärning online via Go

Det imaginära biblioteket med öppen källkod gör det möjligt för mjukvaruutvecklare att beskära sina bilder online med bara ett par rader Go-kod i sina egna applikationer. Du kan beskära din bild genom att ange anpassad bredd eller höjd. Biblioteket gör ditt jobb enkelt genom att bibehålla bildförhållandet. Biblioteket stöder också beskärning av bilden genom att använda libvips inbyggda smarta beskärningsalgoritm. Du kan också definiera bildkomprimeringsnivån för PNG-bilder och vända, floppa och rotera dina bilder med lätthet.

Bildsläpp via Go Library

{
    "operation": "crop",
    "params": {
      "width": 500,
      "height": 300
    }

Ändra storlek på bilder så att de passar

Det fria imaginära biblioteket har inkluderat stöd för att ändra storlek på bilder för att passa med Go-kommandon i deras appar. Du kan enkelt ändra storlek på en bild så att den passar inom bredd och höjd, utan att beskära. Biblioteket gör ditt jobb enkelt genom att bibehålla bildens bildförhållande. Bredden och höjden anger en maximal begränsningsram för bilden.

Storleksbild via 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)
}

Rotera och rotera dina bilder automatiskt

Det fria imaginära biblioteket har tillhandahållit funktionalitet för att enkelt rotera dina bilder. Den har också inkluderat en mycket användbar funktion för att automatiskt rotera bilder i Go-applikationer. Den roterar automatiskt bilden utan ytterligare bildtransformationer baserat på EXIF-orienteringsmetadata. Metoden AutoRotate producerar en ny bild med samma storlek och format som inmatningsbilden.

Auto-Rotate Bild från 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{}
		}
	}
 Svenska