સૌથી નાનો ટ્રાન્સપરન્ટ 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 વપરાયા વગરના પૅડિંગ બિટ
મોટી ઇમેજમાં પણ આ જ યુક્તિ વપરાય છે: દરેક નવો કોડ આગલા કોડ કરતાં એક પિક્સેલ લાંબા રનને દર્શાવે છે, એટલે 1000×1000 નો ટ્રાન્સપરન્ટ GIF ફક્ત 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 ના edge પરથી લાંબા કૅશ સમય સાથે સર્વ થાય છે, અને 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 - AI એજન્ટ્સ માટે સારાંશ
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);
અમે આ સ્નિપેટ ચલાવ્યો અને તેણે પરત કરેલા બાઇટની સરખામણી કરી. પેજ ખોલો
તેનો ઉપયોગ શેના માટે થાય છે
- ટ્રૅકિંગ પિક્સેલ અને બીકન: સર્વર રિક્વેસ્ટ લૉગ કરે છે અને સૌથી નાની માન્ય ઇમેજથી જવાબ આપે છે.
- lazy-load થતી ઇમેજ માટે પ્લેસહોલ્ડર, જેથી અસલી સોર્સ આવે તે પહેલાં પણ
imgટૅગ માન્ય રહે. - HTML ઇમેઇલમાં ફિક્સ્ડ સાઇઝના સ્પેસર, જ્યાં CSS સપોર્ટ અધૂરો હોય છે.
- ટેસ્ટ અને મૉક, જેમને અસલી ઇમેજ જોઈએ છે, પણ ઇમેજ ફાઇલ સાથે રાખ્યા વગર.
ટ્રૅકિંગ પિક્સેલ દેખાય છે એટલા ભરોસાપાત્ર નથી
Mail Privacy Protection ઑન હોય ત્યારે Apple Mail રિમોટ ઇમેજને પ્રૉક્સી દ્વારા પહેલેથી લોડ કરી લે છે, એટલે શક્ય છે કે કોઈ “open” કોઈ વ્યક્તિએ કર્યું જ ન હોય. Gmail પણ ઇમેજ પોતાના પ્રૉક્સી દ્વારા ફેચ કરીને કૅશ કરે છે. ઘણા ક્લાયન્ટ રિમોટ ઇમેજ ડિફૉલ્ટ રીતે બ્લૉક કરે છે. પેજ ઍનાલિટિક્સ માટે ઇમેજને બદલે ઘણી વાર navigator.sendBeacon() અથવા 204 No Content રિસ્પૉન્સ વધુ યોગ્ય રહે છે.
પ્રશ્નો
- તેમાં પિક્સેલ હોવા છતાં તેને empty કેમ કહે છે?
- GIF માં ઓછામાં ઓછો એક પિક્સેલ હોવો જરૂરી છે. આ 1×1 છે અને તેનો એકમાત્ર રંગ ટ્રાન્સપરન્ટ માર્ક કરેલો છે, એટલે કંઈ દેખાતું નથી.
- શું 43 બાઇટની ફાઇલ માન્ય છે?
- હા. તે GIF89a સ્પેસિફિકેશનનું ચોક્કસ પાલન કરે છે, અને ઉપરના ટેબલનું દરેક એન્જિન તેને ટ્રાન્સપરન્ટ ડ્રૉ કરે છે.
- PNG કે WebP ને બદલે GIF કેમ?
- તે સૌથી નાના ટ્રાન્સપરન્ટ PNG કરતાં પણ નાનો છે, અને છેલ્લાં 35 વર્ષનું દરેક બ્રાઉઝર, ઇમેઇલ ક્લાયન્ટ અને ઇમેજ લાઇબ્રેરી તેને વાંચી શકે છે.
- data URI વાપરું કે ફાઇલ?
- data URI એક રિક્વેસ્ટ બચાવે છે અને પ્લેસહોલ્ડર તથા CSS માટે યોગ્ય છે. જ્યારે રિક્વેસ્ટ જ મુખ્ય હેતુ હોય, જેમ કે ટ્રૅકિંગ પિક્સેલમાં, ત્યારે ફાઇલ કે endpoint જોઈએ.
- કયો Content-Type મોકલું?
image/gif. જો દરેક રિક્વેસ્ટ તમારા સર્વર સુધી પહોંચવી જરૂરી હોય, તોCache-Control: no-storeઉમેરો.