Python Pillow - Lavorare con le immagini
Questo capitolo elabora argomenti tra cui come leggere e salvare un'immagine in Pillow.
Leggere un'immagine
Leggere e scrivere immagini utilizzando la libreria dei cuscini è molto semplice, con l'aiuto di PIL.Image module function.
Sintassi
Image.open(fp, mode=’r’)
Dove
fp- Un nome file (stringa), un oggetto pathlib.Path o un oggetto file. L'oggetto file deve implementare i metodi read (), seek () e tell () ed essere aperto in modalità binaria.
mode - È un argomento facoltativo, se fornito, deve essere "r".
Return value - Un oggetto immagine.
Error - Se non è possibile trovare il file o l'immagine non può essere aperta e identificata.
Esempio
Di seguito è riportato un esempio molto semplice, in cui apriremo un'immagine di qualsiasi formato (stiamo usando.jpg), visualizzalo in una finestra e quindi salvalo (posizione predefinita) con un altro formato di file (.png).
from PIL import Image
image = Image.open('beach1.jpg')
image.show()
image.save('beach1.bmp')
image1 = Image.open('beach1.bmp')
image1.show()
Nell'esempio sopra, importiamo il modulo Immagine dalla libreria PIL e quindi chiamiamo il file Image.open()funzione per leggere un'immagine dal disco, che restituisce un tipo di dati oggetto immagine. Determinerà automaticamente il tipo di file esaminando il contenuto del file. Per la lettura, il fileopen() la funzione accetta un file filename(string), a path object o un image(file) oggetto.
Quindi, usando la funzione open (), stiamo effettivamente leggendo l'immagine. Image.open () leggerà l'immagine e otterrà tutte le informazioni rilevanti dall'immagine.
Produzione
Se salvi il programma sopra come Example.py ed esegui, vengono visualizzate le immagini originali (.jpg) e salvate nuovamente (.bmp) utilizzando l'utilità di visualizzazione PNG standard, come segue:
Actual image
Resaved image (.bmp)
Salvataggio di un'immagine
La funzione save () scrive un'immagine su file. Come per la lettura (funzione open ()), la funzione save () accetta un nome file, un oggetto percorso o un oggetto file che è stato aperto per la scrittura.
Sintassi
Image.save(fp, format=None, **params)
Dove,
fp - Un nome file (stringa), un oggetto pathlib.Path o un oggetto file.
format- Sostituzione del formato opzionale. Se omesso, il formato da utilizzare è determinato dall'estensione del nome del file. Se è stato utilizzato un oggetto file invece di un nome file, questo parametro deve essere sempre utilizzato.
options - Parametri extra per lo scrittore di immagini.
Return value - Nessuno
KeyError - Se non è stato possibile determinare il formato di output dal nome del file, utilizzare l'opzione format per risolvere il problema.
IOError - Se non è stato possibile scrivere il file, il file potrebbe essere stato creato e potrebbe contenere dati parziali.
In breve, la sintassi precedente salverà l'immagine con il nome file specificato. Se non viene specificato alcun formato, si basa sull'estensione del nome file corrente. Per fornire istruzioni aggiuntive all'autore, utilizziamo le opzioni delle parole chiave.
image.save('beach1.bmp')
Nell'esempio sopra, salva il file in base all'estensione del file per determinare il tipo di immagine, ad esempio: quanto sopra creerà un file bmp nella nostra directory di lavoro corrente.
Puoi anche specificare esplicitamente il tipo di file come secondo parametro -
image.save('beach1.gif', 'GIF')