تبدیل AVIF به PNG: برای شفافیت، و برای تصویری که قرار است ویرایش شود
فرمت AVIF از شفافیت پشتیبانی میکند و بیشتر مبدلها آن را دور میاندازند. یک لوگو با گوشههای شفاف را به یک ابزار بیدقت بسپارید و یک کادر سفید یا سیاه پشتش تحویل بگیرید. دلیل اصلی انتخاب PNG به جای JPG همین است: PNG کانال آلفای واقعی دارد، پس تصویر بریدهشده آماده به دست شما میرسد تا روی یک اسلاید، یک ماکاپ یا صفحه محصول بنشیند.
دلیل دوم ویرایش است. فشردهسازی PNG بدون اتلاف است، یعنی همان پیکسلهایی را که تحویل گرفته ذخیره میکند و چیز دیگری دور ریخته نمیشود. اگر به جای آن به JPG تبدیل کنید، هر ذخیرهسازی بعدی افت تازهای روی افت قبلی میگذارد. اما اگر تصویر قرار است وارد یک ابزار طراحی شود، یا چند بار آن را برش بزنید و دوباره خروجی بگیرید، PNG در هیچکدام از این رفتوبرگشتها هزینهای روی دست شما نمیگذارد.
آزمون شفافیت، پیکسل به پیکسل
یک فایل AVIF با سه نوار عمودی ساختیم: یکی کاملاً شفاف، یکی دقیقاً نیمهشفاف و یکی کاملاً مات. بعد آن را با همه تنظیمها روی سرور خودمان تبدیل کردیم و خروجی را پیکسل به پیکسل وارسی کردیم.
| تنظیم | ناحیه کاملاً شفاف | ناحیه نیمهشفاف | ناحیه مات |
|---|---|---|---|
| Recommended | شفاف ماند | دقیقاً نیمه ماند | مات ماند |
| Smallest، 64 رنگ | شفاف ماند | دقیقاً نیمه ماند | مات ماند |
| Palette compression خاموش | شفاف ماند | دقیقاً نیمه ماند | مات ماند |
شفافیت جزئی حتی در حالت 64 رنگ هم سالم ماند. همینجاست که بیشتر مبدلها کم میآورند، چون در یک پالت محدود جای روشنی برای آن دیده نمیشود و نتیجه معمول این است که سایه نرم به یک لبه تیز تبدیل شود. اینجا در هیچ تنظیمی چیزی روی یک رنگ پسزمینه ترکیب نمیشود. همان فایل وقتی از مسیر تبدیل AVIF به JPG رد شد، نوار شفافش با یک رنگ یکدست پر شد، چون JPEG اصلاً راهی برای ذخیره شفافیت ندارد.
چرا هیچ درصدی به شما قول نمیدهیم
گزینه Palette compression بهصورت پیشفرض روشن است، چون یک PNG تمامرنگ از یک عکس حجم بزرگی پیدا میکند و فشردهسازی معمولی zlib بهسختی آن را کم میکند. اینکه چقدر صرفهجویی کند کاملاً به خود تصویر بستگی دارد. همان فایل AVIF با ابعاد 1200 در 900 و حجم 21 کیلوبایت روی دیسک را با هر تنظیم تبدیل کردیم:
| تنظیم | پالت | خروجی PNG | چه اتفاقی افتاد |
|---|---|---|---|
| Fast | 256 رنگ | 281 کیلوبایت | نسخه تمامرنگ نگه داشته شد، چون نسخه پالتی بزرگتر درآمد |
| Recommended | 128 رنگ | 223 کیلوبایت | پالت استفاده شد |
| Smallest | 64 رنگ | 197 کیلوبایت | پالت استفاده شد |
| Palette compression خاموش | بدون پالت | 227 کیلوبایت | کاملاً بدون اتلاف و تمامرنگ |
روی این تصویر خاص، پالت تقریباً هیچ صرفهجویی نکرد و در 256 رنگ حتی فایل را بزرگتر میکرد، پس ابزار آن را کنار گذاشت و نسخه تمامرنگ را نگه داشت. اما روی یک لوگوی تخت یا یک اسکرینشات، همین تنظیم میتواند فایل را به کمتر از نصف برساند. به همین دلیل هیچ درصد مشخصی در هیچ جای این صفحه نوشته نشده است. تنها قولی که ارزش دادن دارد همانی است که میتوانیم به آن پایبند بمانیم: همیشه نسخه کوچکتر را تحویل میگیرید و نتیجه به شما میگوید کدام نسخه را گرفتهاید.
انتظار داشته باشید PNG چند برابر AVIF شما باشد
AVIF یک کدک مدرن با اتلاف است و اجازه دارد جزئیاتی را دور بریزد که چشم شما جایشان را خالی نمیبیند. PNG اما موظف است هر پیکسلی را که به آن دادهاند ثبت کند. عکسی که بهصورت AVIF در چند صد کیلوبایت جا میشود، بهصورت PNG تمامرنگ به مگابایت میرسد، و این بهای بدون اتلاف بودن است نه ایراد تبدیل. اگر فایل PNG هنوز برای کار شما سنگین است، احتمالاً تصویر یک عکس است و تبدیل AVIF به JPG پاسخ بهتری برای آن است.
اسکرینشات و متن برنده میمانند
لبههای تیز، متن رابط کاربری و سطوح یکدست رنگی بدترین چیزهایی هستند که JPEG با آنها سر و کار دارد. JPEG با بلوکهای مربعی کوچک کار میکند و دور هر حرف هالهای قابل دیدن باقی میگذارد. PNG همان لبهها را عیناً ذخیره میکند، پس اسکرینشات با متنی به همان وضوح AVIF بیرون میآید. گرافیکهای تخت همان جایی هستند که Palette compression بیشترین سود را میدهد، چون یک اسکرینشات یا یک لوگو واقعاً رنگهای متمایز کمی دارد. برای اسکرینشاتی که گرادیان دارد و بهجای صرفهجویی به اطمینان نیاز دارید، Palette compression را خاموش کنید و همه رنگها را نگه دارید.
پالت را خودتان تعیین کنید
زیر تنظیم فشردهسازی یک فیلد Colours برای تعداد رنگها هست. دست نزنید و هر تنظیم مقدار پیشفرض خودش را به کار میبرد. یا آن را روی هر عددی بین 2 تا 256 بگذارید و دقیقاً همان پالت را بگیرید، که وقتی میخواهید با یک فایل موجود هماهنگ شوید یا یک آیکن را تا آخرین حد فشرده کنید به کار میآید. خاموش کردن کامل Palette compression هم یک PNG تمامرنگ و دقیقاً منطبق بر پیکسل اصلی به شما میدهد.
جهت، رنگ و ابعاد
تگ جهت روی عکس موبایل پیش از نوشتن هر چیزی اعمال و بعد از خروجی پاک میشود، پس تصویر شما صاف میرسد و هیچ نمایشگری آن را بار دوم نمیچرخاند. پروفایل رنگی گستره وسیع Display P3 بهجای حذف شدن داخل PNG جاسازی میشود، و همین فرق میان رنگ درست و آسمانی است که نئونی برمیگردد؛ تنظیم Colour profile هم وقتی مقصد شما پروفایلها را نادیده میگیرد، تبدیل درست به sRGB را انجام میدهد. ابعاد پیکسلی هرگز تغییر نمیکند. این ابزار فرمت را تبدیل میکند، نه اندازه را.
فایلهای تغییر نام یافته و متحرک
فرمت از خود بایتهای فایل خوانده میشود، پس یک AVIF که کسی آن را با نام .jpg ذخیره کرده باز هم درست تبدیل میشود. یک AVIF متحرک اولین فریمش را بهصورت یک تصویر ثابت به شما میدهد و نتیجه هم همین را اعلام میکند. PNG متحرک تولید نمیشود، چون باز کردن یک انیمیشن به صدها فریم تقریباً یکسان آن چیزی نیست که کسی با تبدیل یک فایل دنبالش باشد.
چه چیزی تحویل میگیرید
- پسزمینه شفاف کاملاً دستنخورده، شامل شفافیت جزئی و سایههای نرم
- فشردهسازی بدون اتلاف، پس برش و خروجی گرفتن دوباره در آینده هزینهای ندارد
- هر کدام کوچکتر باشد، نسخه پالتی یا نسخه تمامرنگ، و این تصمیم برای هر فایل جداگانه گرفته میشود
- اندازه پالت دلخواه خودتان هر وقت بخواهید، از 2 تا 256 رنگ
- عکسهای صاف و ایستاده، رنگ گستره وسیع نگهداشته یا در صورت درخواست تبدیلشده به sRGB
- همان ابعاد پیکسلی که با آن شروع کردهاید، هر بار
قدم بعدی چیست؟
تصویر یک عکس معمولی بدون شفافیت است؟ تبدیل AVIF به JPG برای همان تصویر فایلی بهمراتب کوچکتر به شما میدهد.
PNG سنگینتر از انتظارتان درآمد؟ فشردهسازی PNG آن را بیشتر کم میکند بدون اینکه به ابعاد دست بزند.
بعدش میخواهید تصویر را روی یک وبسایت بگذارید؟ تبدیل PNG به WebP شفافیت را نگه میدارد و وزن را برای مرورگر کم میکند.