1. Produktai
  2.   Vaizdas
  3.   GO
  4.   Imaging
 
  

Atvirojo kodo „Go“ biblioteka, skirta vaizdų kūrimui ir manipuliavimui

Galinga „Go“ API, palaikanti JPEG, PNG, GIF, TIFF ir BMP vaizdų dydžio keitimą, apkarpymą ir pasukimą. Taip pat galite reguliuoti vaizdo ryškumą, kontrastą, vaizdų gama korekciją.

Atvirojo kodo „Go Imaging“ API yra labai galingas paketas, teikiantis visas funkcijas, susijusias su vaizdo kūrimu ir manipuliavimu. Biblioteka yra labai lanksti ir leidžia kūrėjams lengvai kurti naujus vaizdus ir modifikuoti esamus naudojant tik kelias kodo eilutes.

Vaizdo apdorojimas yra gryna Go biblioteka, kuri yra mažo dydžio ir efektyvi. Jame buvo palaikomi keli svarbūs vaizdo failų formatai, tokie kaip JPEG, PNG, GIF, TIFF, BMP ir daugelis kitų. Bibliotekoje taip pat yra keletas atrankos filtrų, skirtų vaizdo dydžiui keisti. Kai kurie svarbūs filtrai yra NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box ir pan. Biblioteka taip pat padėjo kūrėjams kurti pasirinktinius filtrus.

Nemokamoje vaizdų bibliotekoje yra keletas svarbių funkcijų, susijusių su vaizdo apdorojimu, pvz., vaizdų dydžio keitimas, vaizdo pasukimas, vaizdo apkarpymas, vaizdo ryškumo reguliavimas, vaizdo kontrasto reguliavimas, vaizdų gama korekcija, vaizdo sodrumo keitimas, vaizdų klonavimas, vaizdas. suliekite, užkoduokite ir iškoduokite vaizdus, uždenkite vaizdą, padidinkite ryškumą, sukurkite miniatiūras ir daug kitų funkcijų.

Previous Next

Darbo su vaizdavimu pradžia

Lengviausias ir rekomenduojamas būdas įdiegti „Imagingis“ per „GitHub“.

Įdiekite „Image“ per „GitHub“.

go get -u github.com/disintegration/imaging

Sukurkite naują vaizdą naudodami „Go API“.

Atvirojo kodo vaizdų biblioteka palaiko naujų vaizdų generavimą savo programoje naudojant Go komandas. Naujam vaizdui sukurti reikalingas vaizdo plotis, aukštis, vaizdo fono spalva ir vaizdo išvesties formatas. Taip pat galite lengvai keisti sukurtą vaizdą ir atlikti įvairias operacijas, pvz., apversti, nustatyti neskaidrumą, sulieti, sulieti ir daug daugiau.

Sukurkite naują vaizdą naudodami „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),
	}
}

Vaizdo konvertavimas į kitus formatus naudojant „Go“.

Programinės įrangos kūrėjai gali lengvai konvertuoti savo vaizdus į kitus palaikomus failų formatus savo GO Apps naudodami nemokamą vaizdų biblioteką. Jums tereikia nurodyti vaizdo pavadinimą ir išvesties vaizdo formatą. Naudodami funkciją Išsaugoti galite lengvai eksportuoti vaizdus į keletą kitų palaikomų vaizdo failų formatų, tokių kaip PNG, BMP, GIF, JPEG, TIFF ir kt.

Vaizdų dydžio keitimas ir apkarpymas

Į „Free Imaging“ API įtraukta funkcija, leidžianti keisti vaizdų dydį pagal jūsų poreikius naudojant „Go“ komandas. Pirmiausia turite atidaryti vaizdą ir nurodyti jo aukštį bei plotį, kad pakeistumėte jo dydį. Kita galimybė yra ta, kad galite pakeisti vaizdo dydį, tiesiog nurodydami plotį, išsaugodami formato santykį. Biblioteka taip pat leidžia apkarpyti pradinį vaizdą, nurodant pasirinktinį plotį, aukštį ir naudojant centrinį inkarą.

Apkarpykite vaizdą ir pakeiskite jo dydį naudodami „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)
}

Apverskite, pasukite, suliekite ir klonuokite vaizdus

Vaizdų bibliotekoje yra keletas svarbių vaizdo manipuliavimo funkcijų, tokių kaip vaizdo apvertimas, vaizdo pasukimas, suliejimas ir klonavimas. Norėdami sukurti esamo vaizdo kopiją, tereikia iškviesti funkciją Clone ir pateikti esamą vaizdą. Biblioteka taip pat palaiko vaizdo pasukimą ir apvertimą naudojant tik kelias kodo eilutes. Galite lengvai pasukti vaizdą nurodytu kampu prieš laikrodžio rodyklę. Kampo parametras yra sukimosi kampas laipsniais.

Klonuoti vaizdą per 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
}
 Lietuvių