الجمعة، 6 ديسمبر 2024

تغيير حجم الصورة باستخدام Pillow (PIL)

 قد يكون تغيير حجم الصورة أمرًا صعبًا، ولكن لحسن الحظ، توفر بايثون حلًا لهذه المشكلة من خلال Pillow، وهو فرع من مكتبة التصوير في (PIL). تدعم Pillow تنسيقات الملفات التالية: JPEG وPNG وTIFF وPPM وGIF وBMP.

Pillow هي مكتبة بايثون مفتوحة المصدر لمعالجة الصور والتلاعب بها. وهي مصممة لتحسين PIL وتوفير طريقة سريعة وسهلة لتطوير تطبيقات التصوير باستخدام بايثون.


كيفية تغيير حجم الصورة باستخدام Pillow (PIL)

للبدء، نستخدم التابع resize تغيير الحجم من مكتبة PIL

بناء الجملة: Image.resize(size, resample=0)

معاملات التابع:

  • Size: يجب أن يكون بالبكسل، على شكل مجموعة (العرض، الارتفاع).
  • Resample: اختياري. يمكن أن يكون أحد PIL.Image.BILINEAR (التدخل الخطي)، أو PIL.Image.NEAREST (استخدام أقرب جار)، أو PIL.Image.LANCZOS (مرشح تقليل العينة عالي الجودة)، أو PIL.Image.BICUBIC (التدخل المكعب المنحني).
  • Return Value: نسخة معدلة الحجم من صورة الإدخال.

تثبيت Pillow

1
pip install Pillow

رغم أنه قد يبدو غير معتاد بالنسبة لك، يتم استيراد مكتبة Pillow باستخدام import PIL.

استيراد الوحدة

نبدأ باستيراد وحدة Pillow، باستخدام الكود:

1
from PIL import Image

حدد وافتح الصورة

الآن نحتاج إلى تمرير الصورة التي نريد تغيير حجمها في كائن Image.open في وحدة PIL.

هنا، يتم تخزين عينة الصورة المستخدمة “img_sample.jpg” في نفس موقع ملف كود بايثون، إذا لم يكن الأمر كذلك، فستحتاج إلى تحديد اسم الملف وموقعه أيضًا مثل – “/images/sample.jpg”

تؤدي هذه الخطوة إلى إنشاء كائن لصورتنا وتحميلها إلى مكتبة Pillow.

1
2
3
# Creating Image Object
  
img = Image.open('img_sample.jpg')

كجزء اختياري، يأتي إلينا عرض الصورة التي مررناها للتو إلى التابع open، باستخدام التابع show() على النحو التالي:

1
2
3
# Display original image
  
img.show()

تؤدي نتيجة طريقة العرض في الكود الخاص بنا إلى صورة العينة أدناه (الصورة الأصلية) –

تغيير حجم الصورة

نستخدم التابع resize() لكائن الصورة الذي أنشأناه في الخطوة السابقة ونمرر البعد (الحجم) المطلوب لصورتنا من حيث – العرض × الارتفاع. يمكن أن تكون قيمة العرض والارتفاع أي شيء حسب اختيار المستخدم.

1
res_img = img.resize((400,300))

لرؤية صورتنا التي تم تغيير حجمها، نستخدم مرة أخرى التابع show() على النحو التالي:

1
2
3
# Display resized image
  
res_img.show()

من أجل حفظ صورتنا التي تم تغيير حجمها، نستخدم التابع save() على كائن الصورة التي تم تغيير حجمها.

ولتحقيق هذه الغاية، نحتاج أيضًا إلى تمرير الاسم الجديد المطلوب لملف الصورة الذي تم تغيير حجمه حديثًا إلى التابع save() كمعلمة.

1
res_img.save('resized_img.jpg')

الصورة النهائية الناتجة، والتي يتم عرضها باستخدام طريقة العرض للصورة التي تم تغيير حجمها هي –

قص الصورة

إذا كنت ترغب في اقتصاص صورة، فيمكنك القيام بذلك باستخدام التابع crop() من مكتبة PIL، والتي تأخذ 4 وسيطات لليسار، والأعلى، واليمين، والأسفل بنفس الترتيب.

1
cropped_img = img_sample.crop((left, top, right, bottom))

نأمل أن تكون قد تعلمت جيدًا كيفية تغيير حجم الصور في بايثون باستخدام مكتبة Pillow (PIL) ويمكنك تنفيذها بسهولة في الكود الخاص بك لتغيير حجم الصور.

ليست هناك تعليقات:

إرسال تعليق

😂11 مكتبة بايثون ممتعة لجعل يومك أفضل☀️

  في هذه المقالة سأقدم لك 11 مكتبة استمتعت باللعب بها وفكرت في مشاركتها معك.