Képekkel való munka Pythonban

Képekkel való munka Pythonban

A PIL a Python Imaging Library, amely képszerkesztési lehetőségeket biztosít a python interpreter számára. Fredrik Lundh és számos más közreműködő fejlesztette ki. A Pillow egy barátságos PIL villa és egy könnyen használható könyvtár, amelyet Alex Clark és más közreműködők fejlesztettek ki. Párnával fogunk dolgozni.

Telepítés:

  • Linux: Linux terminálon írja be a következőket:
     pip install Pillow  Pip telepítése terminálon keresztül:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • Windows: Letöltés a python verziójának megfelelő párnacsomagot. Ügyeljen arra, hogy a python verziójának megfelelően töltse le.

Itt az Image Module-lal fogunk dolgozni, amely egy azonos nevű osztályt biztosít, és számos funkciót biztosít a képeken való munkához. Az Image modul importálásához a kódunknak a következő sorral kell kezdődnie:

  from PIL import Image  

Műveletek képekkel:

  • Nyisson meg egy adott képet egy útvonalból: 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.   
  • Kép méretének lekérése : Az Image osztály létrejött példányai számos attribútummal rendelkeznek, az egyik hasznos attribútuma a méret. 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   
    Néhány további attribútum: Image.width Image.height Image.format Image.info stb.
  • Módosítások mentése a képen: A képfájlon végzett változtatások mentéséhez meg kell adnunk az elérési utat és a képformátumot. Python
       img  .  save  (  path     format  )   # format is optional if no format is specified    #it is determined from the filename extension   
  • Kép elforgatása: A kép elforgatásához a szög paraméternek kell lennie. 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  ()   
    egy kép elforgatása pythonban Megjegyzés: A forgatás metódus egyik argumentumaként elérhető egy opcionális kiterjesztési jelző, amely ha igaz, akkor kibontja a kimeneti képet, hogy az elég nagy legyen a teljes elforgatott kép megtartásához. Amint a fenti kódrészletben látható, relatív elérési utat használtam, ahol a képem ugyanabban a könyvtárban található, mint a python kódfájlom, és abszolút elérési út is használható.
  • Kép kivágása: Az Image.crop(box) egy 4 sorból álló (bal felső jobb alsó) pixelkoordinátát vesz fel, és egy téglalap alakú területet ad vissza a használt képből. 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  ()   
    kép kivágása pythonban
  • Kép átméretezése: Image.resize(size) – Itt a méret kétsoros szélességben és magasságban van megadva. 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  ()   
    egy kép átméretezése pythonban
  • Kép beillesztése másik képre: A második argumentum lehet egy 2 sor (a bal felső sarok megadása) vagy egy 4 sor (bal felső jobb alsó) - ebben az esetben a beillesztett kép méretének meg kell egyeznie a mezőterület méretével, vagy a None (0 0) értékkel egyenértékű. 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.   
    kép beillesztése másikra Pythonban
  • Kép hisztogramjának lekérése: Ez visszaadja a kép hisztogramját, mivel a képpontok listája a kép minden egyes pixeléhez egyet számol. (A kép hisztogramja a digitális kép tónuseloszlásának grafikus ábrázolása. A képen található összes fényerő értékét tartalmazza. Minden fényerőértékhez kirajzolja a pixelek számát. Segít az expozíciós beállítások elvégzésében.) innen: 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  ()   
    a kép hisztogramjának beszerzése a Python-másolatban


  • Kép transzponálása: Ez a funkció egy kép tükörképét adja nekünk 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  ()   
    kép transzponálása pythonban
  • Kép felosztása különálló sávokra: Egy kép RGB módban történő felosztása három új képet hoz létre, amelyek mindegyike az eredeti egyedi sávok másolatát tartalmazza. 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  ()   
    kép felosztása pythonban
  • bittérkép: Kép konvertálása X11 bittérképpé (egy egyszerű szöveges bináris képformátum). Egy X11 bittérképet tartalmazó sztringet ad vissza, amely csak 1-es módú képekhez, azaz 1 bites pixeles fekete-fehér képekhez használható. a PIL import képből 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  ()   
    kép konvertálása bitmap formátumba pythonban kép konvertálása bitmao-ba pythonban
  • Miniatűr létrehozása: Ez a módszer létrehozza a megnyitott kép miniatűrjét. Nem ad vissza új képobjektumot, hanem a helyben módosítja magát az éppen megnyitott képobjektumot. Ha nem szeretné megváltoztatni az eredeti képobjektumot, hozzon létre egy másolatot, majd alkalmazza ezt a módszert. Ez a módszer azt is kiértékeli, hogy az átadott méretnek megfelelően a kép oldalaránya megfelelő-e. a PIL import képből 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  ()   
    a kép miniatűrjének létrehozása pythonban
Kvíz létrehozása