كيفية استخدام مكتبة PIL لمعالجة الصور في Python
تمت الكتابة بواسطة: adel
تارخ آخر تحديث: 21 نوفمبر 2024محتوى المقال
مكتبة PIL (التي تُعرف الآن باسم Pillow) هي مكتبة مفتوحة المصدر تُستخدم لمعالجة الصور في لغة Python. توفر PIL مجموعة من الأدوات التي تتيح لك فتح الصور، تحريرها، وتحويلها إلى تنسيقات أخرى. في هذا المقال، سنتعرف على كيفية استخدام PIL في Python للقيام بالعمليات الأساسية على الصور، بالإضافة إلى بعض التطبيقات المتقدمة.
ما هي مكتبة PIL (Pillow)؟
PIL
أو Pillow
هي مكتبة في Python تتيح لك معالجة الصور الرقمية. توفر PIL مجموعة واسعة من الوظائف مثل فتح الصور، تغيير حجمها، تدويرها، اقتصاصها، وتطبيق الفلاتر عليها. يمكن استخدام PIL مع العديد من تنسيقات الصور مثل JPEG، PNG، BMP، GIF، وغيرها.
تثبيت مكتبة Pillow
قبل البدء في استخدام PIL، يجب عليك تثبيت مكتبة Pillow. يمكنك تثبيتها باستخدام pip:
pip install pillow
فتح الصور وعرضها
أول خطوة في معالجة الصور باستخدام PIL هي فتح الصورة. يمكن القيام بذلك باستخدام دالة Image.open()
، ومن ثم يمكنك عرض الصورة باستخدام دالة show()
.
from PIL import Image
# فتح الصورة
image = Image.open("example.jpg")
# عرض الصورة
image.show()
في هذا المثال، نقوم بفتح صورة باسم "example.jpg" وعرضها باستخدام show()
، والتي تفتح الصورة في العارض الافتراضي للصور على جهازك.
تغيير حجم الصور
تغيير حجم الصورة هو عملية شائعة جدًا في معالجة الصور. يمكنك استخدام دالة resize()
لتغيير حجم الصورة.
# تغيير حجم الصورة
resized_image = image.resize((800, 600))
# عرض الصورة الجديدة
resized_image.show()
في هذا المثال، قمنا بتغيير حجم الصورة إلى 800x600 بكسل.
تدوير الصور
يمكنك تدوير الصور باستخدام دالة rotate()
، والتي تتيح لك تدوير الصورة بزاوية محددة.
# تدوير الصورة بزاوية 45 درجة
rotated_image = image.rotate(45)
# عرض الصورة المدورة
rotated_image.show()
في هذا المثال، قمنا بتدوير الصورة بزاوية 45 درجة في اتجاه عقارب الساعة.
اقتصاص الصور
يمكنك اقتصاص جزء من الصورة باستخدام دالة crop()
. تحتاج إلى تحديد المنطقة التي ترغب في اقتصاصها كأربعة قيم: (left, top, right, bottom).
# تحديد منطقة الاقتصاص
box = (100, 100, 400, 400)
# اقتصاص الصورة
cropped_image = image.crop(box)
# عرض الصورة المقتصة
cropped_image.show()
في هذا المثال، قمنا بقص مربع من الصورة يبدأ من (100, 100) وينتهي عند (400, 400) بكسل.
تغيير تنسيق الصور
يمكنك تغيير تنسيق الصورة بسهولة باستخدام دالة save()
مع تحديد تنسيق مختلف. على سبيل المثال، يمكنك تحويل صورة من JPEG إلى PNG.
# حفظ الصورة بتنسيق PNG
image.save("example.png", "PNG")
في هذا المثال، قمنا بتحويل الصورة الأصلية إلى تنسيق PNG وحفظناها باسم "example.png".
إضافة الفلاتر إلى الصور
تتيح لك مكتبة PIL إضافة فلاتر متنوعة إلى الصور مثل التمويه (blur)، الشحذ (sharpen)، وغيرها باستخدام الوحدة ImageFilter
.
from PIL import ImageFilter
# تطبيق فلتر التمويه
blurred_image = image.filter(ImageFilter.BLUR)
# عرض الصورة بعد تطبيق الفلتر
blurred_image.show()
في هذا المثال، قمنا بتطبيق فلتر التمويه (blur) على الصورة الأصلية.
تحويل الصور إلى تدرج الرمادي
يمكنك بسهولة تحويل الصورة إلى تدرج الرمادي باستخدام دالة convert()
مع تحديد الوضع "L".
# تحويل الصورة إلى تدرج الرمادي
gray_image = image.convert("L")
# عرض الصورة باللون الرمادي
gray_image.show()
في هذا المثال، قمنا بتحويل الصورة الأصلية إلى صورة بتدرج الرمادي.
إضافة نصوص إلى الصور
يمكنك إضافة نصوص إلى الصور باستخدام دالة ImageDraw.Draw
وtext()
. تحتاج أيضًا إلى تحميل الخط الذي ترغب في استخدامه باستخدام ImageFont
.
from PIL import ImageDraw, ImageFont
# إنشاء كائن لرسم النصوص
draw = ImageDraw.Draw(image)
# تحميل الخط وتحديد حجمه
font = ImageFont.truetype("arial.ttf", 36)
# إضافة النص إلى الصورة
draw.text((50, 50), "مرحبا بك في PIL!", fill="white", font=font)
# عرض الصورة بعد إضافة النص
image.show()
في هذا المثال، قمنا بإضافة نص أبيض اللون "مرحبا بك في PIL!" في موقع (50, 50) على الصورة الأصلية.
حفظ الصور المعدلة
بعد إجراء التعديلات على الصورة، يمكنك حفظ النتيجة باستخدام دالة save()
وتحديد مسار واسم الملف الجديد.
# حفظ الصورة المعدلة
image.save("modified_example.jpg")
في هذا المثال، قمنا بحفظ الصورة المعدلة باسم "modified_example.jpg".
الخاتمة
مكتبة PIL (Pillow) في Python توفر لك العديد من الأدوات القوية لمعالجة الصور، من المهام البسيطة مثل فتح الصور وتغيير حجمها إلى المهام الأكثر تعقيدًا مثل تطبيق الفلاتر وإضافة النصوص. باستخدام هذه المكتبة، يمكنك تطوير تطبيقات قوية للتعامل مع الصور في مشاريعك البرمجية. نأمل أن يكون هذا المقال قد قدم لك فهمًا شاملاً لكيفية استخدام PIL لمعالجة الصور في Python.
طور مهاراتك: مقالات يجب قراءتها في البرمجة
- كيفية بناء نموذج تصنيف باستخدام TensorFlow في Python
- كيفية التعامل مع ملفات XML باستخدام مكتبة xml.etree.ElementTree في Python
- كيفية تنفيذ التوازي باستخدام مكتبة multiprocessing في Python
- كيفية كتابة سكربت للتعامل مع API RESTful باستخدام مكتبة requests في Python
- كيفية استخدام مكتبة subprocess لتنفيذ أوامر النظام في Python
- كيفية استخدام مكتبة PyGame لتطوير الألعاب في Python
- كتابة سكربت لتحميل الملفات من الإنترنت باستخدام urllib في Python
- كيفية إنشاء قنوات اتصال باستخدام مكتبة asyncio.Queue في Python
- كيفية استخدام مكتبة boto3 للتفاعل مع خدمات AWS في Python
- كيفية إدارة وتحليل البيانات باستخدام مكتبة Dask في Python