Pillow – معالجة الصور في بايثون

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

أساسيات العمل مع مكتبة Pillow في Python

يُعد العمل مع الصور جزءًا لا يتجزأ من تطوير البرمجيات الحديثة. بدءًا من إنشاء تطبيقات الويب التي تُولّد محتوى ديناميكيًا، وصولًا إلى تطوير أنظمة الرؤية الحاسوبية والتعلم الآلي، تحتاج جميعها إلى أدوات لمعالجة البيانات الرسومية. تمثل مكتبة Pillow (Python Imaging Library) حلاً قويًا وشاملًا للتعامل مع الصور في نظام Python البيئي.

Pillow هي شوكة (fork) نشطة ومطورة للمكتبة الأصلية PIL، التي أنشأها فريدريك لوند عام 1995. بعد توقف تطوير PIL في عام 2011، قام أليكس كلارك ومجتمع المطورين بإنشاء Pillow، مما يضمن التوافق مع واجهة API الأصلية مع إضافة العديد من الميزات والتحسينات الجديدة.

تشمل المزايا الرئيسية لـ Pillow سهولة الاستخدام، والدعم الواسع لصيغ الرسوميات، ومجموعة غنية من أدوات التحرير والتحليل، بالإضافة إلى الدعم النشط من المجتمع. تُستخدم المكتبة على نطاق واسع في تطوير الويب، والحوسبة العلمية، والتعلم الآلي، وأتمتة العمليات الرسومية.

حول مكتبة Pillow

التاريخ والتطور

تم إنشاء Pillow كشوكة (fork) لمكتبة PIL (Python Imaging Library) بهدف ضمان التوافق مع Python 3 وحل مشكلات التثبيت في المكتبة الأصلية. يأتي اسم "Pillow" من الكلمة الإنجليزية التي تعني "وسادة"، وهو تلاعب لفظي باختصار PIL.

تتطور المكتبة بنشاط منذ عام 2010 وتدعمها مجموعة كبيرة من المطورين. تتضمن التحديثات المنتظمة دعمًا لصيغ صور جديدة، وتحسينات في الأداء، وإصلاحات أمنية، وتوسيعًا للوظائف.

الهيكل المعماري ومبادئ العمل

تم بناء Pillow على مبادئ البرمجة كائنية التوجه. العنصر الأساسي هو الكلاس Image، الذي يمثل الصورة في الذاكرة. يتم تنفيذ جميع العمليات على الصور من خلال دوال هذا الكلاس أو الوحدات المرتبطة به.

تدعم المكتبة التقييم الكسول (lazy evaluation)، مما يعني أن العديد من العمليات لا يتم تنفيذها فورًا، بل تُؤجل حتى لحظة الحفظ أو الاستدعاء الصريح. يتيح ذلك تحسين سلاسل التحويلات وزيادة الأداء.

الوحدات والمكونات الرئيسية

تتكون Pillow من عدة وحدات رئيسية:

  • Image — الوحدة الأساسية للتعامل مع الصور
  • ImageDraw — وحدة رسم الأشكال الأساسية والنصوص
  • ImageFilter — مجموعة من المرشحات الجاهزة
  • ImageEnhance — أدوات تحسين جودة الصور
  • ImageFont — التعامل مع الخطوط
  • ImageColor — أدوات مساعدة للتعامل مع الألوان
  • ImageOps — عمليات إضافية على الصور

التثبيت والإعداد

التثبيت القياسي

pip install pillow

التثبيت مع التبعيات الإضافية

للحصول على وظائف متقدمة، يمكن تثبيت مكتبات إضافية:

pip install pillow[imaging]  # برامج ترميز إضافية
pip install pillow[extra]    # جميع التبعيات الإضافية

التحقق من التثبيت

from PIL import Image
import PIL
print(PIL.__version__)
print(PIL.features.check_feature('webp'))  # التحقق من دعم WebP

العمليات الأساسية على الصور

فتح الصور والحصول على المعلومات الأساسية

from PIL import Image

# فتح صورة
img = Image.open("example.jpg")

# الحصول على المعلومات الأساسية
print(f"الصيغة: {img.format}")
print(f"الأبعاد: {img.size}")
print(f"الوضع اللوني: {i                    

توصيات