Avoimen lähdekoodin Go Library kuvien luomista ja käsittelyä varten
Tehokas Go-sovellusliittymä, joka tukee kokoa, rajaa ja kierrä JPEG-, PNG-, GIF-, TIFF- ja BMP-kuvia. Voit myös säätää kuvan kirkkautta, kontrastia ja kuvien gammakorjausta.
Avoimen lähdekoodin Go Imaging API on erittäin tehokas paketti, joka tarjoaa täydelliset toiminnot, jotka liittyvät kuvien luomiseen ja käsittelyyn. Kirjasto on erittäin joustava, ja sen avulla kehittäjät voivat helposti luoda uusia kuvia ja muokata olemassa olevia kuvia vain parilla koodirivillä.
Imaging on puhdas Go-kirjasto, joka on kooltaan pieni ja toiminnaltaan tehokas. Se on tukenut useita tärkeitä kuvatiedostomuotoja, kuten JPEG, PNG, GIF, TIFF, BMP ja monia muita. Kirjastossa on myös useita uudelleennäytteenottosuodattimia kuvan koon muuttamista varten. Joitakin tärkeitä suodattimia ovat NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box ja niin edelleen. Kirjasto on myös auttanut kehittäjiä luomaan mukautettuja suodattimia.
Ilmainen Imaging-kirjasto sisältää useita tärkeitä kuvankäsittelyyn liittyviä ominaisuuksia, kuten kuvien koon muuttaminen, kuvan kierto, kuvan rajaus, kuvan kirkkauden säätäminen, kuvan kontrastin säädöt, kuvien gammakorjaus, kuvan kylläisyyden muuttaminen, kuvien kloonaaminen, kuva sumentaa, koodaa ja purkaa kuvia, peittää kuvia, lisätä terävyyttä, luoda pikkukuvia ja monia muita ominaisuuksia.
Kuvankäsittelyn käytön aloittaminen
Helpoin ja suositeltava tapa asentaa Imagingis GitHubin kautta.
Asenna Imaging GitHubin kautta
go get -u github.com/disintegration/imaging
Luo uusi kuva Go API:n kautta
Avoimen lähdekoodin kuvantamiskirjasto on sisältänyt tuen uusien kuvien luomiseen oman sovelluksensa sisällä Go-komentojen avulla. Uuden kuvan luominen edellyttää kuvan leveyttä, korkeutta, taustaväriä ja kuvan tulostusmuotoa. Voit myös helposti muokata luotua kuvaa ja suorittaa erilaisia toimintoja, kuten kääntää, säätää peittävyyttä, sekoittaa, sumentaa ja paljon muuta.
Luo uusi kuva Go API:n kautta
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),
}
}
Kuvan muuntaminen muihin muotoihin Go:n kautta
Ohjelmistokehittäjät voivat helposti muuntaa kuvansa muihin tuettuihin tiedostomuotoihin omissa GO-sovelluksissaan käyttämällä ilmaista kuvakirjastoa. Sinun tarvitsee vain antaa kuvan nimi ja tulosteen kuvamuoto. Tallenna-toiminnon avulla voit helposti viedä kuvat useisiin muihin tuettuihin kuvatiedostomuotoihin, kuten PNG, BMP, GIF, JPEG, TIFF ja muihin.
Muuta ja rajaa kuvia
Free imaging API sisältää toiminnon kuvien koon muuttamiseen tarpeidesi mukaan Go-komentojen avulla. Ensin sinun on avattava kuva ja annettava kuvan korkeus ja leveys muuttaaksesi sen kokoa. Toinen vaihtoehto on, että voit muuttaa kuvan kokoa antamalla vain leveyden säilyttämällä kuvasuhteen. Kirjasto mahdollistaa myös alkuperäisen kuvan rajaamisen antamalla mukautetun leveyden, korkeuden ja käyttämällä keskiankkuria.
Rajaa ja muuta kuvaa Go API:n kautta
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)
}
Käännä, kierrä, sumenna ja kloonaa kuvia
Imaging-kirjastossa on useita tärkeitä kuvankäsittelyominaisuuksia, kuten kuvan kääntäminen, kuvan kääntäminen, sumennus ja kloonaus. Jos haluat tehdä kopion olemassa olevasta kuvasta, sinun tarvitsee vain kutsua Clone-toiminto ja antaa olemassa oleva kuva. Kirjasto tukee myös kuvan kääntämistä ja kääntämistä vain parilla koodirivillä. Voit helposti kiertää kuvaa annetussa kulmassa vastapäivään. Kulmaparametri on kiertokulma asteina.
Kloonaa kuva Go API:n kautta
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
}