Ritaglia immagini in Python

Il ritaglio delle immagini è una funzionalità essenziale nelle applicazioni di modifica delle immagini e di progettazione grafica. Ti consente di ridimensionare le immagini e ritagliarne i bordi. Durante l’elaborazione delle immagini o la gestione della modifica delle immagini nelle applicazioni Python, gli sviluppatori spesso richiedono un meccanismo di ritaglio delle immagini semplice. Quindi, in questo post del blog impareremo come ritagliare le immagini senza problemi in un’applicazione Python.

Libreria Python per ritagliare immagini

Per il ritaglio delle immagini, utilizzeremo Aspose.Imaging for Python. È una libreria versatile che fornisce una gamma di funzionalità per lavorare con le immagini. In particolare, ti consente di eseguire con facilità attività di modifica delle immagini di base e avanzate.

Puoi scaricare la libreria o installarla nelle tue applicazioni Python da PyPI.

> pip install aspose-imaging-python-net 

Ritagliare un’immagine in Python

Esistono due modi per ritagliare un’immagine utilizzando Aspose.Imaging for Python: utilizzando i valori di spostamento e utilizzando un rettangolo. Nel metodo dei valori di spostamento, specifichiamo i valori sinistro, destro, superiore e inferiore per lo spostamento dell’immagine. Nel secondo metodo, invece, utilizziamo un rettangolo per definire l’area di ritaglio.

Esaminiamo quindi ciascuno dei metodi di ritaglio delle immagini sopra indicati con l’aiuto di frammenti di codice Python.

Ritaglia un’immagine con valori di spostamento in Python

I passaggi seguenti dimostrano come ritagliare un’immagine utilizzando i valori di spostamento in Python.

  • Innanzitutto, utilizza il metodo Image.load() per caricare l’immagine come RasterImage.
  • Quindi, memorizza nella cache l’immagine per prestazioni migliori.
  • Specificare i valori di spostamento a sinistra, a destra, in alto e in basso.
  • Passa i valori di spostamento al metodo RasterImage.crop() e ritaglia l’immagine.
  • Infine, salva l’immagine ritagliata utilizzando il metodo RasterImage.save().

Il seguente frammento di codice mostra come ritagliare un’immagine in 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

# Carica un'immagine esistente in un'istanza della classe RasterImage
with aspycore.as_of(Image.load(os.path.join(data_dir, "template.jpg")), RasterImage) as raster_image:
	# Prima di ritagliare, l'immagine dovrebbe essere memorizzata nella cache per prestazioni migliori
	if not raster_image.is_cached:
		raster_image.cache_data()

	# Definire i valori di spostamento per tutti e quattro i lati
	left_shift = 10
	right_shift = 10
	top_shift = 10
	bottom_shift = 10
  
	# In base ai valori di spostamento, applica il ritaglio sull'immagine
	raster_image.crop(left_shift, right_shift, top_shift, bottom_shift)
  
  	# Salva l'immagine ritagliata
	raster_image.save(os.path.join(data_dir, "result.jpg"))

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

Di seguito sono riportati gli screenshot dell’immagine di input (prima) e della sua versione ritagliata (seconda).

ritagliare l'immagine in Python
ritaglio di immagini in Python

Ritaglio dell’immagine con un rettangolo

In questo metodo, definiamo un rettangolo per ritagliare un’area particolare nell’immagine caricata. L’immagine risultante contiene la parte dell’immagine che si trova all’interno di quel rettangolo. Di seguito sono riportati i passaggi per ritagliare un’immagine utilizzando un rettangolo.

Il seguente frammento di codice mostra il ritaglio dell’immagine con un rettangolo in 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

# Carica un'immagine esistente in un'istanza della classe 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()

	# Crea un'istanza della classe Rectangle con la dimensione desiderata
	rectangle = Rectangle(20, 20, 20, 20)
  
  	# Ritaglia l'immagine
	raster_image.crop(rectangle)
  
  	# Salva immagine
	raster_image.save(os.path.join(data_dir, "result.jpg"))

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

Ottieni la libreria di ritaglio di immagini Python gratuita

Puoi ottenere una licenza temporanea gratuita e ritagliare le immagini senza limitazioni di valutazione.

Conclusione

Aspose.Imaging for Python fornisce una soluzione solida per il ritaglio e la manipolazione delle immagini. Questo post del blog ti ha fornito un paio di metodi di ritaglio delle immagini che puoi facilmente integrare nelle tue applicazioni Python. Migliora le tue capacità di elaborazione delle immagini con questa potente API di modifica delle immagini Python. Esplora le sue straordinarie funzionalità visitando la documentazione e condividi le tue domande con noi tramite il nostro forum.

Guarda anche