"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية سلسلة صور متعددة أفقيًا في بايثون باستخدام الوسادة؟

كيفية سلسلة صور متعددة أفقيًا في بايثون باستخدام الوسادة؟

تم النشر بتاريخ 2024-11-06
تصفح:752

How to Concatenate Multiple Images Horizontally in Python Using Pillow?

ربط الصور أفقيًا باستخدام Python

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

وصف المشكلة

ضع في اعتبارك ثلاث صور JPEG مربعة بأبعاد 148 × 95. الهدف هو ربط هذه الصور أفقيًا الصور مع تجنب أي صور جزئية في المخرجات الناتجة.

الحل المقترح

يعالج مقتطف التعليمات البرمجية التالي المشكلة:

import sys
from PIL import Image

# Get the images
images = [Image.open(x) for x in ['Test1.jpg', 'Test2.jpg', 'Test3.jpg']]

# Determine the total width and height
widths, heights = zip(*(i.size for i in images))
total_width = sum(widths)
max_height = max(heights)

# Create a new, empty image
new_im = Image.new('RGB', (total_width, max_height))

# Paste the images horizontally
x_offset = 0
for im in images:
    new_im.paste(im, (x_offset, 0))
    x_offset  = im.size[0]

# Save the output image
new_im.save('test.jpg')

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

اعتبارات إضافية

  • يتجنب الكود أبعاد الصورة ذات الترميز الثابت عن طريق حسابها ديناميكيًا.
  • من خلال تحديد الأبعاد في سطر واحد، يمكن تعديلها بسهولة.
  • يقوم المثال المقدم بتسلسل ثلاث صور، ولكن يمكن استخدام الكود لأي عدد من الصور.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3