PIL è la libreria di imaging Python che fornisce all'interprete Python funzionalità di modifica delle immagini. È stato sviluppato da Fredrik Lundh e molti altri contributori. Pillow è il fork PIL amichevole e una libreria facile da usare sviluppata da Alex Clark e altri contributori. Lavoreremo con Pillow.
matematica rotonda java
Installazione:
- Linux: Sul terminale Linux digitare quanto segue:
pip install PillowInstallazione pip tramite terminale:sudo apt-get update
sudo apt-get install python-pip - Finestre: Scaricamento il pacchetto di cuscini appropriato in base alla tua versione Python. Assicurati di scaricare in base alla versione Python che hai.
Lavoreremo qui con il modulo Immagine che fornisce una classe con lo stesso nome e fornisce molte funzioni per lavorare sulle nostre immagini. Per importare il modulo Immagine, il nostro codice dovrebbe iniziare con la seguente riga:
qual è il file system di linux
from PIL import ImageOperazioni con le immagini:
- Apri un'immagine particolare da un percorso: Python
#img = Image.open(path) # On successful execution of this statement # an object of Image type is returned and stored in img variable) try: img = Image.open(path) except IOError: pass # Use the above statement within try block as it can # raise an IOError if file cannot be found # or image cannot be opened.
- Recupera la dimensione dell'immagine : Le istanze della classe Image create hanno molti attributi, uno dei suoi attributi utili è la dimensione. Python
Alcuni altri attributi sono: Image.width Image.height Image.format Image.info ecc.from PIL import Image filename = 'image.webp' with Image.open(filename) as image: width height = image.size #Image.size gives a 2-tuple and the width height can be obtained
- Salva modifiche nell'immagine: Per salvare eventuali modifiche apportate al file immagine dobbiamo fornire il percorso e il formato dell'immagine. Python
img.save(path format) # format is optional if no format is specified #it is determined from the filename extension
- Rotazione di un'immagine: La rotazione dell'immagine richiede l'angolo come parametro per ruotare l'immagine. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #Angle given img = img.rotate(180) #Saved in the same relative location img.save('rotated_picture.webp') except IOError: pass if __name__ == '__main__': main()
Nota: è disponibile un flag di espansione opzionale come uno degli argomenti del metodo di rotazione che, se impostato su true, espande l'immagine di output per renderla sufficientemente grande da contenere l'immagine completamente ruotata. Come visto nello snippet di codice sopra, ho utilizzato un percorso relativo in cui la mia immagine si trova nella stessa directory del mio file di codice Python, è possibile utilizzare anche un percorso assoluto.
- Ritaglio di un'immagine: Image.crop(box) prende una coordinata di pixel di 4 tuple (sinistra in alto a destra in basso) e restituisce una regione rettangolare dall'immagine utilizzata. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') width height = img.size area = (0 0 width/2 height/2) img = img.crop(area) #Saved in the same relative location img.save('cropped_picture.webp') except IOError: pass if __name__ == '__main__': main()
- Ridimensionare un'immagine: Image.resize(size): qui la dimensione viene fornita come larghezza e altezza di 2 tuple. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') width height = img.size img = img.resize((width/2 height/2)) #Saved in the same relative location img.save('resized_picture.webp') except IOError: pass if __name__ == '__main__': main()
- Incollare un'immagine su un'altra immagine: Il secondo argomento può essere una tupla da 2 (specificando l'angolo in alto a sinistra) o una tupla da 4 (sinistra in alto a destra in basso) - in questo caso la dimensione dell'immagine incollata deve corrispondere alla dimensione di questa regione del riquadro o None che equivale a (0 0). Python
from PIL import Image def main(): try: #Relative Path #Image on which we want to paste img = Image.open('picture.webp') #Relative Path #Image which we want to paste img2 = Image.open('picture2.webp') img.paste(img2 (50 50)) #Saved in the same relative location img.save('pasted_picture.webp') except IOError: pass if __name__ == '__main__': main() ##An additional argument for an optional image mask image is also available.
- Ottenere un istogramma di un'immagine: Ciò restituirà un istogramma dell'immagine come un elenco di pixel che conta uno per ogni pixel nell'immagine. (Un istogramma di un'immagine è una rappresentazione grafica della distribuzione tonale in un'immagine digitale. Contiene tutti i valori di luminosità contenuti in un'immagine. Traccia il numero di pixel per ciascun valore di luminosità. Aiuta a definire le impostazioni di esposizione.) da PIL import Image Python
def main(): try: #Relative Path img = Image.open('picture.webp') #Getting histogram of image print img.histogram() except IOError: pass if __name__ == '__main__': main()
- Trasporre un'immagine: Questa caratteristica ci dà l'immagine speculare di un'immagine Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #transposing image transposed_img = img.transpose(Image.FLIP_LEFT_RIGHT) #Save transposed image transposed_img.save('transposed.webp') except IOError: pass if __name__ == '__main__': main()
- Dividere un'immagine in singole bande: La divisione di un'immagine in modalità RGB crea tre nuove immagini, ciascuna contenente una copia delle singole bande originali. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #splitting the image print img.split() except IOError: pass if __name__ == '__main__': main()
- tobitmap: Conversione di un'immagine in una bitmap X11 (un formato di immagine binaria di testo semplice). Restituisce una stringa contenente una bitmap X11 che può essere utilizzata solo per immagini in modalità 1, ovvero immagini in bianco e nero da 1 bit pixel. dall'immagine di importazione PIL Python
def main(): try: #Relative Path img = Image.open('picture.webp') print img.mode #converting image to bitmap print img.tobitmap() print type(img.tobitmap()) except IOError: pass if __name__ == '__main__': main()
- Creazione di una miniatura: Questo metodo crea una miniatura dell'immagine aperta. Non restituisce un nuovo oggetto immagine, apporta modifiche sul posto all'oggetto immagine attualmente aperto stesso. Se non desideri modificare l'oggetto immagine originale, crea una copia e quindi applica questo metodo. Questo metodo valuta anche l'opportunità di mantenere le proporzioni dell'immagine in base alla dimensione passata. dall'immagine di importazione PIL Python
def main(): try: #Relative Path img = Image.open('picture.webp') #In-place modification img.thumbnail((200 200)) img.save('thumb.webp') except IOError: pass if __name__ == '__main__': main()