PIL, python yorumlayıcısına görüntü düzenleme yetenekleri sağlayan Python Görüntüleme Kitaplığıdır. Fredrik Lundh ve diğer birçok katkıda bulunan kişi tarafından geliştirildi. Pillow, Alex Clark ve diğer katkıda bulunanlar tarafından geliştirilen, dost canlısı PIL çatalı ve kullanımı kolay bir kütüphanedir. Pillow'la çalışacağız.
Kurulum:
js dizisi
- Linux: Linux terminalinde aşağıdakini yazın:
pip install PillowPip'in terminal aracılığıyla kurulması:sudo apt-get update
sudo apt-get install python-pip - Windows: İndirmek python sürümünüze göre uygun Yastık paketini seçin. Sahip olduğunuz python sürümüne göre indirdiğinizden emin olun.
Burada aynı isimde bir sınıf sağlayan ve görsellerimiz üzerinde çalışmak için birçok fonksiyon sağlayan Image Modülü ile çalışacağız. Image modülünü içe aktarmak için kodumuz aşağıdaki satırla başlamalıdır:
from PIL import ImageGörsellerle Yapılan İşlemler:
aslana kıyasla kaplan
- Bir yoldan belirli bir resmi açın: 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.
- Resmin boyutunu al : Image sınıfının oluşturulan örneklerinin birçok özelliği vardır, kullanışlı özelliklerinden biri de boyuttur. Python
Diğer bazı özellikler şunlardır: Resim.genişlik Resim.yükseklik Resim.format Resim.bilgi vb.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
- Resimdeki değişiklikleri kaydedin: Resim dosyasında yaptığınız değişiklikleri kaydetmek için resim formatının yanı sıra yol da vermemiz gerekiyor. Python
img.save(path format) # format is optional if no format is specified #it is determined from the filename extension
- Bir Görüntüyü Döndürme: Görüntünün döndürülmesi için görüntü döndürme parametresi olarak açıya ihtiyaç vardır. 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()
Not: Döndürme yönteminin argümanlarından biri olarak isteğe bağlı bir genişletme bayrağı vardır; bu bayrak, doğru olarak ayarlanırsa çıktı görüntüsünü, tam döndürülmüş görüntüyü tutacak kadar büyütecek şekilde genişletir. Yukarıdaki kod parçacığında görüldüğü gibi, resmimin python kod dosyamla aynı dizinde bulunduğu göreceli bir yol kullandım ve mutlak bir yol da kullanılabilir.
- Bir Görüntünün Kırpılması: Image.crop(box), 4'lü (sol üst sağ alt) piksel koordinatını alır ve kullanılan görüntüden dikdörtgen bir bölge döndürür. 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()
- Bir Resmi Yeniden Boyutlandırma: Image.resize(size)- Burada boyut 2'li genişlik ve yükseklik olarak sağlanır. 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()
- Bir resmi başka bir resmin üzerine yapıştırma: İkinci argüman 2'li (sol üst köşeyi belirtir) veya 4'lü (sol üst sağ alt) olabilir - bu durumda yapıştırılan görüntünün boyutu bu kutu bölgesinin boyutuyla eşleşmelidir veya Yok (0 0)'a eşdeğerdir. 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.
- Bir Görüntünün Histogramını Alma: Bu, görüntüdeki her piksel için bir piksel sayımı listesi olarak görüntünün histogramını döndürür. (Bir görüntünün histogramı, dijital bir görüntüdeki ton dağılımının grafiksel bir temsilidir. Bir görüntüde bulunan tüm parlaklık değerlerinin ne olduğunu içerir. Her parlaklık değeri için piksel sayısını çizer. Pozlama ayarlarının yapılmasına yardımcı olur.) PIL içe aktarma görüntüsünden 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()
- Bir Görüntünün Transpoze Edilmesi: Bu özellik bize bir görüntünün ayna görüntüsünü verir 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()
- Bir görüntüyü ayrı bantlara bölün: Bir görüntüyü RGB modunda bölmek, her biri orijinal ayrı bantların bir kopyasını içeren üç yeni görüntü oluşturur. 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()
- bit haritası: Bir görüntüyü X11 bitmap'e dönüştürme (Düz metin ikili görüntü formatı). X11 bitmap içeren bir dize döndürür; yalnızca mod 1 görüntüler, yani 1 bit piksel siyah beyaz görüntüler için kullanılabilir. PIL içe aktarma görüntüsünden 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()
- Küçük resim oluşturma: Bu yöntem, açılan görüntünün küçük resmini oluşturur. Yeni bir görüntü nesnesi döndürmez, halihazırda açık olan görüntü nesnesinin kendisinde yerinde değişiklik yapar. Orijinal görüntü nesnesini değiştirmek istemiyorsanız bir kopyasını oluşturun ve ardından bu yöntemi uygulayın. Bu yöntem aynı zamanda geçirilen boyuta göre görüntünün en boy oranını korumanın uygunluğunu da değerlendirir. PIL içe aktarma görüntüsünden 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()