மிகச் சிறிய டிரான்ஸ்பரன்ட் 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சேர்க்கவும்.