PNG متحرک (.apng)
W3C استانداردفرمت گرافیک شبکه قابل حمل متحرک (APNG) فرمت PNG استاندارد را گسترش میدهد تا از انیمیشنهای چند فریم با رنگهای تمام ۲۴ بیتی Truecolor و شفافیت آلفای ۸ بیتی پشتیبانی کند و با رمزگشاهای استاندارد PNG سازگار است.
تبدیل APNG به GIF
مبدل رایگان APNG به GIF درون مرورگر. فایلها را فورا روی دستگاه خود تبدیل کنید.
بررسی و فراداده
سیستمعاملها و تحلیلگرهای فایل، فایلهای APNG را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای هدر در سطح بایت (Magic Bytes)
سیستمعاملها و تحلیلگرهای فایل، فایلهای APNG را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای HEX (آفست 0):
89 50 4E 47 0D 0A 1A 0Aنمایش ASCII: ‰PNG....
استانداردسازی: W3C Community Group Report (2021) / Mozilla Extension
مشخصات فنی
| معماری کانتینر | PNG chunk stream with acTL (animation control), fcTL (frame control), and fdAT (frame data) chunks |
| فشردهسازی | Deflate (zlib) sliding-window LZ77 with 2D adaptive filtering applied per-frame |
| ترتیب بایتها (Endianness) | Big-Endian (network byte order) |
| فضاهای رنگی | sRGB, Display P3, Embedded ICC Profile (iCCP) |
| کانالها و ساختار | RGBA (8-bit or 16-bit per channel Truecolor + 8-bit alpha) |
| حداکثر ابعاد | 2,147,483,647 x 2,147,483,647 pixels (PNG 31-bit limit) |
| شفافیت مشخصات | Full 8-bit alpha channel transparency (256 levels of smooth translucency) |
| استریمینگ و پیشرونده | Progressive chunk streaming; renders first frame immediately on legacy non-animated PNG parsers |
ماتریس مقایسه فنی: APNG در برابر رقبا
| ویژگی فنی | APNG (فعلی) | GIF | WEBP | AVIF |
|---|---|---|---|---|
| عمق رنگ | ۲۴ بیتی RGB (۱۶.۷ میلیون رنگ) | ۸ بیتی ایندکس شده (۲۵۶ رنگ) | ۲۴ بیتی RGB (۱۶.۷ میلیون رنگ) | ۱۰ بیتی / ۱۲ بیتی HDR |
| شفافیت آلفا | آلفای روان ۸ بیتی (۲۵۶ سطح) | ماسک باینری روشن/خاموش ۱ بیتی | آلفای روان ۸ بیتی | آلفای روان ۸ بیتی / ۱۰ بیتی |
| سازگاری عقبگرد | نمایش به عنوان PNG ایستا در نمایشگرهای قدیمی | GIF قدیمی جهانی | هیچکدام در نمایشگرهای قدیمی | هیچکدام در نمایشگرهای قدیمی |
| کارایی فشردهسازی | Deflate (متوسط) | LZW (ضعیف) | فریمهای کلیدی/تفاضلی VP8 (بالا) | بین فریم AV1 (بسیار بالا) |
حالتهای رایج خرابی و راهنمای بازیابی هگز
انیمیشن فقط فریم اول را پخش میکند و هرگز تکرار یا پیشروی نمیکند.
علت ریشهای: قطعه (chunk) کنترل انیمیشن 'acTL' گم شده یا خراب است که قبل از اولین قطعه IDAT قرار دارد.
بازیابی: بازسازی فریمها با استفاده از apngasm یا مبدل انیمیشن File2File برای ساخت مجدد قطعات کنترل انیمیشن معتبر.
تحلیل امنیتی و بردارهای حمله تجزیهکننده (Parser)
تجزیهکنندههای APNG قطعات کنترل فریم تکراری را پردازش میکنند که در آنها ابعاد بدست آمده غیرمعتبر میتواند باعث سرریز عدد صحیح یا اتمام حافظه پشته (Heap) شود.
بردارهای حمله شناختهشده
- سرریز عدد صحیح در محاسبه افست فریم (x_offset / y_offset) که منجر به ترکیب فریم خارج از محدوده میشود.
- عرض/ارتفاع ناسازگار فریم که منجر به خواندن بیش از حد بافر در طول ترکیب فریم میشود.
- حلقههای فشردهزدایی انیمیشن بینهایت که باعث اتمام CPU در خدمات تولید بندانگشتی (thumbnail) بکاند میشود.
بهترین روشهای پدافندی:
تاریخچه و نقاط عطف
مزایا و نقاط قوت کلیدی
- رنگ کامل ۲۴ بیتی RGB به همراه شفافیت آلفای ۸ بیتی، که به طور کامل آرتیفکتهای لبهدار شفافیت ۱ بیتی GIF را از بین میبرد.
- سازگاری عقبگرد ۱۰۰ درصدی با رمزگشاهای قدیمی PNG (که فریم اصلی پشتیبان را به طور یکپارچه نمایش میدهند).
- پخش بومی شتابدفته سختافزاری جهانی در تمام مرورگرهای مدرن دسکتاپ، iOS و اندروید.
محدودیتها و معایب فنی
- حجم فایلهای بزرگتر نسبت به فرمتهای انیمیشن مبتنی بر ویدیوی مدرن مانند WebM یا MP4.
- پیچیدگی رمزگذاری بالاتر و مصرف CPU بیشتر در طول تولید در مقایسه با فرمت قدیمی GIF.
- عدم وجود پیشبینی بردار حرکت بین فریم که در کدکهای ویدیویی تخصصی یافت میشود.
نکات فنی جالب
- گروه توسعه رسمی PNG در سال ۲۰۰۷، فرمت APNG را رد کرد و فرمت جداگانه MNG را ترجیح داد که در نهایت نتوانست پذیرش عمومی کسب کند.
- اپل از APNG برای استیکرهای متحرک در فروشگاه اپلیکیشن پیامرسان iOS 10 استفاده کرد که باعث پذیرش گسترده در موبایل شد.
- اگر یک فایل APNG را در یک نمایشگر تصویر قدیمی متعلق به دهه ۱۹۹۰ باز کنید، بدون کرش کردن، صرفاً فریم اول را نمایش میدهد.
سوالات فنی متداول
چرا فرمت APNG از GIF بهتر است؟
فرمت APNG از ۱۶.۷ میلیون رنگ و ۲۵۶ سطح شفافیت آلفای روان پشتیبانی میکند، در حالی که GIF به ۲۵۶ رنگ و شفافیت سخت ۱ بیتی محدود شده است.
آیا همه مرورگرها از APNG پشتیبانی میکنند؟
بله. هر مرورگر مدرنی (کروم، سافاری، فایرفاکس، اج) از سال ۲۰۱۷ به طور بومی از APNG پشتیبانی میکند.
آیا میتوانم یک APNG را به یک فایل استاندارد GIF یا MP4 تبدیل کنم؟
بله. سایت File2File.app میتواند انیمیشنهای APNG را مستقیماً در مرورگر وب شما به فایلهای سبک وزن GIF، MP4 یا WebM تبدیل کند.
جفتهای تبدیل مرتبط با APNG
تبدیل فایلهای APNG به GIF متحرک، کیفیت تصویر را به ۲۵۶ رنگ کاهش میدهد اما پخش آن را در مرورگرهای وب قدیمیتر و برنامههای پیامرسان تضمین میکند.
تبدیل فایل GIF متحرک به APNG، انیمیشنهای شطرنجی قدیمی ۲۵۶ رنگ را به یک توالی رنگی واقعی و مدرن با قابلیت شفافیت روان ارتقا میدهد.