WebP، PNG یا JPG: انتخاب فرمت درست برای تصویر

JPG برای عکس‌هایی است که باید همه‌جا باز شوند، PNG برای پیکسل‌های دقیق، و WebP هر دو کار را در وب با فایل‌های کم‌حجم‌تر انجام می‌دهد.

انتخاب فرمت تصویر به سه سؤال برمی‌گردد: آیا انکودر اجازه دارد جزئیات را دور بریزد؟ آیا تصویر به بخش‌های شفاف نیاز دارد؟ و فایل کجا باز خواهد شد؟ JPG، PNG و WebP هرکدام جواب متفاوتی به این سؤال‌ها می‌دهند. WebP معمولاً بهترین انتخاب برای تصاویر یک وب‌سایت است، اما PNG و JPG هنوز در بعضی جاها برنده‌اند. اگر بدانید کجا، از لوگوهای مات، کادر سفید دور تصاویر دوربری‌شده و فرم‌های آپلودی که فایلتان را قبول نمی‌کنند در امان می‌مانید.

مقایسه فرمت‌ها کنار هم

JPG (JPEG)PNGWebP
فشرده‌سازیبا اتلافبدون اتلافبا اتلاف یا بدون اتلاف
شفافیتندارددارد، با کانال آلفای کاملدارد، در هر دو حالت
انیمیشنندارداز طریق APNGدارد
عمق رنگدر عمل ۸ بیت برای هر کانالتا ۱۶ بیت برای هر کانال۸ بیت برای هر کانال
حداکثر ابعاد۶۵٬۵۳۵ × ۶۵٬۵۳۵ پیکسلبیش از ۲ میلیارد پیکسل در هر ضلع۱۶٬۳۸۳ × ۱۶٬۳۸۳ پیکسل
کجا باز می‌شودتقریباً همه‌جاتقریباً همه‌جاهمه مرورگرهای اصلی فعلی؛ نه هر برنامه یا فرم آپلودی
بهترین کاربردعکس‌هایی که باید همه‌جا کار کننداسکرین‌شات، رابط کاربری، گرافیک با لبه‌های تیزبیشتر تصاویر یک وب‌سایت

با اتلاف و بدون اتلاف: تفاوت واقعی

فشرده‌سازی با اتلاف (lossy) جزئیاتی را که احتمالاً چشم متوجهشان نمی‌شود دور می‌ریزد و تنظیم کیفیت تعیین می‌کند چه مقدار. این روش برای عکس‌ها مناسب است، چون نویز و گرادیان‌ها تغییرات کوچک را پنهان می‌کنند. اما به متن، خطوط نازک و سطوح رنگ یکنواخت آسیب می‌زند؛ لبه‌ها نرم می‌شوند و لکه‌های کم‌رنگ ظاهر می‌شوند. هر بار ذخیره دوباره کمی بیشتر از کیفیت کم می‌کند، پس همیشه از فایل اصلی تبدیل کنید، نه از یک JPG قبلی.

فشرده‌سازی بدون اتلاف (lossless) تک‌تک پیکسل‌ها را دقیقاً حفظ می‌کند. برای اسکرین‌شات، نمودار، پیکسل‌آرت و هر چیزی که دوباره ویرایشش می‌کنید انتخاب درستی است. اما برای یک عکس، فایل بسیار بزرگ‌تری می‌سازد، چون ذخیره دقیق نویز دوربین پرهزینه است.

JPG فقط با اتلاف است و PNG فقط بدون اتلاف. WebP هر دو حالت را در یک فرمت دارد و مزیت عملی اصلی‌اش همین است: یک عکس و یک اسکرین‌شات می‌توانند هر دو WebP باشند و هرکدام به روش مناسب خودش فشرده شود.

WebP چقدر کم‌حجم‌تر است؟

گوگل که این فرمت را توسعه داده، این مقایسه را منتشر کرده است: تصاویر WebP بدون اتلاف ۲۶ درصد کوچک‌تر از PNG هستند و تصاویر WebP با اتلاف در کیفیت SSIM معادل ۲۵ تا ۳۴ درصد کوچک‌تر از JPEGهای مشابه. این‌ها میانگین‌هایی روی تصاویر آزمایشی گوگل‌اند، نه قولی برای تک‌تک فایل‌ها.

نتیجه‌ای که شما می‌گیرید ممکن است بهتر یا بدتر باشد. پرسش‌های متداول WebP گوگل اشاره می‌کند که فایل WebP ممکن است از فایل مبدأ بزرگ‌تر شود؛ معمولاً وقتی یک PNG با تعداد کمی رنگ به WebP با اتلاف تبدیل می‌شود، یا وقتی تصویری که از قبل با اتلاف فشرده شده به شکل WebP بدون اتلاف ذخیره می‌شود. WebP با اتلاف همچنین همیشه از زیرنمونه‌برداری رنگ 4:2:0 استفاده می‌کند، یعنی رنگ را با نصف وضوح افقی و عمودی روشنایی ذخیره می‌کند؛ به همین دلیل لبه‌های قرمز یا آبی اشباع در گرافیک‌ها ممکن است کمی پخش به نظر برسند، در حالی که PNG تیز می‌ماند. روش مطمئن این است که تبدیل کنید و مقایسه کنید: مبدل تصویر حجم اصلی و حجم جدید هر فایل را نشان می‌دهد، تا پیش از نگه داشتن فایل، صرفه‌جویی واقعی را ببینید.

شفافیت و انیمیشن

JPG کانال آلفا ندارد. وقتی یک لوگوی شفاف را به JPG تبدیل می‌کنید، بخش شفاف با یک رنگ یکنواخت پر می‌شود؛ مبدل این سایت از رنگ سفید استفاده می‌کند. PNG کانال آلفای کامل را بدون اتلاف ذخیره می‌کند و همین باعث می‌شود عکس‌های شفاف، مثل عکس‌های دوربری‌شده محصول، حجیم شوند. WebP در حالت با اتلاف هم از آلفا پشتیبانی می‌کند، پس یک عکس دوربری‌شده می‌تواند لبه‌های نرمش را با کسری از حجم PNG حفظ کند. بیشترین صرفه‌جویی تبدیل PNG به WebP دقیقاً در همین حالت است.

در مورد انیمیشن، JPG هیچ پشتیبانی‌ای ندارد، PNG افزونه APNG را دارد و WebP انیمیشن را به‌صورت داخلی پشتیبانی می‌کند. به گفته گوگل، فایل‌های WebP متحرک می‌توانند از همان انیمیشن در قالب GIF یا APNG کوچک‌تر باشند. برای کلیپ‌های طولانی یا پیچیده، یک ویدیوی بی‌صدای MP4 یا WebM معمولاً از هر فرمت تصویری سبک‌تر است.

از کدام فرمت استفاده کنیم

تصویرفرمت مناسبدلیل
عکس‌های وب‌سایتWebP با اتلافکم‌حجم‌ترین گزینه‌ای که پشتیبانی گسترده دارد
عکس برای ایمیل، چاپ یا فرم‌های آپلودJPGدر هر برنامه‌ای باز می‌شود و هر فرمی آن را می‌پذیرد
اسکرین‌شات‌های متنی و طرح‌های رابط کاربریPNG یا WebP بدون اتلافمتن تیز می‌ماند و چیزی پخش نمی‌شود
لوگو و آیکوناگر فایل وکتور دارید SVG، وگرنه PNG یا WebPلبه‌های تیز و شفافیت حفظ می‌شود
عکس محصول با پس‌زمینه شفافWebP با اتلاف همراه با آلفالبه‌های نرم با کسری از حجم PNG
انیمیشن کوتاهWebP متحرک، یا MP4/WebM برای کلیپ‌های طولانی‌تربسیار سبک‌تر از GIF
نسخه‌های اصلی که دوباره ویرایش می‌شوندPNG، یا فایل اصلی دوربینبدون افت کیفیت در ذخیره‌های پیاپی

انتقال تصاویر موجود سریع است: تبدیل JPG به WebP برای عکس‌ها و تبدیل PNG به WebP برای گرافیک‌ها و تصاویر دوربری‌شده. وقتی یک فایل WebP در نرم‌افزارهای قدیمی باز نمی‌شود، تبدیل WebP به JPG مشکل را حل می‌کند، و تبدیل PNG به JPG حجم عکس‌هایی را که اشتباهی به شکل PNG ذخیره شده‌اند کم می‌کند.

پشتیبانی مرورگرها و جایگزین با picture

نسخه‌های فعلی Chrome، Edge، Firefox و Safari همگی WebP را نمایش می‌دهند، پس برای بیشتر سایت‌ها یک فایل WebP در یک <img> معمولی کافی است. اگر باید از مرورگرهای قدیمی هم پشتیبانی کنید، یا می‌خواهید اول یک فرمت جدیدتر را عرضه کنید، از عنصر <picture> استفاده کنید. مرورگر اولین <source> را که نوعش را پشتیبانی می‌کند برمی‌دارد و در غیر این صورت به <img> برمی‌گردد؛ همان تگی که متن alt و ابعاد تصویر را هم در خود دارد:

<picture>
  <source srcset="hero.avif" type="image/avif">
  <source srcset="hero.webp" type="image/webp">
  <img src="hero.jpg" alt="Harbour at sunset" width="1600" height="900">
</picture>

سرور یا CDN هم می‌تواند بدون نشانه‌گذاری اضافه همین کار را انجام دهد: هدر Accept درخواست تصویر را بررسی می‌کند و اگر WebP در آن آمده بود، WebP برمی‌گرداند. اگر این روش را به کار می‌برید، Vary: Accept را هم بفرستید تا کش‌ها نسخه‌ها را از هم جدا نگه دارند.

جایگاه AVIF

AVIF بر پایه کدک ویدیویی AV1 ساخته شده و نسخه‌های فعلی Chrome، Edge، Firefox و Safari از آن پشتیبانی می‌کنند. اغلب در کیفیت بصری مشابه، فایل‌های کوچک‌تری از WebP می‌سازد، اما انکود کردنش کندتر است و ابزارها، ویرایشگرها و فرم‌های آپلود کمتری آن را می‌پذیرند. یک چیدمان رایج این است: اول AVIF، بعد WebP و در آخر JPG، مثل نمونه بالا. مبدل این سایت می‌تواند فایل‌های AVIF را بخواند، به شرطی که مرورگرتان بتواند آن‌ها را رمزگشایی کند، اما خروجی را به شکل WebP، PNG، JPG و ICO می‌نویسد، نه AVIF.

تبدیل در مرورگر: یک نکته درباره Safari

مبدل‌های مبتنی بر مرورگر تصویر را روی یک canvas می‌کشند و از مرورگر می‌خواهند آن را انکود کند. Chrome، Edge و Firefox می‌توانند به این روش WebP بسازند. Safari فایل WebP را نمایش می‌دهد اما نمی‌تواند از روی canvas آن را انکود کند و بی‌سروصدا به‌جایش یک PNG برمی‌گرداند؛ به همین دلیل مبدل این سایت به‌جای ذخیره یک PNG با پسوند .webp، با نمایش یک پیام متوقف می‌شود. روی مک، تبدیل به WebP را در Chrome، Edge یا Firefox انجام دهید. روی آیفون یا آیپد، مرورگرهای دیگر هم معمولاً از موتور Safari استفاده می‌کنند، پس یا روی کامپیوتر تبدیل کنید یا PNG یا JPG را انتخاب کنید.

دو نکته دیگر هم دانستنش مفید است. در Chrome، کیفیت ۱۰۰ یک WebP بدون اتلاف می‌سازد و مقدارهای پایین‌تر WebP با اتلاف؛ ما این را با بررسی فایل‌های انکودشده تأیید کردیم. همچنین انکود کردن از روی canvas فراداده‌ها را کپی نمی‌کند، پس داده‌های EXIF مثل مدل دوربین و موقعیت GPS در فایل تبدیل‌شده نمی‌آیند.

سوالات متداول

آیا WebP از PNG بهتر است؟

برای تصاویری که در وب‌سایت نمایش داده می‌شوند، معمولاً بله: طبق گزارش گوگل، فایل‌های WebP بدون اتلاف به‌طور میانگین ۲۶ درصد کوچک‌تر از PNG هستند و WebP فشرده‌سازی با اتلاف همراه با شفافیت را هم ارائه می‌دهد. PNG را برای نسخه‌های اصلی، برای نرم‌افزارهایی که WebP را نمی‌خوانند و برای معدود تصاویری که WebP آن‌ها بزرگ‌تر درمی‌آید نگه دارید.

آیا WebP از JPG بهتر است؟

در وب معمولاً با همان کیفیت بصری فایل‌های کوچک‌تری می‌دهد؛ گوگل WebP با اتلاف را ۲۵ تا ۳۴ درصد کوچک‌تر از JPEGهای مشابه اندازه گرفته است. JPG همچنان انتخاب مطمئن‌تری برای پیوست ایمیل، چاپ و فرم‌های آپلودی است که فقط JPG یا PNG را می‌پذیرند.

آیا WebP از شفافیت پشتیبانی می‌کند؟

بله، هم در حالت بدون اتلاف و هم در حالت با اتلاف. به همین دلیل جایگزین خوبی برای فایل‌های PNG شفاف و حجیم مثل عکس‌های دوربری‌شده محصول است.

چرا روی آیفون نمی‌توانم به WebP تبدیل کنم؟

Safari می‌تواند WebP را نمایش دهد اما نمی‌تواند از روی canvas فایل WebP بسازد، و مبدل‌های مبتنی بر مرورگر به همین قابلیت متکی‌اند. برای این تبدیل از Chrome، Edge یا Firefox روی کامپیوتر استفاده کنید، یا به‌جای آن به JPG یا PNG تبدیل کنید.