Lavorare con le immagini in Python

Lavorare con le immagini in Python

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.

Installazione:

  • Linux: Sul terminale Linux digitare quanto segue:
     pip install Pillow  Installazione 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:

  from PIL import Image  

Operazioni 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
       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   
    Alcuni altri attributi sono: Image.width Image.height Image.format Image.info ecc.
  • 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  ()   
    ruotare un 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  ()   
    ritagliare un
  • 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  ()   
    ridimensionare un
  • 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.   
    incollare un
  • 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  ()   
    ottenere un istogramma dell


  • 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  ()   
    trasporre un
  • 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  ()   
    dividere un
  • 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  ()   
    convertire l convertire l
  • 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  ()   
    creazione di una miniatura dell
Crea quiz