emptygif
اللغة: العربية

أصغر ملف GIF شفاف حجمه 43 بايت.

هذا هو الملف كاملًا. اختر أي بايت لترى وظيفته، ثم انسخ الملف أو نزّله أو اربطه مباشرةً أو قدّمه من شيفرتك.

ملف GIF ذو الـ 43 بايت مكبَّرًا: بكسل شفاف واحد
0000
0010
0020
تنزيل 1×1.gif

R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

ماذا يفعل كل بايت

ملف GIF هو تسلسل من الكتل. في هذا الملف سبع كتل، وكل لون في هذه الصفحة يخص إحداها. اختر بايتًا أو كتلة لقراءتها. تُخزَّن الأعداد بترتيب little-endian: البايت الأدنى يأتي أولًا، لذا فإن 01 00 تعني 1.

البايتاتالحقلالمعنى
الترويسة تخبر مفكّك الترميز أن هذا ملف GIF وأي إصدار من الصيغة يتوقع.
47 49 46التوقيعأحرف ASCII «GIF». يبدأ بها كل ملف GIF.
38 39 61الإصدار«89a». الإصدار 89a لازم للشفافية؛ أما 87a فلا يحتوي على امتداد التحكم الرسومي.
واصف الشاشة المنطقية حجم اللوحة وطريقة إعداد جدول ألوانها.
01 00عرض اللوحة1 px.
01 00ارتفاع اللوحة1 px.
80الأعلام المضغوطةأربعة إعدادات محشورة في بايت واحد. البت الأعلى يشير إلى أن جدول ألوان عامًا يليه؛ وآخر ثلاثة بتات تحدد حجمه.
00فهرس لون الخلفيةالمدخل 0 في لوحة الألوان. تتجاهله المتصفحات وتعرض ما خلف الصورة.
00نسبة أبعاد البكسلالقيمة 0 تعني بكسلات مربعة بلا تصحيح.
جدول الألوان العام لوحة الألوان. تخزّن البكسلات فهرسًا في هذه القائمة بدلًا من اللون نفسه.
FF FF FFمدخل لوحة الألوانالأحمر والأخضر والأزرق، بايت لكل منها: #ffffff. مدخلان هما أصغر جدول يمكن أن يحتويه GIF.
00 00 00مدخل لوحة الألوانالأحمر والأخضر والأزرق، بايت لكل منها: #000000. مدخلان هما أصغر جدول يمكن أن يحتويه GIF.
امتداد التحكم الرسومي كتلة اختيارية أُضيفت في GIF89a. هنا تجعل المدخل 0 في لوحة الألوان شفافًا.
21مقدّمة الامتداد0x21 («!») تعلن عن كتلة امتداد.
F9وسم التحكم الرسومي0xF9 تعني أن هذا الامتداد هو امتداد تحكم رسومي.
04حجم الكتلةيليه 4 بايت من الإعدادات.
01الأعلام المضغوطةالبت الأدنى هو علم الشفافية. وهو مفعّل، لذا يُستخدم فهرس الشفافية أدناه.
00 00التأخير0 جزء من مئة من الثانية. لا يهم إلا في الرسوم المتحركة.
00فهرس اللون الشفافيُرسم المدخل 0 في لوحة الألوان شفافًا تمامًا.
00منهي الكتلةكتلة فرعية بطول صفر تغلق الكتلة.
واصف الصورة موضع الصورة على اللوحة وحجمها.
2Cفاصل الصورة0x2C («,») يبدأ صورة.
00 00اليسارتبدأ الصورة على بعد 0 px من الحافة اليسرى للوحة.
00 00الأعلىتبدأ الصورة على بعد 0 px من الحافة العليا للوحة.
01 00عرض الصورة1 px.
01 00ارتفاع الصورة1 px.
00الأعلام المضغوطةلا جدول ألوان محليًا، ولا تشابك. تستخدم الصورة لوحة الألوان العامة.
بيانات الصورة البكسلات مضغوطة بـ LZW ومقسّمة إلى كتل فرعية لا يتجاوز كل منها 255 بايت.
02الحد الأدنى لحجم رمز LZW2، لذا تبدأ الرموز المضغوطة بعرض 3 بت.
02حجم الكتلة الفرعيةيليه 2 بايت من البيانات المضغوطة.
44 01البكسلات المضغوطةرموز LZW محزومة بدءًا من البت الأدنى. انظر أدناه كيف يُفك ترميزها.
00منهي الكتلةكتلة فرعية بطول صفر تغلق الكتلة.
الخاتمة بايت واحد يشير إلى نهاية الملف.
3Bالخاتمة0x3B («;») ينهي الملف.

داخل البايتات المضغوطة

يخزّن كل واحد من ثلاثة بايتات عدة إعدادات صغيرة. البت 7 هو أقصى اليسار.

واصف الشاشة المنطقية 0x80
1يوجد جدول ألوان عام
000دقة الألوان
0لوحة الألوان مرتبة حسب الأهمية
000حجم الجدول: 2^(n+1) مدخل
امتداد التحكم الرسومي 0x01
000محجوز
000طريقة التخلص
0انتظار إدخال المستخدم
1الشفافية مفعّلة
واصف الصورة 0x00
0يوجد جدول ألوان محلي
0متشابك
0لوحة الألوان مرتبة حسب الأهمية
00محجوز
000حجم الجدول المحلي

كيف يحمل بايتان بكسلًا واحدًا

عندما يكون الحد الأدنى لحجم الرمز 2، يقرأ مفكّك الترميز رموزًا من 3 بتات. الرمز 4 يمسح الجدول، والرمز 5 ينهي الصورة، والرموز من 0 إلى 3 هي مدخلات لوحة الألوان. يُقرأ البايتان 44 01 بدءًا من البت الأدنى:

0x44 010001000x01 00000001

  1. 001100 = 4مسح: البدء بجدول جديد
  2. 000000 = 0بكسل: المدخل 0 في لوحة الألوان
  3. 101101 = 5نهاية الصورة
  4. 0000000 بتات حشو غير مستخدمة

الصور الأكبر تستخدم الحيلة نفسها: كل رمز جديد يمثل تتابعًا أطول ببكسل واحد من سابقه، لذا فإن GIF شفافًا بحجم 1000×1000 لا يشغل سوى 1,743 بايت.

هل يمكن أن يكون أصغر؟

نعم، إذا حذفت أجزاءً تتحمّل مفكّكات الترميز غيابها. مرّرنا كل نسخة إلى ثلاثة محركات متصفحات وإلى Pillow وسجّلنا ما رسمته.

الحجمالنسخةChromiumFirefoxWebKitPillow
43الملف القياسي في هذه الصفحة.شفافشفافشفافشفاف
42بلا بايت الخاتمة. تتوقف مفكّكات الترميز عند نهاية البيانات على أي حال.شفافشفافشفافشفاف
37بلا لوحة ألوان إطلاقًا. لا يزال صالحًا: تسمح المواصفة لمفكّكات الترميز باستخدام لوحة ألوانها الخاصة، والفهرس 0 شفاف على أي حال.شفافشفافشفافشفاف
36بلا لوحة ألوان وبلا خاتمة.شفافشفافشفافشفاف
35بلا كتلة شفافية: يُرسم البكسل بلون المدخل 0 في لوحة الألوان، أي الأبيض.أبيضأبيضأبيضأبيض
35صيغة عام 1987. لا توجد فيها طريقة لتعليم لون ما بأنه شفاف.أبيضأبيضأبيضأبيض
34كتلة شفافية لكن بلا بكسلات مضغوطة.شفافشفافشفافخطأ
33مثل السابق لكن بلا خاتمة.شفافشفافشفافخطأ
29بلا لوحة ألوان وبلا شفافية. كل محرك يختار لونه الخاص.أسودأبيضشفافأسود
26صورة بلا أي بيانات مضغوطة.شفافشفافشفافخطأ
14الترويسة وحجم اللوحة والخاتمة فقط. لا توجد فيه صورة.شفافخطأشفافخطأ

استخدم 43 بايت حين يجب أن يعمل الملف في كل مكان. ملف 37 بايت لا يزال GIF صالحًا وكان شفافًا في كل محرك اختبرناه. وما دون ذلك يعتمد على تساهل مفكّك الترميز، وملف 29 بايت يُظهر كيف تختلف المحركات.

فُحص بتاريخ 23 سبتمبر 2026 باستخدام Chromium 153.0.8010.12, Firefox 155.0, WebKit 26.6, Pillow 12.2.0.

أنشئ واحدًا بأي حجم

شفاف أو بلون مصمت، من 1×1 حتى 65535×65535. يُنشأ في متصفحك؛ ولا يُرفع أي شيء.

التعبئة
أحجام شائعة

1×1 · 43 بايت

تنزيل GIF

قدّمه من بيئتك التقنية

173 مقتطفًا جاهزًا للتشغيل. اختر ما يناسبك: كل مقتطف يستجيب على المسار الذي تختاره باستجابة image/gif. إذا غيّرت الحجم أو اللون أعلاه، فستستخدم المقتطفات ذلك الـ GIF.

Elixir, Erlang & Gleam

Express JavaScript

التثبيت
npm i express
الملف
server.mjs
التشغيل
node server.mjs
import express from 'express';

const GIF = Buffer.from('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', 'base64');

const app = express();

app.get('/pixel.gif', (req, res) => {
  res.set('Cache-Control', 'no-store');
  res.type('gif').send(GIF);
});

app.listen(8080);

شغّلنا هذا المقتطف وقارنّا البايتات التي أعادها. فتح الصفحة

فيمَ يُستخدم

  • بكسلات التتبع والإشارات (beacons): يسجّل الخادم الطلب ويرد بأصغر صورة صالحة.
  • عناصر نائبة للصور ذات التحميل الكسول، كي يكون وسم img صالحًا قبل وصول المصدر الحقيقي.
  • فواصل بحجم ثابت في رسائل البريد الإلكتروني بصيغة HTML، حيث دعم CSS متقطع.
  • الاختبارات والنماذج الوهمية (mocks) التي تحتاج إلى صورة حقيقية دون إرفاق ملف صورة.

بكسلات التتبع أقل موثوقية مما تبدو

يحمّل Apple Mail الصور البعيدة مسبقًا عبر وكيل عند تفعيل ميزة Mail Privacy Protection، لذا قد لا يكون «الفتح» صادرًا عن شخص أصلًا. ويجلب Gmail أيضًا الصور عبر وكيله الخاص ويخزّنها مؤقتًا. وكثير من برامج البريد تحظر الصور البعيدة افتراضيًا. لتحليلات الصفحات، غالبًا ما يكون navigator.sendBeacon() أو استجابة 204 No Content أنسب من صورة.

أسئلة

لماذا يُسمى فارغًا وفيه بكسل؟
يجب أن يحتوي ملف GIF على بكسل واحد على الأقل. هذا الملف بحجم 1×1 ولونه الوحيد معلَّم بأنه شفاف، فلا يظهر شيء.
هل ملف الـ 43 بايت صالح؟
نعم. يتبع مواصفة GIF89a بدقة، وكل محرك في الجدول أعلاه يرسمه شفافًا.
لماذا GIF وليس PNG أو WebP؟
لأنه أصغر من أصغر PNG شفاف، ويمكن قراءته في كل متصفح وبرنامج بريد ومكتبة صور من السنوات الـ 35 الماضية.
هل أستخدم data URI أم ملفًا؟
يوفّر data URI طلبًا ويناسب العناصر النائبة وCSS. أما الملف أو نقطة النهاية فمطلوبان حين يكون الطلب نفسه هو الغاية، كما في بكسلات التتبع.
ما قيمة Content-Type التي يجب إرسالها؟
image/gif. أضف Cache-Control: no-store إذا كان يجب أن يصل كل طلب إلى خادمك.