1. Productos
  2.   Imagen
  3.   GO
  4.   Imaging
 
  

Biblioteca Go de código abierto para la creación y manipulación de imágenes

Potente Go API que admite Redimensionar, Recortar y Rotar imágenes JPEG, PNG, GIF, TIFF y BMP. También puede ajustar el brillo de la imagen, el contraste, la corrección gamma de las imágenes.

La API Go Imaging de código abierto es un paquete muy potente que proporciona una funcionalidad completa relacionada con la creación y manipulación de imágenes. La biblioteca es muy flexible y permite a los desarrolladores crear fácilmente nuevas imágenes y modificar las existentes con solo un par de líneas de código.

Imaging es una biblioteca Go pura que es pequeña en tamaño y eficiente en funcionalidad. Ha incluido soporte para varios formatos de archivo de imagen importantes como JPEG, PNG, GIF, TIFF, BMP y muchos más. La biblioteca también ha incluido varios filtros de remuestreo para cambiar el tamaño de la imagen. Algunos filtros importantes son NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box, etc. La biblioteca también ha facilitado a los desarrolladores la creación de filtros personalizados.

La biblioteca de imágenes gratuita ha incluido varias características importantes relacionadas con el procesamiento de imágenes, como el cambio de tamaño de las imágenes, la rotación de imágenes, el recorte de imágenes, el ajuste del brillo de la imagen, los ajustes de contraste de la imagen, la corrección de gamma de las imágenes, el cambio de la saturación de la imagen, la clonación de imágenes, la imagen. difuminar, codificar y decodificar imágenes, superponer imágenes, agregar nitidez, crear miniaturas y muchas otras funciones.

Previous Next

Primeros pasos con la imagenología

La forma más fácil y recomendada de instalar Imagingis a través de GitHub.

Instalar imágenes a través de GitHub

go get -u github.com/disintegration/imaging

Generar nueva imagen a través de Go API

La biblioteca de imágenes de código abierto ha incluido soporte para generar nuevas imágenes dentro de su propia aplicación usando los comandos Go. La creación de una nueva imagen requiere el ancho, la altura, el color de fondo de la imagen y el formato de salida de la imagen. También puede modificar fácilmente la imagen creada y realizar diferentes operaciones como voltear, configurar la opacidad, mezclar, desenfocar y mucho más.

Generar nueva imagen a través de 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),
	}
}

Conversión de imágenes a otros formatos a través de Go

Los desarrolladores de software pueden convertir fácilmente sus imágenes a otros formatos de archivo compatibles dentro de sus propias aplicaciones GO utilizando una biblioteca de imágenes gratuita. Solo necesita proporcionar el nombre de la imagen y el formato de la imagen de salida. Con la función Guardar, puede exportar fácilmente las imágenes a otros formatos de archivo de imagen compatibles, como PNG, BMP, GIF, JPEG, TIFF y más.

Redimensionar y recortar imágenes

La API de imágenes gratuitas ha incluido una funcionalidad para cambiar el tamaño de las imágenes según sus necesidades mediante los comandos Go. Primero, debe abrir una imagen y proporcionar la altura y el ancho de la imagen para cambiar su tamaño. Otra opción es que puede cambiar el tamaño de la imagen simplemente proporcionando ancho conservando la relación de aspecto. La biblioteca también permite recortar la imagen original proporcionando ancho y alto personalizados y usando el ancla central.

Recupera la imagen vía 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)
}

Voltear, rotar, desenfocar y clonar imágenes

La biblioteca de imágenes ha incluido varias funciones importantes para la manipulación de imágenes, como volteo de imágenes, rotación de imágenes, desenfoque y clonación. Para hacer una copia de una imagen existente, solo necesita llamar a la función Clonar y proporcionar la imagen existente. La biblioteca también admite rotar y voltear su imagen con solo un par de líneas de código. Puede rotar fácilmente una imagen en el ángulo indicado en el sentido contrario a las agujas del reloj. El parámetro de ángulo es el ángulo de rotación en grados.

Imagen de clon vía 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
}
 Español