logo

Kuvien käsittely Pythonissa

PIL on Python Imaging Library, joka tarjoaa python-tulkin kuvanmuokkausominaisuudet. Sen ovat kehittäneet Fredrik Lundh ja useat muut avustajat. Pillow on Alex Clarkin ja muiden avustajien kehittämä ystävällinen PIL-haarukka ja helppokäyttöinen kirjasto. Työskentelemme Pillowin kanssa.

verkkoarkkitehtuuri

Asennus:

  • Linux: Kirjoita linux-päätelaitteessa seuraava:
    pip install Pillow
    Pipin asennus terminaalin kautta:
    sudo apt-get update  
    sudo apt-get install python-pip
  • Windows: Lataa sopiva tyynypaketti python-versiosi mukaan. Varmista, että lataat python-versiosi mukaan.

Työskentelemme tässä Image Module -moduulin kanssa, joka tarjoaa samannimisen luokan ja tarjoaa paljon toimintoja kuviemme käsittelyyn. Kuvamoduulin tuomiseksi koodimme tulee alkaa seuraavalla rivillä:



 from PIL import Image

Toiminnot kuvien kanssa:

  • Avaa tietty kuva polusta: 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. 
  • Hae kuvan koko : Luoduilla Image-luokan esiintymillä on monia attribuutteja, yksi sen hyödyllisistä määritteistä on koko. 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 
    Joitakin muita määritteitä ovat: Image.width Image.height Image.format Image.info jne.
  • Tallenna muutokset kuvaan: Tallentaaksemme kaikki kuvatiedostoon tekemäsi muutokset meidän on annettava polku ja kuvamuoto. Python
    img.save(path format) # format is optional if no format is specified  #it is determined from the filename extension 
  • Kuvan kääntäminen: Kuvan kierto vaatii kulman parametrina kuvan kääntämiseksi. 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() 
    kuvan kääntäminen pythonissa' src='//techcodeview.com/img/python/71/working-with-images-in-python.webp' title=Huomautus: Käytettävissä on valinnainen laajennuslippu, joka on yksi kiertomenetelmän argumenteista, joka, jos se on asetettu tosi, laajentaa tulosteen kuvan niin, että se pitää sisällään koko käännetyn kuvan. Kuten yllä olevasta koodinpätkästä näkyy, olen käyttänyt suhteellista polkua, jossa kuvani sijaitsee samassa hakemistossa python-kooditiedostoni kanssa, myös absoluuttista polkua voidaan käyttää.
  • Kuvan rajaaminen: Image.crop(box) ottaa 4-kertaisen (vasen ylempi oikea alempi) pikselikoordinaatin ja palauttaa käytetystä kuvasta suorakaiteen muotoisen alueen. 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() 
    kuvan rajaaminen pythonissa' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-1.webp' title=
  • Kuvan koon muuttaminen: Image.resize(size) - Tässä koko on 2-osan leveys ja korkeus. 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() 
    kuvan koon muuttaminen pythonissa' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-2.webp' title=
  • Kuvan liittäminen toiseen kuvaan: Toinen argumentti voi olla 2-tuple (määrittää vasemman yläkulman) tai 4-tuple (vasen yläoikea alempi) - tässä tapauksessa liitetyn kuvan koon on vastattava tämän laatikkoalueen kokoa tai Ei mitään, mikä vastaa (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. 
    kuvan liittäminen toiseen Pythonissa' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-3.webp' title=
  • Kuvan histogrammin hankkiminen: Tämä palauttaa kuvan histogrammin, koska pikseliluettelo laskee yhden kutakin kuvan pikseliä kohden. (Kuvan histogrammi on graafinen esitys digitaalisen kuvan sävyjakaumasta. Se sisältää kaikki kuvan sisältämät kirkkausarvot. Se piirtää kunkin kirkkausarvon pikselien lukumäärän. Se auttaa valotusasetusten tekemisessä.) kohdasta 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() 
    kuvan-histogrammin saaminen python-kopiossa' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-4.webp' title=


  • Kuvan siirtäminen: Tämä ominaisuus antaa meille kuvan peilikuvan 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() 
    kuvan siirtäminen pythonissa' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-5.webp' title=
  • Jaa kuva yksittäisiin bändeihin: Kuvan jakaminen RGB-tilassa luo kolme uutta kuvaa, joista jokainen sisältää kopion alkuperäisistä yksittäisistä kaistaista. 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() 
    jakaa kuva pythonissa' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-6.webp' title=
  • bittikartta: Kuvan muuntaminen X11-bittikartaksi (plain text binary image format). Se palauttaa merkkijonon, joka sisältää X11-bittikartan, ja sitä voidaan käyttää vain tilan 1 kuville eli 1 bitin pikselin mustavalkoisille kuville. PIL-tuontikuvasta 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() 
    kuvan muuntaminen bittikartaksi pythonissa' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-7.webp' title= kuvan muuntaminen bitmaoksi pythonissa' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-8.webp' title=
  • Pikkukuvan luominen: Tämä menetelmä luo pikkukuvan avattavasta kuvasta. Se ei palauta uutta kuvaobjektia, vaan tekee paikan päällä olevan muokkauksen itse avautuvaan kuvaobjektiin. Jos et halua muuttaa alkuperäistä kuvaobjektia, luo kopio ja käytä sitten tätä menetelmää. Tämä menetelmä arvioi myös sopivan säilyttää kuvan kuvasuhteen siirretyn koon mukaan. PIL-tuontikuvasta 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() 
    kuvan pikkukuvan luominen pythonissa' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-9.webp' title=
Luo tietokilpailu