Delo s slikami v Pythonu

Delo s slikami v Pythonu

PIL je Python Imaging Library, ki tolmaču python nudi zmožnosti urejanja slik. Razvil ga je Fredrik Lundh in več drugih sodelavcev. Pillow je prijazna vilica PIL in knjižnica, enostavna za uporabo, ki so jo razvili Alex Clark in drugi sodelavci. Delali bomo z Pillow.

Namestitev:

  • Linux: Na terminalu linux vnesite naslednje:
     pip install Pillow  Namestitev pipa prek terminala:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • Windows: Prenos ustrezen paket vzglavnikov glede na vašo različico pythona. Ne pozabite prenesti skladno z različico python, ki jo imate.

Tukaj bomo delali s slikovnim modulom, ki ponuja istoimenski razred in veliko funkcij za delo na naših slikah. Za uvoz slikovnega modula se mora koda začeti z naslednjo vrstico:

  from PIL import Image  

Operacije s slikami:

  • Odprite določeno sliko s poti: 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.   
  • Pridobi velikost slike : Primerki razreda Image, ki so ustvarjeni, imajo veliko atributov, eden od njegovih uporabnih atributov je velikost. 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   
    Nekateri drugi atributi so: Image.width Image.height Image.format Image.info itd.
  • Shrani spremembe na sliki: Če želite shraniti vse spremembe, ki ste jih naredili v slikovni datoteki, moramo podati pot in format slike. Python
       img  .  save  (  path     format  )   # format is optional if no format is specified    #it is determined from the filename extension   
  • Vrtenje slike: Vrtenje slike potrebuje kot kot parameter, da se slika zavrti. 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  ()   
    vrtenje slike v pythonu Opomba: Na voljo je izbirna zastavica za razširitev kot eden od argumentov metode vrtenja, ki, če je nastavljena na true, razširi izhodno sliko, da postane dovolj velika, da sprejme celotno obrnjeno sliko. Kot je razvidno iz zgornjega delčka kode, sem uporabil relativno pot, kjer se moja slika nahaja v istem imeniku kot moja kodna datoteka python, lahko pa se uporabi tudi absolutna pot.
  • Obrezovanje slike: Image.crop(box) vzame 4-tuple (levo zgoraj desno spodaj) koordinate slikovnih pik in vrne pravokotno območje iz uporabljene 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  ()   
    obrezovanje slike v pythonu
  • Spreminjanje velikosti slike: Image.resize(size)- Tukaj je velikost podana kot 2-kratna širina in višina. 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  ()   
    spreminjanje velikosti slike v pythonu
  • Lepljenje slike na drugo sliko: Drugi argument je lahko 2-tuple (ki določa zgornji levi kot) ali 4-tuple (levo zgoraj desno spodaj) - v tem primeru se mora velikost prilepljene slike ujemati z velikostjo tega okvira ali Brez, kar je enakovredno (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.   
    lepljenje slike na drugo v Pythonu
  • Pridobivanje histograma slike: To bo vrnilo histogram slike, saj seznam slikovnih pik šteje eno za vsako slikovno piko. (Histogram slike je grafični prikaz porazdelitve tonov v digitalni sliki. Vsebuje vse vrednosti svetlosti, ki jih vsebuje slika. Nariše število slikovnih pik za vsako vrednost svetlosti. Pomaga pri nastavitvah osvetlitve.) iz 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  ()   
    pridobivanje-histograma-slike-v-kopiji-python


  • Prenos slike: Ta funkcija nam daje zrcalno sliko 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  ()   
    prestavljanje slike v python
  • Razdeli sliko na posamezne pasove: Razdelitev slike v načinu RGB ustvari tri nove slike, od katerih vsaka vsebuje kopijo izvirnih posameznih pasov. 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  ()   
    razdeli sliko v python
  • tobitmap: Pretvorba slike v bitno sliko X11 (format binarne slike z navadnim besedilom). Vrne niz, ki vsebuje bitno sliko X11. Uporablja se lahko samo za slike v načinu 1, tj. črno-bele slike z 1 bitno slikovno piko. iz slike uvoza 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  ()   
    pretvorba slike v bitno sliko v pythonu pretvorba slike v bitmao v pythonu
  • Ustvarjanje sličice: Ta metoda ustvari sličico slike, ki se odpre. Ne vrne novega slikovnega objekta, ampak sam spremeni trenutno odprt slikovni objekt. Če ne želite spremeniti izvirnega slikovnega objekta, ustvarite kopijo in nato uporabite to metodo. Ta metoda tudi oceni ustreznost za ohranitev razmerja stranic slike glede na posredovano velikost. iz slike uvoza 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  ()   
    ustvarjanje sličice slike v pythonu
Ustvari kviz