Darbas su vaizdais Python

Darbas su vaizdais Python

PIL yra Python vaizdų biblioteka, kuri suteikia python interpretatoriui vaizdo redagavimo galimybes. Jį sukūrė Fredrikas Lundhas ir keli kiti bendradarbiai. Pagalvė yra patogi PIL šakutė ir paprasta naudoti biblioteka, kurią sukūrė Alexas Clarkas ir kiti bendradarbiai. Dirbsime su pagalve.

Montavimas:

  • Linux: „Linux“ terminale įveskite:
     pip install Pillow  Pip montavimas per terminalą:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • „Windows“: Atsisiųsti atitinkamą pagalvės paketą pagal jūsų python versiją. Būtinai atsisiųskite pagal turimą python versiją.

Čia dirbsime su vaizdo moduliu, kuriame pateikiama to paties pavadinimo klasė ir daug funkcijų, skirtų dirbti su vaizdais. Norėdami importuoti vaizdo modulį, mūsų kodas turėtų prasidėti šia eilute:

  from PIL import Image  

Operacijos su vaizdais:

  • Atidarykite konkretų vaizdą iš kelio: 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.   
  • Gauti vaizdo dydį : Sukurti vaizdo klasės egzemplioriai turi daug atributų, vienas iš naudingų jos atributų yra dydis. 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   
    Kai kurie kiti atributai: Image.width Image.height Image.format Image.info ir kt.
  • Išsaugokite pakeitimus paveikslėlyje: Norėdami išsaugoti visus vaizdo failo pakeitimus, turime nurodyti kelią ir vaizdo formatą. Python
       img  .  save  (  path     format  )   # format is optional if no format is specified    #it is determined from the filename extension   
  • Vaizdo pasukimas: Vaizdo pasukimo parametras turi būti kampas, kad vaizdas būtų pasuktas. 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  ()   
    pasukti vaizdą python Pastaba: kaip vienas iš pasukimo metodo argumentų yra pasirenkama išplėtimo vėliavėlė, kuri, jei nustatyta, išplečia išvesties vaizdą, kad jis būtų pakankamai didelis, kad tilptų visas pasuktas vaizdas. Kaip matyti aukščiau esančiame kodo fragmente, naudojau santykinį kelią, kai mano vaizdas yra tame pačiame kataloge kaip ir mano python kodo failas, taip pat gali būti naudojamas absoliutus kelias.
  • Vaizdo apkarpymas: Image.crop(box) paima 4 kortelių (kairėje viršutinėje dešinėje apatinėje) pikselių koordinates ir grąžina stačiakampę sritį iš naudojamo vaizdo. 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  ()   
    apkarpyti vaizdą python
  • Vaizdo dydžio keitimas: Image.resize(size) – čia dydis pateikiamas kaip 2 pločio ir aukščio korta. 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  ()   
    vaizdo dydžio keitimas python
  • Vaizdo įklijavimas į kitą paveikslėlį: Antrasis argumentas gali būti 2 kortelių (nurodant viršutinį kairįjį kampą) arba 4 kortelių (kairiajame viršutiniame dešiniajame apatiniame kampe) – šiuo atveju įklijuoto vaizdo dydis turi atitikti šio laukelio regiono dydį arba Nėra, kuris atitinka (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.   
    įklijuoti vaizdą ant kito Python
  • Vaizdo histogramos gavimas: Tai grąžins vaizdo histogramą, nes pikselių sąraše bus skaičiuojama po vieną kiekvienam vaizdo pikseliui. (Vaizdo histograma yra grafinis tonų pasiskirstymo skaitmeniniame vaizde atvaizdas. Jame pateikiamos visos vaizde esančios ryškumo reikšmės. Ji atvaizduoja kiekvienos ryškumo reikšmės pikselių skaičių. Padeda nustatyti ekspozicijos nustatymus.) iš PIL importuoti vaizdą. 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  ()   
    vaizdo histogramos gavimas python kopijoje


  • Vaizdo perkėlimas: Ši funkcija suteikia mums veidrodinį vaizdo vaizdą 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  ()   
    vaizdo perkėlimas python
  • Padalinkite vaizdą į atskiras juostas: Padalijus vaizdą RGB režimu sukuriami trys nauji vaizdai, kurių kiekviename yra originalių atskirų juostų kopijos. 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  ()   
    padalinti vaizdą python
  • tobitmap: Vaizdo konvertavimas į X11 bitmap (paprasto teksto dvejetainio vaizdo formatas). Ji grąžina eilutę, kurioje yra X11 taškinė schema, ji gali būti naudojama tik 1 režimo vaizdams, t. y. 1 bito pikselio nespalvotiems vaizdams. iš PIL importo paveikslėlio 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  ()   
    konvertuoti vaizdą į bitmap python konvertuoti vaizdą į bitmao python
  • Miniatiūros kūrimas: Šis metodas sukuria atidaryto vaizdo miniatiūrą. Jis negrąžina naujo vaizdo objekto, jis vietoje modifikuoja patį šiuo metu atidarytą vaizdo objektą. Jei nenorite keisti pradinio vaizdo objekto, sukurkite kopiją ir pritaikykite šį metodą. Šis metodas taip pat įvertina, ar tinka išlaikyti vaizdo formato santykį pagal perduodamą dydį. iš PIL importo paveikslėlio 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  ()   
    vaizdo miniatiūros kūrimas naudojant python
Sukurti viktoriną