Nyílt forráskódú Go Library a képalkotáshoz és -manipulációhoz
Hatékony Go API, amely támogatja a JPEG, PNG, GIF, TIFF és BMP képek átméretezését, körülvágását és elforgatását. Beállíthatja a kép fényerejét, kontrasztját és a képek gamma korrekcióját is.
A nyílt forráskódú Go Imaging API egy nagyon hatékony csomag, amely teljes funkcionalitást biztosít a képalkotáshoz és -manipulációhoz. A könyvtár nagyon rugalmas, és lehetővé teszi a fejlesztők számára, hogy egyszerűen néhány sornyi kóddal új képeket hozzanak létre, és módosítsák a meglévőket.
Az Imaging egy tiszta Go könyvtár, amely kis méretű és hatékonyan működik. Számos fontos képfájl-formátum támogatását tartalmazza, mint például a JPEG, PNG, GIF, TIFF, BMP és még sok más. A könyvtár több mintavételezési szűrőt is tartalmazott a képek átméretezéséhez. Néhány fontos szűrő: NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box és így tovább. A könyvtár lehetővé tette a fejlesztők számára egyéni szűrők létrehozását is.
Az ingyenes Imaging könyvtár számos, a képfeldolgozáshoz kapcsolódó fontos funkciót tartalmaz, mint például a képek átméretezése, képforgatás, képkivágás, kép fényerejének beállítása, képkontraszt beállítása, képek gamma korrekciója, a kép telítettségének megváltoztatása, képek klónozása, kép elhomályosíthatja, kódolhatja és dekódolja a képeket, átfedheti a képeket, növelheti az élességet, létrehozhat miniatűröket és sok más funkciót.
Kezdő lépések a képalkotással
Az Imagingis GitHubon keresztüli telepítésének legegyszerűbb és ajánlott módja.
Telepítse az Imaginget a GitHubon keresztül
go get -u github.com/disintegration/imaging
Új kép létrehozása a Go API-n keresztül
A nyílt forráskódú képtár támogatja az új képek létrehozását saját alkalmazásukon belül a Go parancsok használatával. Az új kép létrehozásához megköveteli a kép szélességét, magasságát, a kép háttérszínét és a kép kimeneti formátumát. Könnyedén módosíthatja a létrehozott képet, és különféle műveleteket hajthat végre, mint például a flip, az átlátszóság beállítása, a keverés, az elmosás és még sok más.
Új kép létrehozása a Go API-n keresztül
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),
}
}
Képkonverzió más formátumokba a Go segítségével
A szoftverfejlesztők egyszerűen konvertálhatják képeiket más támogatott fájlformátumokba saját GO Apps-ben egy ingyenes képtár segítségével. Csak meg kell adnia a kép nevét és a kimeneti képformátumot. A Mentés funkcióval könnyedén exportálhatja a képeket számos más támogatott képfájlformátumba, mint például PNG, BMP, GIF, JPEG, TIFF stb.
Képek átméretezése és kivágása
Az ingyenes képalkotó API olyan funkciókat tartalmaz, amelyek segítségével Go parancsok segítségével átméretezheti a képeket az Ön igényei szerint. Először is meg kell nyitnia egy képet, és meg kell adnia a kép magasságát és szélességét az átméretezéshez. Egy másik lehetőség az, hogy átméretezheti a képet úgy, hogy csak szélességet biztosít a képarány megőrzésével. A könyvtár az eredeti kép kivágását is lehetővé teszi egyéni szélesség és magasság megadásával és a középső horgony használatával.
Crop & Resize Image keresztül 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)
}
Képek megfordítása, elforgatása, elhomályosítása és klónozása
Az Imaging könyvtár számos fontos funkciót tartalmaz a képkezeléshez, például a képfordítást, a képforgatást, az elmosódást és a klónozást. Egy létező kép másolatának elkészítéséhez csak meg kell hívnia a Klón funkciót, és meg kell adnia a meglévő képet. A könyvtár támogatja a kép elforgatását és átfordítását is, mindössze néhány sornyi kóddal. Könnyedén elforgathatja a képet a megadott szögben az óramutató járásával ellentétes irányba. A szög paraméter az elforgatási szög fokban.
Clone Image keresztül Menj 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
}