logo

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' src='//techcodeview.com/img/python/71/working-with-images-in-python.webp' title=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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-1.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-2.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-3.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-4.webp' title=


  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-5.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-6.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-7.webp' title= kép konvertálása bitmao-ba pythonban' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-8.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-9.webp' title=
Kvíz létrehozása