Arbeide med bilder i Python

Arbeide med bilder i Python

PIL er Python Imaging Library som gir python-tolken bilderedigeringsmuligheter. Den er utviklet av Fredrik Lundh og flere andre bidragsytere. Pillow er den vennlige PIL-gaffelen og et brukervennlig bibliotek utviklet av Alex Clark og andre bidragsytere. Vi skal jobbe med Pillow.

Installasjon:

  • Linux: Skriv følgende på linux-terminalen:
     pip install Pillow  Installere pip via terminal:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • Windows: Last ned den riktige putepakken i henhold til din python-versjon. Sørg for å laste ned i henhold til python-versjonen du har.

Vi kommer til å jobbe med bildemodulen her, som gir en klasse med samme navn og har mange funksjoner for å jobbe med bildene våre. For å importere bildemodulen bør koden vår begynne med følgende linje:

  from PIL import Image  

Operasjoner med bilder:

  • Åpne et bestemt bilde fra en bane: 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.   
  • Hent størrelse på bildet : Forekomstene av bildeklassen som opprettes har mange attributter. En av dens nyttige attributter er størrelse. 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   
    Noen andre attributter er: Image.width Image.height Image.format Image.info osv.
  • Lagre endringer i bildet: For å lagre eventuelle endringer du har gjort i bildefilen, må vi oppgi bane samt bildeformat. Python
       img  .  save  (  path     format  )   # format is optional if no format is specified    #it is determined from the filename extension   
  • Rotere et bilde: Bildet rotasjonen trenger vinkel som parameter for å få bildet rotert. 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  ()   
    rotere et bilde i python Merk: Det er et valgfritt utvidelsesflagg tilgjengelig som et av argumentene for roteringsmetoden, som hvis satt true utvider utdatabildet for å gjøre det stort nok til å holde hele det roterte bildet. Som vist i kodebiten ovenfor har jeg brukt en relativ bane der bildet mitt er plassert i samme katalog som python-kodefilen min, en absolutt bane kan også brukes.
  • Beskjære et bilde: Image.crop(box) tar en 4-tuppel (venstre øvre høyre nedre) pikselkoordinat og returnerer et rektangulært område fra det brukte bildet. 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  ()   
    beskjære et bilde i python
  • Endre størrelsen på et bilde: Image.resize(size)- Her er størrelsen gitt som en 2-tuppel bredde og høyde. 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  ()   
    endre størrelse på et bilde i python
  • Lime inn et bilde på et annet bilde: Det andre argumentet kan være en 2-tuppel (spesifiserer øverste venstre hjørne) eller en 4-tuppel (venstre øvre høyre nede) - i dette tilfellet må størrelsen på det limte bildet samsvare med størrelsen på denne boksregionen eller Ingen som tilsvarer (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.   
    lime inn et bilde på andre i Python
  • Få et histogram av et bilde: Dette vil returnere et histogram av bildet ettersom en liste over piksler teller én for hver piksel i bildet. (Et histogram av et bilde er en grafisk representasjon av tonefordelingen i et digitalt bilde. Det inneholder alle lysstyrkeverdiene i et bilde. Det plotter antall piksler for hver lysstyrkeverdi. Det hjelper med å gjøre eksponeringsinnstillingene.) fra 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  ()   
    få-et-histogram-av-bilde-i-python-kopi


  • Transponering av et bilde: Denne funksjonen gir oss et speilbilde av et bilde 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  ()   
    transponere et bilde i python
  • Del opp et bilde i individuelle bånd: Å dele et bilde i RGB-modus skaper tre nye bilder som hver inneholder en kopi av de originale individuelle båndene. 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  ()   
    dele et bilde i python
  • tobitmap: Konvertering av et bilde til en X11 bitmap (Et vanlig tekst binært bildeformat). Den returnerer en streng som inneholder en X11 bitmap, den kan bare brukes for modus 1 bilder, dvs. 1 bit piksel svart/hvitt bilder. fra PIL import bilde 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  ()   
    konvertere bilde til punktgrafikk i python konvertere bilde til bitmao i python
  • Opprette et miniatyrbilde: Denne metoden lager et miniatyrbilde av bildet som åpnes. Det returnerer ikke et nytt bildeobjekt, det gjør på stedet modifikasjoner til selve det åpnede bildeobjektet. Hvis du ikke vil endre det originale bildeobjektet, oppretter du en kopi og bruker deretter denne metoden. Denne metoden vurderer også passende for å opprettholde sideforholdet til bildet i henhold til den passerte størrelsen. fra PIL import bilde 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  ()   
    lage miniatyrbilde av bildet i python
Lag quiz