Treballant amb imatges en Python

Treballant amb imatges en Python

PIL és la biblioteca d'imatges de Python que proporciona a l'intèrpret de Python capacitats d'edició d'imatges. Va ser desenvolupat per Fredrik Lundh i diversos altres col·laboradors. Pillow és la forquilla PIL amigable i una biblioteca fàcil d'utilitzar desenvolupada per Alex Clark i altres col·laboradors. Treballarem amb Pillow.

Instal·lació:

  • Linux: Al terminal de Linux escriviu el següent:
     pip install Pillow  Instal·lació de pip mitjançant terminal:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • Windows: Descarregar el paquet Pillow adequat segons la vostra versió de Python. Assegureu-vos de descarregar-vos segons la versió de Python que teniu.

Treballarem amb el mòdul d'imatge aquí que proporciona una classe del mateix nom i proporciona moltes funcions per treballar amb les nostres imatges. Per importar el mòdul d'imatge, el nostre codi hauria de començar amb la línia següent:

  from PIL import Image  

Operacions amb imatges:

  • Obre una imatge concreta des d'un camí: 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.   
  • Recuperar la mida de la imatge : Les instàncies de la classe Image que es creen tenen molts atributs, un dels seus atributs útils és la mida. 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   
    Alguns altres atributs són: Image.width Image.height Image.format Image.info etc.
  • Desa els canvis a la imatge: Per desar els canvis que hàgiu fet al fitxer d'imatge, hem de donar el camí i el format de la imatge. Python
       img  .  save  (  path     format  )   # format is optional if no format is specified    #it is determined from the filename extension   
  • Girar una imatge: La rotació de la imatge necessita l'angle com a paràmetre per fer girar la imatge. 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  ()   
    girant una imatge en Python Nota: Hi ha un indicador d'expansió opcional disponible com un dels arguments del mètode de rotació que, si s'estableix com a cert, expandeix la imatge de sortida per fer-la prou gran per contenir la imatge girada completa. Com es veu al fragment de codi anterior, he utilitzat un camí relatiu on la meva imatge es troba al mateix directori que el meu fitxer de codi Python, també es pot utilitzar una ruta absoluta.
  • Retallar una imatge: Image.crop(box) pren una coordenada de píxels de 4 tuples (esquerra superior dreta inferior) i retorna una regió rectangular de la imatge utilitzada. 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  ()   
    retallar una imatge en Python
  • Canviar la mida d'una imatge: Image.resize(size) - Aquí la mida es proporciona com a amplada i alçada de 2 tuples. 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  ()   
    canviar la mida d
  • Enganxar una imatge a una altra imatge: El segon argument pot ser una 2-tuple (especificant la cantonada superior esquerra) o una 4-tuple (esquerra superior dreta inferior) - en aquest cas, la mida de la imatge enganxada ha de coincidir amb la mida d'aquesta regió del quadre o Cap, que és equivalent 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.   
    enganxar una imatge a una altra a Python
  • Obtenció d'un histograma d'una imatge: Això retornarà un histograma de la imatge com una llista de recomptes de píxels un per cada píxel de la imatge. (Un histograma d'una imatge és una representació gràfica de la distribució tonal en una imatge digital. Conté quins són tots els valors de lluminositat continguts en una imatge. Representa el nombre de píxels per a cada valor de brillantor. Ajuda a fer la configuració de l'exposició.) des d'Imatge d'importació PIL 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  ()   
    obtenir-un-histograma-de-imatge-en-copia-python


  • Transposició d'una imatge: Aquesta característica ens dóna la imatge mirall d'una imatge 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  ()   
    transposició d
  • Dividiu una imatge en bandes individuals: La divisió d'una imatge en mode RGB crea tres imatges noves cadascuna amb una còpia de les bandes individuals originals. 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  ()   
    dividir una imatge en python
  • mapa de bits: Convertir una imatge a un mapa de bits X11 (format d'imatge binari de text senzill). Retorna una cadena que conté un mapa de bits X11 que només es pot utilitzar per a imatges de mode 1, és a dir, imatges en blanc i negre d'1 bit de píxel. de la imatge d'importació 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  ()   
    convertir la imatge a mapa de bits en Python convertir la imatge a bitmao en Python
  • Creació d'una miniatura: Aquest mètode crea una miniatura de la imatge que s'obre. No retorna un objecte d'imatge nou, sinó que fa modificacions in situ a l'objecte d'imatge obert actualment. Si no voleu canviar l'objecte de la imatge original, creeu una còpia i apliqueu aquest mètode. Aquest mètode també avalua l'adequat per mantenir la relació d'aspecte de la imatge segons la mida passada. de la imatge d'importació 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  ()   
    creant una miniatura de la imatge en Python
Crea un qüestionari