logo

Rad sa slikama u Pythonu

PIL je Python slikovna knjižnica koja Python tumaču pruža mogućnosti uređivanja slika. Razvio ga je Fredrik Lundh i nekoliko drugih suradnika. Pillow je prijateljska PIL vilica i biblioteka jednostavna za korištenje koju su razvili Alex Clark i drugi suradnici. Radit ćemo s Pillowom.

java strukture podataka

Montaža:

  • Linux: Na linux terminalu upišite sljedeće:
    pip install Pillow
    Instaliranje pip-a preko terminala:
    sudo apt-get update  
    sudo apt-get install python-pip
  • Windows: preuzimanje odgovarajući Pillow paket prema vašoj verziji pythona. Obavezno preuzmite u skladu s python verzijom koju imate.

Ovdje ćemo raditi s modulom slike koji pruža istoimenu klasu i puno funkcija za rad na našim slikama. Za uvoz modula slike naš kod treba započeti sljedećim retkom:



 from PIL import Image

Radnje sa slikama:

  • Otvorite određenu sliku sa staze: 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. 
  • Dohvati veličinu slike : Instance klase Image koje su stvorene imaju mnogo atributa, jedan od korisnih atributa je veličina. 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 
    Neki drugi atributi su: Image.width Image.height Image.format Image.info itd.
  • Spremi promjene na slici: Kako bismo spremili sve promjene koje ste napravili u slikovnoj datoteci, moramo dati putanju kao i format slike. Python
    img.save(path format) # format is optional if no format is specified  #it is determined from the filename extension 
  • Rotiranje slike: Za rotaciju slike potreban je kut kao parametar da bi se slika rotirala. 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() 
    rotiranje slike u pythonu' src='//techcodeview.com/img/python/71/working-with-images-in-python.webp' title=Napomena: Postoji izborna zastavica za proširenje dostupna kao jedan od argumenata metode rotacije koja ako je postavljena na true proširuje izlaznu sliku kako bi bila dovoljno velika da primi cijelu rotiranu sliku. Kao što se vidi u gornjem isječku koda, upotrijebio sam relativnu stazu gdje se moja slika nalazi u istom direktoriju kao i moja datoteka python koda, a može se koristiti i apsolutna staza.
  • Obrezivanje slike: Image.crop(box) uzima 4-torku (lijevo gore desno dolje) koordinate piksela i vraća pravokutno područje iz korištene slike. 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() 
    izrezivanje slike u pythonu' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-1.webp' title=
  • Promjena veličine slike: Image.resize(size)- Ovdje je veličina navedena kao 2-torka širine i visine. 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() 
    promjena veličine slike u pythonu' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-2.webp' title=
  • Lijepljenje slike na drugu sliku: Drugi argument može biti 2-torka (određuje gornji lijevi kut) ili 4-torka (lijevo gore desno dolje) - u ovom slučaju veličina zalijepljene slike mora odgovarati veličini ove regije okvira ili Ništa što je ekvivalentno (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. 
    lijepljenje slike na drugu u Pythonu' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-3.webp' title=
  • Dobivanje histograma slike: Ovo će vratiti histogram slike jer popis piksela broji jedan za svaki piksel na slici. (Histogram slike je grafički prikaz raspodjele tonova u digitalnoj slici. Sadrži sve vrijednosti svjetline sadržane u slici. Iscrtava broj piksela za svaku vrijednost svjetline. Pomaže u postavkama ekspozicije.) iz PIL import slike 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() 
    dobivanje-histograma-slike-u-python-kopiji' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-4.webp' title=


  • Transponiranje slike: Ova nam značajka daje zrcalnu sliku slike 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() 
    transponiranje slike u python' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-5.webp' title=
  • Podijelite sliku u pojedinačne trake: Razdvajanje slike u RGB modu stvara tri nove slike od kojih svaka sadrži kopiju izvornih pojedinačnih traka. 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() 
    podijeli sliku u pythonu' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-6.webp' title=
  • tobitmapa: Pretvaranje slike u X11 bitmapu (format binarne slike običnog teksta). Vraća niz koji sadrži X11 bitmapu i može se koristiti samo za slike načina 1, tj. crno-bijele slike od 1 bita piksela. iz PIL import slike 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() 
    pretvaranje slike u bitmapu u pythonu' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-7.webp' title= pretvaranje slike u bitmao u pythonu' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-8.webp' title=
  • Stvaranje minijature: Ova metoda stvara sličicu otvorene slike. Ne vraća novi slikovni objekt, već vrši izmjene na mjestu samog trenutno otvorenog slikovnog objekta. Ako ne želite promijeniti izvorni slikovni objekt, napravite kopiju i zatim primijenite ovu metodu. Ova metoda također procjenjuje prikladnost za održavanje omjera slike prema prenesenoj veličini. iz PIL import slike 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() 
    stvaranje minijature slike u pythonu' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-9.webp' title=
Napravi kviz