1. Produtos
  2.   Imagem
  3.   GO
  4.   Imaging
 
  

Biblioteca Go de código aberto para criação e manipulação de imagens

Poderosa Go API que suporta redimensionar, cortar e girar imagens JPEG, PNG, GIF, TIFF e BMP. Você também pode ajustar o brilho da imagem, contraste, correção de gama das imagens.

A API Go Imaging de código aberto é um pacote muito poderoso que fornece funcionalidade completa relacionada à criação e manipulação de imagens. A biblioteca é muito flexível e permite que os desenvolvedores criem facilmente novas imagens e modifiquem as existentes com apenas algumas linhas de código.

A Imaging é uma biblioteca Go pura, pequena em tamanho e eficiente em funcionalidade. Ele inclui suporte para vários formatos de arquivo de imagem importantes, como JPEG, PNG, GIF, TIFF, BMP e muitos mais. A biblioteca também incluiu vários filtros de reamostragem para redimensionamento de imagens. Alguns filtros importantes são NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box e assim por diante. A biblioteca também facilitou aos desenvolvedores a criação de filtros personalizados.

A biblioteca de imagens gratuita inclui vários recursos importantes relacionados ao processamento de imagens, como redimensionamento de imagens, rotação de imagens, corte de imagens, ajuste de brilho de imagens, ajustes de contraste de imagens, correção de gama das imagens, alteração da saturação da imagem, clone de imagens, desfoque, codifique e decodifique imagens, sobreponha imagens, adicione nitidez, crie miniaturas e muitos outros recursos.

Previous Next

Introdução à imagem

A maneira mais fácil e recomendada de instalar o Imaging é via GitHub.

Instalar imagens via GitHub

go get -u github.com/disintegration/imaging

Gerar nova imagem via Go API

A biblioteca de imagens de código aberto inclui suporte para gerar novas imagens dentro de seu próprio aplicativo usando comandos Go. A nova criação de imagem requer largura, altura, cor de fundo da imagem e formato de saída da imagem. Você também pode modificar facilmente a imagem criada e realizar diferentes operações, como virar, definir opacidade, mesclar, desfocar e muito mais.

Gerar nova imagem via 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),
	}
}

Conversão de imagem para outros formatos via Go

Os desenvolvedores de software podem facilmente converter suas imagens para outros formatos de arquivo suportados dentro de seus próprios GO Apps usando uma biblioteca de imagens gratuita. Você só precisa fornecer o nome da imagem e o formato da imagem de saída. Usando a função Salvar, você pode exportar facilmente as imagens para vários outros formatos de arquivo de imagem suportados, como PNG, BMP, GIF, JPEG, TIFF e muito mais.

Redimensionar e cortar imagens

A API de imagens gratuitas incluiu funcionalidade para redimensionar imagens de acordo com suas necessidades usando comandos Go. Primeiro, você precisa abrir uma imagem e fornecer a altura e a largura da imagem para redimensioná-la. Outra opção é que você pode redimensionar a imagem apenas fornecendo largura preservando a proporção. A biblioteca também permite cortar a imagem original, fornecendo largura e altura personalizadas e usando a âncora central.

Cortar e a imagem via 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)
}

Virar, girar, desfocar e clonar imagens

A biblioteca de imagens inclui vários recursos importantes para manipulação de imagens, como inversão de imagens, rotação de imagens, desfoque e clonagem. Para fazer uma cópia de uma imagem existente basta chamar a função Clone e fornecer a imagem existente. A biblioteca também suporta girar e inverter sua imagem com apenas algumas linhas de código. Você pode facilmente girar uma imagem pelo ângulo dado no sentido anti-horário. O parâmetro de ângulo é o ângulo de rotação em graus.

Imagem Clone via 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
}
 Português