مقاسات واتجاهات
resizethumbnailrotatetranspose
resize() تعطيك المقاس الذي تطلبه بالضبط، أمّا thumbnail() فتصغّر الصورة نفسها مع الحفاظ على نسبتها لتدخل في المربّع. rotate(90, expand=True) تكبّر اللوحة لتتّسع للصورة بعد تدويرها.
# تصغير البطاقة وتدويرها وقلبها، وعرض النتائج جنبًا إلى جنب
from PIL import Image, ImageDraw
import matplotlib.pyplot as plt
card = Image.new("RGB", (600, 400), "#0f766e")
draw = ImageDraw.Draw(card)
draw.ellipse((60, 50, 180, 170), fill="#f5b83d")
draw.ellipse((90, 35, 210, 155), fill="#0f766e")
draw.rectangle((380, 250, 560, 360), fill="#f5b83d")
small = card.resize((card.width // 4, card.height // 4))
square = card.copy()
square.thumbnail((200, 200))
turned = card.rotate(90, expand=True)
mirror = card.transpose(Image.Transpose.FLIP_LEFT_RIGHT)
versions = {"original": card, "resize": small, "thumbnail": square,
"rotate 90": turned, "mirror": mirror}
for title, img in versions.items():
print(f"{title:<10} {img.size}")
fig, axes = plt.subplots(1, 5, figsize=(12, 3))
for ax, (title, img) in zip(axes, versions.items()):
ax.imshow(img)
ax.set_title(title)
ax.axis("off")
plt.show()المخرجات
original (600, 400) resize (150, 100) thumbnail (200, 133) rotate 90 (400, 600) mirror (600, 400)

Matplotlib يمدّ كل صورة لتملأ مربّعها في العرض، فاعتمد على المقاسات المطبوعة لا على حجم الصور على الشاشة.
جرّب أن تغيّر رقمًا أو لونًا في الكود، ثم شغّله من جديد وشاهد ما يتغيّر.▶ افتح المثال في المحرر