PIL är Python Imaging Library som ger pythontolkaren bildredigeringsmöjligheter. Den har utvecklats av Fredrik Lundh och flera andra bidragsgivare. Pillow är den vänliga PIL-gaffeln och ett lättanvänt bibliotek utvecklat av Alex Clark och andra bidragsgivare. Vi kommer att arbeta med Pillow.
Installation:
- Linux: Skriv följande på linux terminal:
pip install PillowInstallation av pip via terminal:sudo apt-get update
sudo apt-get install python-pip - Windows: Ladda ner lämpligt kuddpaket enligt din pythonversion. Se till att ladda ner enligt pythonversionen du har.
Vi kommer att arbeta med bildmodulen här som tillhandahåller en klass med samma namn och ger många funktioner för att arbeta på våra bilder. För att importera bildmodulen bör vår kod börja med följande rad:
from PIL import ImageOperationer med bilder:
- Öppna en viss bild från en sökväg: 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.
- Hämta storleken på bilden : De instanser av bildklassen som skapas har många attribut, ett av dess användbara attribut är storlek. Python
Några andra attribut är: Image.width Image.height Image.format Image.info etc.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
- Spara ändringar i bilden: För att spara eventuella ändringar som du har gjort i bildfilen måste vi ange sökväg och bildformat. Python
img.save(path format) # format is optional if no format is specified #it is determined from the filename extension
- Rotera en bild: Bildrotationen behöver vinkel som parameter för att få bilden roterad. 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()
Obs: Det finns en valfri expanderingsflagga tillgänglig som ett av argumenten för rotationsmetoden som om den är inställd på sant expanderar utdatabilden för att göra den tillräckligt stor för att hålla hela den roterade bilden. Som framgår av ovanstående kodavsnitt har jag använt en relativ sökväg där min bild ligger i samma katalog som min pythonkodfil, en absolut sökväg kan också användas.
- Beskär en bild: Image.crop(box) tar en 4-tuppel (vänster övre högra nedre) pixelkoordinat och returnerar ett rektangulärt område från den använda bilden. 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()
- Ändra storlek på en bild: Image.resize(size)- Här anges storleken som en 2-tuppel bredd och höjd. 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()
- Klistra in en bild på en annan bild: Det andra argumentet kan vara en 2-tuppel (som anger det övre vänstra hörnet) eller en 4-tuppel (vänster övre högra nedre) - i det här fallet måste storleken på den inklistrade bilden matcha storleken på denna rutaregion eller Ingen som motsvarar (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.
- Få ett histogram av en bild: Detta kommer att returnera ett histogram av bilden eftersom en lista med pixlar räknar ett för varje pixel i bilden. (Ett histogram av en bild är en grafisk representation av tonfördelningen i en digital bild. Det innehåller alla ljusstyrkevärden som finns i en bild. Det plottar antalet pixlar för varje ljusstyrka. Det hjälper till att göra exponeringsinställningarna.) från 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()
- Transponera en bild: Denna funktion ger oss spegelbilden av en bild 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()
- Dela upp en bild i enskilda band: Om du delar upp en bild i RGB-läge skapas tre nya bilder som var och en innehåller en kopia av de ursprungliga individuella banden. 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()
- tobitmap: Konvertera en bild till en X11 bitmapp (ett binärt bildformat med vanlig text). Den returnerar en sträng som innehåller en X11 bitmapp, den kan endast användas för läge 1-bilder, dvs svartvita bilder med 1 bit pixel. från PIL import bild 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()
- Skapa en miniatyr: Den här metoden skapar en miniatyrbild av bilden som öppnas. Det returnerar inte ett nytt bildobjekt utan gör ändringar på plats till själva det för närvarande öppnade bildobjektet. Om du inte vill ändra det ursprungliga bildobjektet skapa en kopia och använd sedan denna metod. Denna metod utvärderar också lämpligt att bibehålla bildförhållandet i enlighet med den storlek som passerats. från PIL import bild 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()