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

ماذا يفعل كل بايت
ملف 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 | الحد الأدنى لحجم رمز LZW | 2، لذا تبدأ الرموز المضغوطة بعرض 3 بت. |
| 02 | حجم الكتلة الفرعية | يليه 2 بايت من البيانات المضغوطة. |
| 44 01 | البكسلات المضغوطة | رموز LZW محزومة بدءًا من البت الأدنى. انظر أدناه كيف يُفك ترميزها. |
| 00 | منهي الكتلة | كتلة فرعية بطول صفر تغلق الكتلة. |
| الخاتمة بايت واحد يشير إلى نهاية الملف. | ||
| 3B | الخاتمة | 0x3B («;») ينهي الملف. |
داخل البايتات المضغوطة
يخزّن كل واحد من ثلاثة بايتات عدة إعدادات صغيرة. البت 7 هو أقصى اليسار.
0x800x010x00كيف يحمل بايتان بكسلًا واحدًا
عندما يكون الحد الأدنى لحجم الرمز 2، يقرأ مفكّك الترميز رموزًا من 3 بتات. الرمز 4 يمسح الجدول، والرمز 5 ينهي الصورة، والرموز من 0 إلى 3 هي مدخلات لوحة الألوان. يُقرأ البايتان 44 01 بدءًا من البت الأدنى:
0x44 010001000x01 00000001
- 001100 = 4مسح: البدء بجدول جديد
- 000000 = 0بكسل: المدخل 0 في لوحة الألوان
- 101101 = 5نهاية الصورة
- 0000000 بتات حشو غير مستخدمة
الصور الأكبر تستخدم الحيلة نفسها: كل رمز جديد يمثل تتابعًا أطول ببكسل واحد من سابقه، لذا فإن GIF شفافًا بحجم 1000×1000 لا يشغل سوى 1,743 بايت.
هل يمكن أن يكون أصغر؟
نعم، إذا حذفت أجزاءً تتحمّل مفكّكات الترميز غيابها. مرّرنا كل نسخة إلى ثلاثة محركات متصفحات وإلى Pillow وسجّلنا ما رسمته.
| الحجم | النسخة | Chromium | Firefox | WebKit | Pillow |
|---|---|---|---|---|---|
| 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. يُنشأ في متصفحك؛ ولا يُرفع أي شيء.
اربطه مباشرةً
اربط هذه الملفات مباشرةً من أي موقع أو بريد إلكتروني أو تطبيق. تُقدَّم من حافة شبكة Cloudflare مع مدد تخزين مؤقت طويلة، وCORS مفتوح للجميع.
- ملف الـ 43 بايت
https://emptygif.com/1x1.gif - أي حجم، شفاف
https://emptygif.com/px/300x250.gif - أي حجم، لون مصمت
https://emptygif.com/px/300x250/ff5a1f.gif - واجهة JSON API: الحجم وbase64 وdata URI
https://emptygif.com/api/gif?w=300&h=250 - كل المقتطفات بصيغة JSON
https://emptygif.com/snippets.json - ملخص لوكلاء الذكاء الاصطناعي
https://emptygif.com/llms.txt
ترويسات الاستجابة
HTTP/2 200
content-type: image/gif
content-length: 43
cache-control: public, max-age=31536000, immutable
access-control-allow-origin: *
cross-origin-resource-policy: cross-origin
timing-allow-origin: *مثال
<img src="https://emptygif.com/1x1.gif" width="1" height="1" alt="">
الأحجام المُنشأة تصل حتى 4096 px لكل ضلع. إذا كانت حركة المرور لديك كثيفة، فنزّل الملف واستضفه بنفسك من فضلك.
قدّمه من بيئتك التقنية
173 مقتطفًا جاهزًا للتشغيل. اختر ما يناسبك: كل مقتطف يستجيب على المسار الذي تختاره باستجابة image/gif. إذا غيّرت الحجم أو اللون أعلاه، فستستخدم المقتطفات ذلك الـ GIF.
JavaScript & TypeScript
Edge & serverless
- Cloudflare Workers
- Cloudflare Workers (Rust, workers-rs)
- Cloudflare Pages Functions
- Deno Deploy (deno serve)
- Vercel Functions
- Netlify Functions
- Netlify Edge Functions
- AWS Lambda (Node.js)
- AWS Lambda (Python)
- AWS Lambda (Go)
- AWS Lambda (Rust, lambda_http)
- AWS Lambda@Edge (CloudFront)
- Google Cloud Run functions (Node.js)
- Google Cloud Run functions (Python)
- Firebase Cloud Functions + Hosting
- Azure Functions (Node.js v4 model)
- Fastly Compute (JavaScript)
Python
JVM
PHP
Elixir, Erlang & Gleam
Functional languages
C, C++ & systems languages
Swift, Dart & other languages
Web servers & proxies
Command line & one-liners
Express JavaScript
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إذا كان يجب أن يصل كل طلب إلى خادمك.