1. Termékek
  2.   Kép
  3.   GO
  4.   Imaging
 
  

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.

Previous Next

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
}
 Magyar