تعتبر مكتبة PIL مكتبة للتعامل والتلاعب ومعالجة الصور بطريقة جد سهلة وممتعة كما أنها تدعم الكثير من صيغ الصور المختلفة ومشكلة هذه المكتبة أنها لم تشهد أي تطوير منذ سنة 2009 لذلك يقترح الموقع الرسمي لهذه المكتبة باستعمال مكتبة PILLOW وهي المكتبة التي سنقوم يشرحها في هذه التدوينة.
ماهي مكتبة PILLOW
هي مكتبة مطورة من مكتبة PIL والتي قام بتطويرها مجموعة من المتطوعين، وهي ترتكز على كود مكتبة PIL ولكنها نسخة حديثة ومطورة وأفضل منها وقد تم إضافة مميزات أخرى بالاضافة الى دعم من الصيغ الجديدة للصور ولكل من سبق له وأن تعامل مع المكتبة السابقة لن يجد أي إختلاف في طريقة عمل هذه المكتبة .
تحميل وتثبيت مكتبة PILLOW
قبل البدأ في إستعمال هذه المكتبة علينا اولا أن نقوم بتحميلها وتثبيتها وهي تدعم كل من أنظمة التشغيل ويندوز، ماك ولينكس وأحدث نسخة هي 10.0.0 وهي تدعم بايثون 2.6 وما فوق ولنقوم بتثبيت المكتبة نستخدم الأمر PIP كما هو موضح في الصورة التالية :

التأكد من تثبيت المكتبة
حتى نتأكد من تثبيت المكتبة بشكل صحيح ومن دون مشاكل نقوم بفنح الطرفية وكتابة الأمر التالي :

فإذا قام النظام بعرض سطر جديد يبدأ بالعلامة <<< فاعلم ان المكتبة تم تثبيتها بنحاح.
صيغ الملفات
وقبل أن نبدا بالعمل دعونا نذكر بعض أنواع الملفات المدعومة من طرف المكتبة: GIF,EPS,BMP,PDF,PSD,ICO,WEBP,TIFF,PPM,PNG,PCX,MSP,JPEG, وأريد أنوه الى أن بعض المفات تعطيك إمكانية القراءة فقط وبعضها الأخر يعطيك إمكانية التعديل فقط ولمزيد من المعلومات عن أنواع الملفات المدعومة يرجى زيارة الرابط التالي : Image File Format .
كيفية إستعمال مكتبة PILLOW للتعامل مع الصور
دعونا الأن نرى قدرة هذه المكتبة في التعامل مع الصور بإستدعاء وحدة Image والتي تحتوي على معظم الدوال الأساسية.
from PIL import image
الأن يمكننا الوصول الى جميع الوظائف اللازمة للعمل.
from PIL import Image
my_image=image.open("إسم الصورة")
my_image.load()
لتحميل صورة من جهازك نقوم بإستعمال الدالة open() ويجب ان تكون الصورة في نفس الدليل المتواجد فيه برنامجنا بعد ذلك يمكننا القيام بعد أمور.
يمكن للمكتبة من التعرف على صيغة الصورة أتوماتكيا إعتمادا على محتويات الملف ولمعرفة ذلك بالاضافة الى حجمها نقوم بكتابة الكود التالي :
from PIL import Image
try:
my_image=image.open("إسم الصورة")
my_image.load()
except:
print 'Unable to load image
print (my_image.format,my_image.size,my_image.mode)'
وستكون النتيجة :

وكما نلاحظ من خلال الصورة تم التعرف الى صيغة الصورة والتي هي PNG وحجم الصورة بالطول والعرض بالبيكسل باﻹضافة الى نوع الصورة الحقيقي، دعونا الان نقوم ببعض العمليات على الصور.
جعل الصور ضبابية
يمكننا ان نجعل من اي صورة ضبابية من خلال الكود التالي :
from PIL import Image,ImageFilter
try:
#تحميل صورة من القرص الصلب
my_image=Image.open("nature.png")
#جعل الصورة ضبابية
blurred = my_image.filter(ImageFilter.BLUR)
#استعراض الصورتين الاصلية والمعدلة
my_image.show()
blurred.show()
#حفظ الصورة الجديدة
blurred.save("blurred.png")
except:
print "Unable to load image"
لتكون النتيجة :

من أجل عرض الصورة مباشرة بعد إنتهاء الكود نقوم باستعمال الدالة show() وإذا لم ترى أي شيء انصحك بتثبيت برنامج Imagemagick.
تصغير الصور
أحيانا نحتاج الى تصغير الصور الى أحجام صغيرة مع الحفاظ على جودة الصورة وأطرافها ولعمل ذلك نتبع مايلي :
from PIL import Image
size=(120,128)
saved="nature.jpeg"
try:
my_image=Image.open("nature.png")
except:
print "Unable to load image"
my_image.thumbnail(size)
my_image.save(saved)
my_image.show()
والنتيجة :

أكتفي بهذا القدر وللتعرف على المزيد من مميزات المكتبة يمكنم زيارة الرابط التالي :
http://pillow.readthedocs.org/en/latest/handbook/tutorial.html
اكتشاف المزيد من بايثون العربي
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.