Werken met afbeeldingen in Python

Werken met afbeeldingen in Python

PIL is de Python Imaging Library die de Python-interpreter mogelijkheden biedt voor het bewerken van afbeeldingen. Het is ontwikkeld door Fredrik Lundh en verschillende andere bijdragers. Pillow is de gebruiksvriendelijke PIL-vork en een eenvoudig te gebruiken bibliotheek, ontwikkeld door Alex Clark en andere bijdragers. Wij gaan samenwerken met Pillow.

Installatie:

  • Linux: Typ op de Linux-terminal het volgende:
     pip install Pillow  Pip installeren via terminal:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • Ramen: Downloaden het juiste kussenpakket volgens uw Python-versie. Zorg ervoor dat u downloadt volgens de Python-versie die u heeft.

We zullen hier werken met de Image Module, die een klasse met dezelfde naam biedt en veel functies biedt om aan onze afbeeldingen te werken. Om de Image-module te importeren, moet onze code beginnen met de volgende regel:

  from PIL import Image  

Bewerkingen met afbeeldingen:

  • Open een bepaalde afbeelding vanuit een pad: 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.   
  • Grootte van afbeelding ophalen : De exemplaren van de Image-klasse die worden gemaakt, hebben veel attributen. Een van de nuttige attributen is grootte. 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   
    Enkele andere kenmerken zijn: Image.width Image.height Image.format Image.info enz.
  • Wijzigingen in afbeelding opslaan: Om eventuele wijzigingen die u in het afbeeldingsbestand hebt aangebracht op te slaan, moeten we zowel het pad als het afbeeldingsformaat opgeven. Python
       img  .  save  (  path     format  )   # format is optional if no format is specified    #it is determined from the filename extension   
  • Een afbeelding roteren: De beeldrotatie heeft een hoek nodig als parameter om de afbeelding te laten roteren. 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  ()   
    een afbeelding roteren in Python Opmerking: Er is een optionele uitbreidingsvlag beschikbaar als een van de argumenten van de rotatiemethode, die, indien ingesteld op True, de uitvoerafbeelding uitbreidt om deze groot genoeg te maken om de volledig geroteerde afbeelding te bevatten. Zoals te zien is in het bovenstaande codefragment, heb ik een relatief pad gebruikt waarbij mijn afbeelding zich in dezelfde map bevindt als mijn Python-codebestand. Een absoluut pad kan ook worden gebruikt.
  • Een afbeelding bijsnijden: Image.crop(box) neemt een pixelcoördinaat van vier (linksboven, rechtsonder) pixelcoördinaat en retourneert een rechthoekig gebied uit de gebruikte afbeelding. 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  ()   
    een afbeelding bijsnijden in Python
  • Het formaat van een afbeelding wijzigen: Image.resize(size) - Hier wordt de grootte weergegeven als een breedte en hoogte van twee keer. 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  ()   
    het formaat van een afbeelding wijzigen in Python
  • Een afbeelding op een andere afbeelding plakken: Het tweede argument kan een 2-tupel zijn (die de linkerbovenhoek specificeert) of een 4-tupel (linksboven rechtsonder) - in dit geval moet de grootte van de geplakte afbeelding overeenkomen met de grootte van dit kadergebied of Geen, wat equivalent is aan (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.   
    een afbeelding op een andere plakken in Python
  • Een histogram van een afbeelding verkrijgen: Hierdoor wordt een histogram van de afbeelding geretourneerd, aangezien een lijst met pixels één telt voor elke pixel in de afbeelding. (Een histogram van een afbeelding is een grafische weergave van de toonverdeling in een digitaal beeld. Het bevat alle helderheidswaarden in een afbeelding. Het plot het aantal pixels voor elke helderheidswaarde. Het helpt bij het uitvoeren van de belichtingsinstellingen.) van 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  ()   
    een histogram-van-afbeelding-in-python-kopie verkrijgen


  • Een afbeelding transponeren: Deze functie geeft ons het spiegelbeeld van een afbeelding 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  ()   
    een afbeelding in Python transponeren
  • Splits een afbeelding in afzonderlijke banden: Door een afbeelding in de RGB-modus te splitsen, ontstaan ​​er drie nieuwe afbeeldingen die elk een kopie van de originele afzonderlijke banden bevatten. 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  ()   
    een afbeelding splitsen in Python
  • tobitmap: Een afbeelding converteren naar een X11-bitmap (een binair afbeeldingsformaat met platte tekst). Het retourneert een string met een X11-bitmap. Deze kan alleen worden gebruikt voor modus 1-afbeeldingen, d.w.z. 1 bit pixel zwart-witafbeeldingen. van PIL-importafbeelding 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  ()   
    afbeelding converteren naar bitmap in python afbeelding converteren naar bitmao in python
  • Een miniatuur maken: Met deze methode wordt een miniatuur gemaakt van de afbeelding die wordt geopend. Er wordt geen nieuw afbeeldingsobject geretourneerd, maar er worden ter plekke wijzigingen aangebracht aan het momenteel geopende afbeeldingsobject zelf. Als u het originele afbeeldingsobject niet wilt wijzigen, maak dan een kopie en pas deze methode toe. Deze methode evalueert ook of het geschikt is om de beeldverhouding van de afbeelding te behouden op basis van de doorgegeven grootte. van PIL-importafbeelding 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  ()   
    miniatuur van afbeelding maken in Python
Quiz maken