ماژول Pillow بسیاری از فرمت های رایج مانند JPEG, PNG, GIF را به طور کامل پشتیبانی می کتد به گونه ای که هم می توان فایل را خواند و یا هم بر روی آن فرمت نوشت ولی برخی دیگر را تنها به شیوه تنها خواندنی (Read-Only) پشتیبانی می شوند. دو شکل زیر به ترتیب از سوی چپ به راست، فرمت هایی که به شیوه خواندنی و نوشتی و فرمت های تنها خواندنی پشتیبانی می شوند را فهرست کرده اند. البته برخی دیگر از فایل ها تنها به شیوه نوشتی (Write-Only) پیشتیبانی می شوند که در زیر فهرست شده اند.

  • PALM
  • PDF
  • XV

ذخیره سازی و تبدیل تصویر با Pillow

متد ()save نام متد دیگری از کلاس Image است که یک تصویر را بر روی دیسک ذخیره می کند. پارامتر نخست آن یک رشته که نام یا مسیر یک فایل تصویری با فرمت آن (مانند bmp یا gif یا png) را نشان می دهدو پارامتر دوم آن نیز یک رشته از نام فرمت با حروف بزرگ مانند BMP یا PNG است که فرمت نهایی فایلی را مشخص می کند که می خواهیم روی دیسک نوشته شود.

در کد زیر نخست یک فایل PNG خوانده شده است و سپس به کمک ویژگی info داده هایی درباره آن نمایش داده می شود. این داده ها چیزی بیش از آن سه ویزگی دیگر به نام format و size و mode هستند. سپس به کمک شی image که از متد ()open ساخته شده بود، متد ()save را فراخوانی می کنیم. پارامتر نخست آن نام فایل به همراه مسیری است که می خواهیم فایل در آن نگهداری شود و آرگومان دوم یکی از فرمت های با پشتیبانی کامل (شکل سمت چپ بالا) است که در اینجا BMP را به کار برده ایم.

تغییر اندازه تصویر با Pillow

ویژگی size ابعاد یک تصویر را به گونه تاپل نشان می دهد. متد ()resize برای تغییر بعدهای یک تصویر به کار می رود به گونه ای که می توانید در هر دو راستا (پهنا و درازا) یا در یکی از آن دو تصویر را تغییر اندازه دهید. در کد زیر دو متغیر به نام new_width که برابر با نیمی از پهنای تصویر نخستین است و new_height که برابر با اندازه دارازای تصویر نخستین ساخته ایم. سپس این دو متغیر به گونه یک تاپل (new_width, new_height) به تابع ()resize فرستاده شده است و در پایان تصویر ساخته شده یا بهتر اغست بگوییم تغییر اندازه داده شده که در متغیر new_image است به کمک متد ()show نشان داده می شود.

[image.size[0 همان پهنا (Width) و [image.size[1 همان درازا (Height) تصویر است. در بند ۷ چون باقیمانده تقسیم بر دو برابر با گونه float است، پس یک تبدیل نوع از float به int به کمک متد ()int انجام داده ایم.