Recortar imágenes en Python

El recorte de imágenes es una característica esencial en las aplicaciones de edición de imágenes y diseño de gráficos. Te permite cambiar el tamaño de las imágenes y recortar sus bordes. Al procesar imágenes o editar imágenes en aplicaciones Python, los desarrolladores a menudo requieren un mecanismo de recorte de imágenes sencillo. Entonces, en esta publicación de blog, aprenderemos cómo recortar imágenes sin problemas en una aplicación Python.

Biblioteca Python para recortar imágenes

Para recortar imágenes, usaremos Aspose.Imaging for Python. Es una biblioteca versátil que proporciona una variedad de funciones para trabajar con imágenes. En particular, le permite realizar tareas de edición de imágenes básicas y avanzadas con facilidad.

Puede descargar la biblioteca o instalarla en sus aplicaciones Python desde PyPI.

> pip install aspose-imaging-python-net 

Recortar una imagen en Python

Hay dos formas de recortar una imagen usando Aspose.Imaging for Python: usando valores de desplazamiento y usando un rectángulo. En el método de valores de desplazamiento, especificamos valores izquierda, derecha, superior e inferior para el desplazamiento de la imagen. Por otro lado, usamos un rectángulo para definir el área de recorte en el segundo método.

Entonces, repasemos cada uno de los métodos de recorte de imágenes mencionados anteriormente con la ayuda de fragmentos de código Python.

Recortar una imagen con valores de desplazamiento en Python

Los pasos siguientes demuestran cómo recortar una imagen usando valores de desplazamiento en Python.

  • Primero, use el método Image.load() para cargar la imagen como RasterImage.
  • Luego, almacene en caché la imagen para obtener un mejor rendimiento.
  • Especifique los valores de desplazamiento hacia la izquierda, derecha, arriba y abajo.
  • Pase los valores de desplazamiento al método RasterImage.crop() y recorte la imagen.
  • Finalmente, guarde la imagen recortada usando el método RasterImage.save().

El siguiente fragmento de código muestra cómo recortar una imagen en Python.

import aspose.pycore as aspycore
from aspose.imaging import RasterImage, Image, Rectangle
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder

# Cargue una imagen existente en una instancia de la clase RasterImage
with aspycore.as_of(Image.load(os.path.join(data_dir, "template.jpg")), RasterImage) as raster_image:
	# Antes de recortar, la imagen debe almacenarse en caché para un mejor rendimiento.
	if not raster_image.is_cached:
		raster_image.cache_data()

	# Definir valores de desplazamiento para los cuatro lados
	left_shift = 10
	right_shift = 10
	top_shift = 10
	bottom_shift = 10
  
	# Según los valores de desplazamiento, aplique el recorte en la imagen.
	raster_image.crop(left_shift, right_shift, top_shift, bottom_shift)
  
  	# Guardar imagen recortada
	raster_image.save(os.path.join(data_dir, "result.jpg"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.jpg"))

A continuación se muestran las capturas de pantalla de la imagen de entrada (primera) y su versión recortada (segunda).

recortar imagen en Python
recorte de imágenes en Python

Recorte de imagen con un rectángulo

En este método, definimos un rectángulo para recortar un área particular en la imagen cargada. La imagen resultante contiene la parte de la imagen que se encuentra dentro de ese rectángulo. Los siguientes son los pasos para recortar una imagen usando un rectángulo.

El siguiente fragmento de código muestra el recorte de imágenes con un rectángulo en Python.

import aspose.pycore as aspycore
from aspose.imaging import RasterImage, Image, Rectangle
import os

if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder

# Cargue una imagen existente en una instancia de la clase RasterImage
with aspycore.as_of(Image.load(os.path.join(data_dir, "template.jpg")), RasterImage) as raster_image:
	if not raster_image.is_cached:
		raster_image.cache_data()

	# Cree una instancia de la clase Rectángulo con el tamaño deseado
	rectangle = Rectangle(20, 20, 20, 20)
  
  	# Delimitar imagen
	raster_image.crop(rectangle)
  
  	# Guardar imagen
	raster_image.save(os.path.join(data_dir, "result.jpg"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.jpg"))

Obtenga una biblioteca gratuita de recorte de imágenes de Python

Puede obtener una licencia temporal gratuita y recortar imágenes sin limitaciones de evaluación.

Conclusión

Aspose.Imaging for Python proporciona una solución sólida para recortar y manipular imágenes. Esta publicación de blog le proporcionó un par de métodos de recorte de imágenes que puede integrar fácilmente en sus aplicaciones Python. Mejore sus capacidades de procesamiento de imágenes con esta poderosa API de edición de imágenes de Python. Explore sus increíbles funciones visitando la documentación y comparta sus consultas con nosotros a través de nuestro foro.

Ver también