1. Produkty
  2.   Obraz
  3.   GO
  4.   Imaging
 
  

Biblioteka Open Source Go do tworzenia i manipulacji obrazami

Zaawansowany interfejs API Go, który obsługuje zmianę rozmiaru, przycinanie i obracanie obrazów JPEG, PNG, GIF, TIFF i BMP. Możesz także dostosować jasność obrazu, kontrast, korekcję gamma obrazów.

Open source Go Imaging API to bardzo potężny pakiet, który zapewnia pełną funkcjonalność związaną z tworzeniem i manipulacją obrazami. Biblioteka jest bardzo elastyczna i pozwala programistom łatwo tworzyć nowe obrazy i modyfikować istniejące za pomocą zaledwie kilku linijek kodu.

Imaging to czysta biblioteka Go, która jest niewielkich rozmiarów i wydajna pod względem funkcjonalności. Zawiera obsługę kilku ważnych formatów plików graficznych, takich jak JPEG, PNG, GIF, TIFF, BMP i wielu innych. Biblioteka zawiera również kilka filtrów resamplingu do zmiany rozmiaru obrazu. Niektóre ważne filtry to NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box i tak dalej. Biblioteka ułatwiła również programistom tworzenie niestandardowych filtrów.

Bezpłatna biblioteka Imaging zawiera kilka ważnych funkcji związanych z przetwarzaniem obrazu, takich jak zmiana rozmiaru obrazów, obracanie obrazu, kadrowanie obrazu, regulacja jasności obrazu, regulacja kontrastu obrazu, korekcja gamma obrazów, zmiana nasycenia obrazu, klonowanie obrazów, obraz rozmycie, kodowanie i dekodowanie obrazów, nakładanie obrazu, dodawanie ostrości, tworzenie miniatur i wiele innych funkcji.

Previous Next

Pierwsze kroki z obrazowaniem

Najłatwiejszy i zalecany sposób instalacji Imagingis przez GitHub.

Zainstaluj obrazowanie przez GitHub

go get -u github.com/disintegration/imaging

Wygeneruj nowy obraz za pomocą Go API

Biblioteka obrazowania typu open source zawiera obsługę generowania nowych obrazów we własnej aplikacji za pomocą poleceń Go. Tworzenie nowego obrazu wymaga szerokości obrazu, wysokości, koloru tła obrazu i formatu wyjściowego obrazu. Możesz także łatwo modyfikować utworzony obraz i wykonywać różne operacje, takie jak odwracanie, ustawianie krycia, mieszanie, rozmycie i wiele innych.

Wygeneruj nowy obraz za pomocą 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),
	}
}

Konwersja obrazu do innych formatów przez Go

Twórcy oprogramowania mogą łatwo konwertować swoje obrazy do innych obsługiwanych formatów plików we własnych aplikacjach GO, korzystając z bezpłatnej biblioteki obrazów. Wystarczy podać nazwę obrazu i format obrazu wyjściowego. Korzystając z funkcji Zapisz, możesz łatwo eksportować obrazy do kilku innych obsługiwanych formatów plików graficznych, takich jak PNG, BMP, GIF, JPEG, TIFF i innych.

Zmiana rozmiaru i przycinanie obrazów

Darmowy interfejs API obrazowania zawiera funkcję zmiany rozmiaru obrazów zgodnie z potrzebami za pomocą poleceń Go. Najpierw musisz otworzyć obraz i podać wysokość oraz szerokość obrazu, aby zmienić jego rozmiar. Inną opcją jest to, że możesz zmienić rozmiar obrazu, podając szerokość, zachowując proporcje. Biblioteka umożliwia również przycinanie oryginalnego obrazu, zapewniając niestandardową szerokość, wysokość i użycie centralnej kotwicy.

Crop & Resize Image przez 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)
}

Odwracanie, obracanie, rozmycie i klonowanie obrazów

Biblioteka Imaging zawiera kilka ważnych funkcji do manipulacji obrazami, takich jak odwracanie obrazu, obracanie obrazu, rozmycie i klonowanie. Aby wykonać kopię istniejącego obrazu, wystarczy wywołać funkcję Clone i podać istniejący obraz. Biblioteka obsługuje również obracanie i odwracanie obrazu za pomocą zaledwie kilku linijek kodu. Możesz łatwo obrócić obraz o podany kąt w kierunku przeciwnym do ruchu wskazówek zegara. Parametr kąta to kąt obrotu w stopniach.

Obrazy klonu przez 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
}
 Polski