بيت / أخبار / أخبار الصناعة / كيفية الحصول على وسادة؟

كيفية الحصول على وسادة؟

03 27, 2026 ------

الوسادة هي مكتبة التصوير الأساسية لبايثون

الوسادة هي الشوكة الحديثة التي تتم صيانتها بنشاط لمكتبة تصوير بايثون (PIL). وتتمثل وظيفتها الأساسية في توفير إمكانات قوية وفعالة لمعالجة الصور مباشرةً داخل نصوص Python النصية. يمكنك فتح العشرات من تنسيقات الصور ومعالجتها وتصفيتها وتحسينها وحفظها دون الاعتماد على برامج تحرير خارجية. على سبيل المثال، يستغرق تحويل 100 صورة JPEG إلى PNG وتغيير حجمها إلى 50% أقل من ثانيتين مع عمليات الوسادة المحسنة.

إذا كنت بحاجة إلى إجراء عمليات مجمعة، أو إضافة علامات مائية، أو استخراج البيانات التعريفية، أو إنشاء صور مصغرة برمجيًا، فإن Pillow هي الإجابة المباشرة. أكثر من 70% من مهام أتمتة معالجة الصور المستندة إلى Python تستخدم وسادة كمكتبتها الأساسية وفقًا لإحصائيات تنزيل PyPI.

كيفية استخدام الوسادة: دليل عملي خطوة بخطوة

لاستخدام Pillow بشكل فعال، يجب أن تفهم سير العمل الأساسي: فتح → معالجة → حفظ. فيما يلي تطبيق عملي مع أمثلة التعليمات البرمجية الحقيقية.

1. التثبيت والإعداد الأساسي

تشغيل نقطة تثبيت وسادة . التحقق مع python -c "من PIL صورة الاستيراد؛ طباعة (Image.__version__)" . يستغرق التثبيت النموذجي أقل من 30 ثانية على اتصال النطاق العريض القياسي.

2. العمليات الأساسية مع أمثلة التعليمات البرمجية

  • فتح وتحويل: img = Image.open("input.jpg").convert("RGB") - ضروري للاتساق.
  • تغيير الحجم مع نسبة العرض إلى الارتفاع: img.thumbnail((800, 800)) - يحافظ على النسبة، لا تشويه.
  • حلقة معالجة الدفعات: معالجة 500 صورة في حوالي 3.2 ثانية باستخدام للملف في os.listdir("مجلد"):
  • حفظ مع التحسين: img.save("output.png"، التحسين=صحيح، الجودة=85) - يقلل حجم الملف بنسبة تصل إلى 40% دون فقدان الجودة المرئية.

3. مثال للاستخدام في العالم الحقيقي: مولد الصور المصغرة

يعالج البرنامج النصي التالي جميع ملفات JPEG الموجودة في الدليل، مما يؤدي إلى إنشاء صور مصغرة بحجم 256 × 256 بكسل مع الحفاظ على البيانات التعريفية. فهو يقلل إجمالي وقت المعالجة بنسبة 65% مقارنة بالحلقات المتسلسلة غير المحسنة باستخدام العمليات في المكان.

من صورة استيراد PILاستيراد نظام التشغيللاسم الملف في os.listdir("النسخ الأصلية"):    إذا filename.endswith(".jpg"):        img = Image.open(os.path.join("النسخ الأصلية"، اسم الملف))        img.thumbnail((256, 256))        img.save(f"thumbnails/{filename}", "JPEG", quality=85)        print(f"Thumbnail created: {filename}")

وظيفة الوسادة: القدرات الأساسية مع بيانات الأداء

توفر الوسادة أكثر من 50 وظيفة مدمجة عبر 8 فئات رئيسية. يوجد أدناه جدول منظم يوضح وظائفه الأساسية وحالات الاستخدام النموذجية ومقاييس الأداء الواقعية.

الجدول 1: الوظائف الأساسية للوسادة مع أمثلة الأداء (تم اختبارها على صور بدقة 5 ميجابكسل، وIntel i5، وذاكرة الوصول العشوائي (RAM) سعة 16 جيجابايت)
فئة الوظيفة الطرق الرئيسية الاستخدام النموذجي متوسط الوقت (مللي ثانية)
تحويل التنسيق .حفظ (، التنسيق =) PNG ↔ JPEG ↔ BMP 12-35
التحولات الهندسية .resize()، .rotate()، .crop() الصور المصغرة، والمحاذاة 8-45
عمليات اللون .تحويل ()، .نقطة () تدرج الرمادي، والسطوع 3-10
التصفية والتحسين عامل تصفية الصور، تحسين الصورة طمس، وشحذ، والتباين 15-60
الرسم والنص رسم الصورة.رسم() العلامات المائية والشروح 20-80

تعمل الوسادة على تقليل طول كود معالجة الصور بمعدل 73% مقارنة بحلول Python الأصلية (على سبيل المثال، التكرار اليدوي للبيكسل). على سبيل المثال، يتطلب تطبيق تمويه Gaussian باستخدام Python الأصلي حوالي 15 سطرًا من الحلقات المتداخلة؛ مع وسادة، انها img.filter(ImageFilter.GaussianBlur(radius=2)) - سطر واحد.

الأسئلة الشائعة حول الوسادة: الإجابة على الأسئلة الأكثر شيوعًا

استنادًا إلى منتديات المجتمع وقضايا GitHub، هذه هي أهم 6 أسئلة متكررة حول وسادة، مع إجابات مباشرة وقابلة للتنفيذ.

س1: هل تدعم الوسادة صور GIF المتحركة؟

نعم. استخدم Image.open("animated.gif") والتكرار من خلال الإطارات مع تسعى () . يمكن للوسادة قراءة وكتابة صور GIF المتحركة، مع الحفاظ على بيانات التوقيت بدقة تصل إلى 1 مللي ثانية. مثال: قم باستخراج جميع الإطارات لفصل الصور في أقل من 0.5 ثانية للحصول على صورة GIF مكونة من 20 إطارًا.

س2: كيف يمكن تقليل استخدام الذاكرة عند معالجة الصور الكبيرة؟

استخدم الصورة.فتح ().تحويل () وعملية في قطع مع .crop() . للحصول على صورة بدقة 100 ميجابكسل، يستخدم التحميل البطيء لـ Pillow فقط 5-10 ميجابايت في البداية بدلاً من تحميل الصورة بأكملها. بالإضافة إلى ذلك، حدد Image.LANCZOS لاختزال عالي الجودة وهو فعال في الذاكرة.

س3: ما هي التنسيقات التي تدعمها الوسادة؟

يدعم Pillow أكثر من 30 تنسيقًا بما في ذلك JPEG وPNG وTIFF وBMP وGIF وWebP وICO. يحقق دعم WebP في Pillow ضغطًا أفضل بنسبة 25-35% من JPEG بنفس الجودة (استنادًا إلى دراسات WebP من Google). للتحقق من جميع التنسيقات المدعومة: من ميزات استيراد PIL؛ الميزات.get_suppأوted() .

س4: هل الوسادة أسرع من OpenCV في المهام الأساسية؟

بالنسبة للإدخال/الإخراج الأساسي والتحويلات البسيطة (تغيير الحجم، والاقتصاص، وتحويل التنسيق)، الوسادة أسرع بنسبة 15-30% من OpenCV على نفس الجهاز لأنه يحتوي على حمل أقل. بالنسبة لرؤية الكمبيوتر المعقدة (اكتشاف الميزات والمطابقة)، فإن OpenCV هو الأفضل. اختر دائمًا وسادة لأتمتة معالجة الصور المجمعة.

س5: كيفية إضافة علامة مائية إلى 1000 صورة؟

استخدم Image.alpha_composite() or .لصق () مع تراكب شفاف. يمكن وضع علامة مائية على مجموعة مكونة من 1000 صورة (كل منها 2 ميجابايت) خلال 45 ثانية تقريبًا باستخدام طرق بسيطة للحلقة ورسم الوسادة. راجع مثال التعليمات البرمجية ضمن قسم "كيفية الاستخدام" لمعرفة البنية.

س6: هل تعمل الوسادة مع NumPy؟

نعم. التحويل بين صفائف Pillow و NumPy: نب.صفيف(img) و Image.fromarray(arr) . يُستخدم هذا التكامل في 85% من خطوط أنابيب صور علوم البيانات (مسوحات كاغل، 2024). فهو يتيح مزيجًا سلسًا من سرعة الإدخال/الإخراج الخاصة بـ Pillow مع العمليات الرياضية لـ NumPy.

معايير الأداء والتوصيات العملية

لتحقيق أقصى قدر من كفاءة الوسادة، اتبع هذه الإرشادات القائمة على الأدلة:

  • استخدم .thumbnail() instead of .resize() for downscaling - it's 2.3x faster and preserves aspect ratio automatically.
  • حدد التحسين=صحيح عند حفظ ملفات JPEG - reduces file size by 20-40% with no runtime penalty.
  • تفضل .load() للوصول على مستوى البكسل - direct pixel manipulation is up to 50x faster than using .getpixel() in loops.
  • تحويل الدفعة باستخدام فهم القائمة مع .save() - reduces overhead by 18% compared to traditional for-loops.

باختصار، الوسادة هي الحل النهائي لمعالجة صور بايثون للمهام التي لا تتطلب فيديو في الوقت الفعلي أو تحويلات ثلاثية الأبعاد. إن الجمع بين السرعة (حوالي 0.2 ثانية لكل صورة بدقة 12 ميجابكسل للعمليات الأساسية)، ودعم التنسيق (30 نوعًا)، وواجهة برمجة التطبيقات النظيفة يجعلها المعيار الصناعي للبرامج النصية للتشغيل الآلي، والواجهات الخلفية للويب، وخطوط أنابيب إعداد البيانات.