پرش به محتوای اصلی

قالب‌های فایل

GIF چیست؟ 256 رنگ، پویانمایی و فشرده‌سازی LZW

GIF از سال 1987 وجود داشته است: به 256 رنگ محدود است، اما به لطف پویانمایی هنوز زنده است. توضیح می‌دهیم چگونه کار می‌کند، چرا فایل‌های حجیم می‌سازد و کی بهتر است فرمت دیگری انتخاب کنید.

نویسنده: Hemen Dönüştür Editör Ekibiتاریخ انتشار: 7 دقیقه مطالعه

تصویر جلد راهنمای فرمت GIF

GIF (Graphics Interchange Format) یکی از قدیمی‌ترین فرمت‌های تصویر در وب است. مدت‌هاست عکس‌ها را به JPG و گرافیک‌ها را به PNG واگذار کرده، اما هنوز برای پویانمایی‌های کوتاه و تکرارشونده نخستین چیزی است که به ذهن می‌رسد. این مقاله توضیح می‌دهد GIF چگونه آغاز شد، فشرده‌سازی و پویانمایی‌اش چگونه کار می‌کند، محدودیت 256 رنگ واقعاً چه معنایی دارد و به‌جای آن چه فرمت‌هایی را می‌توانید در نظر بگیرید.

تاریخچهٔ کوتاه

GIF را CompuServe، یکی از سرویس‌های آنلاین بزرگ آن دوران، توسعه داد. طبق رجیستری PRONOM آرشیو ملی بریتانیا، نخستین نسخه یعنی GIF87a در 15 ژوئن 1987 منتشر شد. نسخهٔ بعدی، GIF89a، نامش را از سال 1989 گرفته است؛ متن مشخصه که PRONOM آن را فهرست کرده و W3C میزبانی‌اش می‌کند، تاریخ 31 ژوئیهٔ 1990 را دارد. نسخهٔ 89a افزونهٔ Graphic Control Extension را اضافه کرد که تأخیر فریم، شفافیت و روش کنار گذاشتن فریم را تعریف می‌کند، همراه با افزونه‌های توضیح، متن ساده و برنامه. GIFهای متحرک امروزی بر پایهٔ همین افزونه‌ها ساخته می‌شوند.

شناخته‌شده‌ترین فصل داستان GIF ماجرای حق ثبت اختراع است. GIF با LZW فشرده می‌شود، الگوریتمی که Unisys حق ثبت اختراعش را داشت. طبق توصیف فرمت در Library of Congress، GIF در سال 1994 بدنام شد، وقتی Unisys برای صدور مجوز LZW شروع به دریافت هزینه کرد. این ماجرا به توسعهٔ PNG به‌عنوان جایگزینی بدون حق ثبت اختراع انجامید. طبق همان منبع، حق ثبت اختراع Unisys در آمریکا در ژوئن 2003 و در اروپا و ژاپن در ژوئن 2004 منقضی شد؛ بنابراین امروز برای استفاده از GIF به هیچ مجوزی نیاز نیست.

GIF چگونه کار می‌کند

پالت و محدودیت 256 رنگ

GIF رنگ هر پیکسل را مستقیم ذخیره نمی‌کند؛ اندیسی به یک جدول رنگ (پالت) ذخیره می‌کند. طبق مشخصه، یک جدول رنگ حداکثر 256 خانه دارد که هر کدام یک رنگ RGB بیست‌وچهاربیتی است. یک جدول سراسری می‌تواند برای کل فایل به کار رود و هر فریم هم می‌تواند جدول محلی خودش را داشته باشد. لوگوها و تصویرسازی‌های کم‌رنگ به‌راحتی در این محدودیت جا می‌شوند، اما عکس‌هایی با هزاران ته‌رنگ وقتی به 256 رنگ کاهش یابند، نوارهای رنگی یا الگوهای پراکنش (dithering) نشان می‌دهند.

فشرده‌سازی LZW

اندیس‌های پیکسل‌ها با LZW بدون اتلاف فشرده می‌شوند که از کدهایی با طول متغیر استفاده می‌کند؛ مشخصه اجازه می‌دهد کدها تا 12 بیت بزرگ شوند. LZW با افزودن دنباله‌های تکراری پیکسل‌ها به یک واژه‌نامه کار می‌کند، بنابراین در نواحی بزرگ و یکدست رنگی خوب و در عکس‌های پرنویز ضعیف عمل می‌کند.

شفافیت

در GIF89a، افزونهٔ Graphic Control Extension می‌تواند یک رنگ از پالت را «شفاف» علامت بزند. این شفافیتی روشن/خاموش (دودویی) است: یک پیکسل یا کاملاً دیده می‌شود یا کاملاً شفاف است. به همین دلیل سایه‌های نیمه‌شفاف و لبه‌های نرم در GIF دندانه‌دار دیده می‌شوند و «هالهٔ» روشن دور لبه‌ها روی پس‌زمینهٔ رنگی چنین مشکل رایجی است.

پویانمایی

GIF متحرک دنباله‌ای از فریم‌ها در یک فایل واحد است. Graphic Control Extension هر فریم تعیین می‌کند که چه مدت، بر حسب صدم ثانیه، روی صفحه بماند و ناحیهٔ آن پیش از فریم بعدی چگونه پاک شود. اطلاعات تکرار در یک افزونهٔ برنامه نگه داشته می‌شود. درهم‌بافی اختیاری اجازه می‌دهد تصویر هنگام بارگذاری کم‌کم ظاهر شود.

روش‌های کنار گذاشتن فریم

مشخصه چهار مقدار تعریف می‌کند که نشان می‌دهند پس از نمایش یک فریم با ناحیهٔ آن چه شود: روشی تعیین نشده، فریم سر جایش بماند، ناحیه به رنگ پس‌زمینه برگردد و ناحیه به حالت پیش از آن برگردد. در پویانمایی‌هایی که خوب ساخته شده‌اند فقط ناحیه‌ای که تغییر می‌کند به‌عنوان فریم جدید نوشته می‌شود و بقیه از فریم قبلی منتقل می‌شود؛ همین است که فایل را کوچک نگه می‌دارد. به همین دلیل ابزارهایی که GIF را ویرایش می‌کنند باید روی تصاویر کاملی کار کنند که با این قواعد ترکیب شده‌اند، نه روی تک‌تک فریم‌های خام.

GIF چقدر رایج است؟

داده‌های W3Techs در اکتبر 2026 نشان می‌دهد GIF در 13.2% از وب‌سایت‌هایی که پایش می‌کند به کار می‌رود. طبق Web Almanac 2024 از HTTP Archive، 16.8% از تصاویر صفحه‌های موبایل GIF هستند؛ گزارش می‌گوید 32% از این GIFها متحرک‌اند. همچنین یادآوری می‌کند که حدود 6% از کل درخواست‌های تصویر، تصاویر 1x1 پیکسلی هستند که به احتمال زیاد بیکن‌های ردیابی و GIFهای فاصله‌گذار (spacer) هستند؛ بنابراین سهم بالای GIF فقط از پویانمایی‌ها نمی‌آید.

از نظر کارایی، GIF بسیار عقب است. همین گزارش میانهٔ GIF را 6.7 بیت به ازای هر پیکسل اعلام می‌کند، در برابر 3.8 برای PNG، 2.0 برای JPEG و 1.3 برای WebP. برای GIFهای متحرک، میانه به 32.6 بیت می‌رسد، در حالی که GIFهای ثابت در 3.5 بیت می‌مانند.

چه چیزی می‌تواند جایگزین GIF شود؟

راهنمای فرمت‌های تصویر MDN، GIF را انتخاب خوبی برای تصاویر و پویانمایی‌های ساده می‌داند، اما برای تصاویر ثابت بدون اتلاف و اندیس‌دار PNG و برای دنباله‌های پویانمایی WebP، AVIF یا APNG را پیشنهاد می‌کند. برای پویانمایی‌های طولانی یا ساخته‌شده از تصاویر واقعی، ویدیو بسیار کارآمدتر است: در مثال web.dev، یک GIF با حجم 3.7 MB به صورت MP4 به 551 KB و به صورت WebM به 341 KB کاهش می‌یابد.

نیازپیشنهاد
لوگوی ثابت، آیکون، گرافیک با رنگ‌های تختPNG یا SVG
پویانمایی کوتاه با رنگ‌های کم (مانند نشانگر بارگذاری)GIF، APNG یا WebP متحرک
پویانمایی ساخته‌شده از فیلم ویدیویی یا ضبط صفحهویدیوی MP4 یا WebM بی‌صدا و تکرارشونده
پویانمایی‌ای که باید همه‌جا پخش شود (ایمیل، پیام‌رسان)GIF؛ همچنان فرمتی با گسترده‌ترین سازگاری

برنامه‌های ایمیل و برخی پیام‌رسان‌ها ویدیو پخش نمی‌کنند یا WebP متحرک را نشان نمی‌دهند. همین سازگاری همه‌جانبه دلیل واقعی دوام GIF در بیش از سه دهه است.

مشکلات رایج

GIF بیش از حد حجیم است

تعداد فریم‌ها، ابعاد پیکسلی و میزان حرکت همگی مستقیماً حجم فایل را بالا می‌برند. کوچک کردن ابعاد، برش فریم‌ها یا جدا کردن بخشی کوتاه مؤثرترین راه‌حل‌ها هستند؛ برای کلیپ‌های طولانی، رفتن به سراغ ویدیو انتخاب بهتری است.

رنگ‌ها نواری یا نقطه‌نقطه دیده می‌شوند

این نتیجهٔ طبیعی محدودیت 256 رنگ است. شیب‌های رنگی نرم مانند آسمان یا رنگ پوست بیشترین آسیب را می‌بینند. برای محتوای شبه‌عکس، به‌جای GIF از JPG، WebP یا ویدیو استفاده کنید.

دور لبه‌ها هالهٔ سفید هست

چون GIFهای شفاف نمی‌توانند نیمه‌شفاف باشند، تصویری که روی پس‌زمینهٔ روشن آماده شده، وقتی روی پس‌زمینهٔ تیره قرار بگیرد ته‌رنگ‌های میانی لبه‌هایش را نشان می‌دهد. برای تصاویر شفاف با لبه‌های نرم از PNG یا WebP استفاده کنید.

پویانمایی پس از تبدیل متوقف شد

PNG و JPG پویانمایی را حمل نمی‌کنند، بنابراین GIF متحرکی که به هر یک از این دو تبدیل شود فقط یک فریم نگه می‌دارد.

نکته‌هایی برای کار با GIF

  • برای گرفتن یک تصویر ثابت، از تبدیل GIF به PNG استفاده کنید. نخستین فریم GIF همراه با شفافیتش به صورت PNG بدون اتلاف ذخیره می‌شود.
  • برای کوچک کردن ابعاد یک GIF متحرک، از ابزار تغییر اندازهٔ تصویر استفاده کنید. GIFهای متحرک هنگام تغییر اندازه همهٔ فریم‌ها و زمان نمایش آن‌ها را نگه می‌دارند (تا 600 فریم).
  • برای برش یک پویانمایی، ابزار برش تصویر همان برش را روی همهٔ فریم‌ها اعمال می‌کند و زمان‌بندی فریم‌ها را حفظ می‌کند.
  • برای کاهش حجم فایل، ابزار فشرده‌سازی تصویر GIFهای متحرک را با همهٔ فریم‌هایشان به صورت GIF نگه می‌دارد، در حالی که GIFهای ثابت را به‌طور پیش‌فرض برای کوچک‌تر شدن به WebP تبدیل می‌کند.
  • برای تبدیل تصویری دیگر به GIF، در مبدل تصویر GIF را به‌عنوان مقصد انتخاب کنید. خروجی یک فریم با حداکثر 256 رنگ است و نواحی نیمه‌شفاف به شفافیت روشن/خاموش کاهش می‌یابند.
  • همهٔ این کارها در مرورگر شما انجام می‌شود، بنابراین فایل‌هایتان هرگز از دستگاه شما خارج نمی‌شوند.

پرسش‌های متداول

آیا GIF با اتلاف است؟

فشرده‌سازی LZW بدون اتلاف است. اما تبدیل یک تصویر تمام‌رنگ به GIF مستلزم کاهش آن به 256 رنگ است و اتلاف در همین مرحلهٔ کاهش رنگ رخ می‌دهد.

آیا میان GIF و GIF متحرک تفاوتی هست؟

فرمت یکی است. GIF تک‌فریمی ثابت است و GIF چندفریمی متحرک. تأخیر فریم‌ها و اطلاعات تکرار در افزونه‌هایی درون فایل ذخیره می‌شوند.

چرا هنوز از GIF استفاده می‌شود؟

چون تقریباً همه‌جا بدون هیچ تنظیمی پخش می‌شود: در مرورگرها، برنامه‌های ایمیل، پیام‌رسان‌ها و نرم‌افزارهای قدیمی. جایگزین‌های کارآمدتر هنوز در همهٔ محیط‌ها چنین سازگاری‌ای ندارند.

آیا تبدیل GIF به MP4 منطقی است؟

اگر آن را در وب‌سایت خودتان نمایش می‌دهید، معمولاً بله. در مثال web.dev نسخه‌های ویدیویی تقریباً یک‌هفتم تا یک‌دهم حجم GIF را دارند. ویدیویی که با ویژگی‌های autoplay، loop، muted و playsinline پخش شود، در صفحه درست مثل یک GIF رفتار می‌کند.

یک GIF چند رنگ می‌تواند داشته باشد؟

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

منابع

مبدل‌های مرتبط

همه مقاله‌ها