Open Source Go-bibliotek for bildeoppretting og -manipulering
Kraftig Go API som støtter Endre størrelse, beskjær og roter JPEG-, PNG-, GIF-, TIFF- og BMP-bilder. Du kan også justere bildets lysstyrke, kontrast, gammakorreksjon av bildene.
Åpen kildekode Go Imaging API er en veldig kraftig pakke som gir komplett funksjonalitet relatert til bildeoppretting og manipulering. Biblioteket er veldig fleksibelt og lar utviklere enkelt lage nye bilder og endre eksisterende med bare et par linjer med kode.
Imaging er et rent Go-bibliotek som er lite i størrelse og effektivt i funksjonalitet. Den har inkludert støtte for flere viktige bildefilformater som JPEG, PNG, GIF, TIFF, BMP og mange flere. Biblioteket har også inkludert flere resampling-filtre for bildestørrelse. Noen viktige filtre er NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box, og så videre. Biblioteket har også gjort det mulig for utviklere å lage tilpassede filtre.
Det gratis bildebehandlingsbiblioteket har inkludert flere viktige funksjoner knyttet til bildebehandling, som å endre størrelse på bilder, rotasjon av bilder, bildebeskjæring, justering av bildelysstyrke, justeringer av bildekontrast, gammakorreksjon av bildene, endring av metning av bildet, klonebilder, bilde uskarp, kode og dekode bilder, bildeoverlegg, legg til skarphet, lag miniatyrbilder og mange andre funksjoner.
Komme i gang med bildebehandling
Den enkleste og anbefalte måten å installere Imagingis på via GitHub.
Installer bildebehandling via GitHub
go get -u github.com/disintegration/imaging
Generer nytt bilde via Go API
Bildebiblioteket med åpen kildekode har inkludert støtte for å generere nye bilder i deres egen applikasjon ved å bruke Go-kommandoer. Den nye bildeopprettingen krever bildebredde, høyde, bakgrunnsfarge på bildet og utdataformat på bildet. Du kan også enkelt endre det opprettede bildet og utføre forskjellige operasjoner som flip, innstilling av opasitet, blanding, uskarphet og mye mer.
Generer nytt bilde via Go API
func New(width, height int, fillColor color.Color) *image.NRGBA {
if width <= 0 || height <= 0 {
return &image.NRGBA{}
}
c := color.NRGBAModel.Convert(fillColor).(color.NRGBA)
if (c == color.NRGBA{0, 0, 0, 0}) {
return image.NewNRGBA(image.Rect(0, 0, width, height))
}
return &image.NRGBA{
Pix: bytes.Repeat([]byte{c.R, c.G, c.B, c.A}, width*height),
Stride: 4 * width,
Rect: image.Rect(0, 0, width, height),
}
}
Bildekonvertering til andre formater via Go
Programvareutviklere kan enkelt konvertere bildene sine til andre støttede filformater i sine egne GO-apper ved hjelp av et gratis bildebibliotek. Du trenger bare å oppgi bildenavnet og utdataformatet. Ved å bruke Lagre-funksjonen kan du enkelt eksportere bildene til flere andre støttede bildefilformater som PNG, BMP, GIF, JPEG, TIFF og mer.
Endre størrelse og beskjær bilder
Free imaging API har inkludert funksjonalitet for å endre størrelse på bilder i henhold til dine behov ved å bruke Go-kommandoer. Først må du åpne et bilde og angi høyden så vel som bredden på bildet for å endre størrelsen på det. Et annet alternativ er at du kan endre størrelsen på bildet ved å bare gi bredde ved å bevare sideforholdet. Biblioteket tillater også beskjæring av det originale bildet ved å gi tilpasset bredde, høyde og bruke senterankeret.
Beskjær og endre størrelse på bilde via Go API
func cropAndResize(img image.Image, width, height int, anchor Anchor, filter ResampleFilter) *image.NRGBA {
dstW, dstH := width, height
srcBounds := img.Bounds()
srcW := srcBounds.Dx()
srcH := srcBounds.Dy()
srcAspectRatio := float64(srcW) / float64(srcH)
dstAspectRatio := float64(dstW) / float64(dstH)
var tmp *image.NRGBA
if srcAspectRatio < dstAspectRatio {
cropH := float64(srcW) * float64(dstH) / float64(dstW)
tmp = CropAnchor(img, srcW, int(math.Max(1, cropH)+0.5), anchor)
} else {
cropW := float64(srcH) * float64(dstW) / float64(dstH)
tmp = CropAnchor(img, int(math.Max(1, cropW)+0.5), srcH, anchor)
}
return Resize(tmp, dstW, dstH, filter)
}
Vend, roter, uskarp og klon bilder
Bildebiblioteket har inkludert flere viktige funksjoner for bildemanipulering, som bildevending, bilderotasjon, uskarphet og kloning. For å lage en kopi av et eksisterende bilde trenger du bare å ringe Klone-funksjonen og gi det eksisterende bildet. Biblioteket støtter også rotering og vending av bildet ditt med bare et par linjer med kode. Du kan enkelt rotere et bilde med den gitte vinkelen mot klokken. Vinkelparameteren er rotasjonsvinkelen i grader.
Klone bilde via Go API
func Clone(img image.Image) *image.NRGBA {
src := newScanner(img)
dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h))
size := src.w * 4
parallel(0, src.h, func(ys <-chan int) {
for y := range ys {
i := y * dst.Stride
src.scan(0, y, src.w, y+1, dst.Pix[i:i+size])
}
})
return dst
}