logo

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.

midtknapp css

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:



hvordan konvertere int til streng java
 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' src='//techcodeview.com/img/python/71/working-with-images-in-python.webp' title=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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-1.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-2.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-3.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-4.webp' title=


  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-5.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-6.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-7.webp' title= konvertere bilde til bitmao i python' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-8.webp' title=
  • 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' loading='lazy' src='//techcodeview.com/img/python/71/working-with-images-in-python-9.webp' title=
Lag quiz