GIF transparan paling cilik ukurane 43 byte.
Iki kabeh isine. Pilih byte endi wae kanggo ndeleng gunane, banjur salin file-ne, undhuh, hotlink, utawa sajikake saka kodemu dhewe.

Gunane saben byte
GIF iku urutan blok. File iki duwe pitung blok, lan saben werna ing kaca iki nandhani salah siji blok kasebut. Pilih byte utawa blok kanggo maca. Angka disimpen little-endian: byte sing endhek (low byte) ana ing ngarep, dadi 01 00 tegese 1.
| Byte | Field | Teges |
|---|---|---|
| Header Ngandhani decoder yen iki GIF lan versi format endi sing dienggo. | ||
| 47 49 46 | Signature | Aksara ASCII “GIF”. Saben file GIF diwiwiti nganggo aksara iki. |
| 38 39 61 | Versi | “89a”. 89a dibutuhake kanggo transparansi; 87a ora duwe ekstensi kontrol grafis. |
| Deskriptor layar logis Ukuran kanvas lan carane tabel wernane disetel. | ||
| 01 00 | Ambane kanvas | 1 px. |
| 01 00 | Dhuwure kanvas | 1 px. |
| 80 | Flag gabungan | Papat setelan dipadhetake ing siji byte. Bit paling dhuwur nuduhake yen tabel werna global bakal nyusul; telung bit pungkasan nemtokake ukurane. |
| 00 | Indeks werna latar | Entri palet 0. Browser ora nggatekake lan nuduhake apa sing ana ing mburi gambar. |
| 00 | Rasio aspek piksel | 0 tegese piksel kothak, tanpa koreksi. |
| Tabel werna global Palet. Piksel nyimpen indeks menyang dhaptar iki, dudu werna. | ||
| FF FF FF | Entri palet | Abang, ijo lan biru, siji byte saben werna: #ffffff. Rong entri iku tabel paling cilik sing bisa diduweni GIF. |
| 00 00 00 | Entri palet | Abang, ijo lan biru, siji byte saben werna: #000000. Rong entri iku tabel paling cilik sing bisa diduweni GIF. |
| Ekstensi kontrol grafis Blok opsional sing ditambahake ing GIF89a. Ing kene blok iki nggawe entri palet 0 dadi transparan. | ||
| 21 | Pambuka ekstensi | 0x21 (“!”) ngumumake blok ekstensi. |
| F9 | Label kontrol grafis | 0xF9 nuduhake yen ekstensi iki ekstensi kontrol grafis. |
| 04 | Ukuran blok | Sabanjure ana 4 byte setelan. |
| 01 | Flag gabungan | Bit paling endhek iku flag transparansi. Flag iki urip, dadi indeks transparan ing ngisor dienggo. |
| 00 00 | Tundha | 0/100 detik. Mung ngaruh kanggo animasi. |
| 00 | Indeks werna transparan | Entri palet 0 digambar transparan sakabehe. |
| 00 | Panutup blok | Sub-blok kanthi dawa nol sing nutup blok. |
| Deskriptor gambar Posisi gambar ing kanvas lan ukurane. | ||
| 2C | Pamisah gambar | 0x2C (“,”) miwiti gambar. |
| 00 00 | Kiwa | Gambar diwiwiti 0 px saka pinggir kiwa kanvas. |
| 00 00 | Ndhuwur | Gambar diwiwiti 0 px saka pinggir ndhuwur kanvas. |
| 01 00 | Ambane gambar | 1 px. |
| 01 00 | Dhuwure gambar | 1 px. |
| 00 | Flag gabungan | Ora ana tabel werna lokal, ora interlaced. Gambar nganggo palet global. |
| Data gambar Piksel-piksele, dikompres nganggo LZW lan dipecah dadi sub-blok sing ukurane paling akeh 255 byte. | ||
| 02 | Ukuran kode minimum LZW | 2, dadi kode sing dikompres diwiwiti kanthi ambane 3 bit. |
| 02 | Ukuran sub-blok | Sabanjure ana 2 byte data sing dikompres. |
| 44 01 | Piksel sing dikompres | Kode LZW dikemas wiwit saka bit paling endhek. Delengen carane didekode ing ngisor. |
| 00 | Panutup blok | Sub-blok kanthi dawa nol sing nutup blok. |
| Trailer Siji byte sing nandhani pungkasane file. | ||
| 3B | Trailer | 0x3B (“;”) mungkasi file. |
Isine byte gabungan
Telung byte iki saben-saben nyimpen sawetara setelan cilik. Bit 7 iku sing paling kiwa.
0x800x010x00Carane rong byte ngemot siji piksel
Kanthi ukuran kode minimum 2, decoder maca kode 3-bit. Kode 4 ngresiki tabel, kode 5 mungkasi gambar, lan kode 0 nganti 3 iku entri palet. Byte 44 01 diwaca wiwit saka bit paling endhek:
0x44 010001000x01 00000001
- 001100 = 4Clear: miwiti nganggo tabel anyar
- 000000 = 0Piksel: entri palet 0
- 101101 = 5Pungkasan gambar
- 0000000 Bit pangisi sing ora dienggo
Gambar sing luwih gedhe nganggo trik sing padha: saben kode anyar makili larikan sing luwih dawa siji piksel tinimbang sadurunge, dadi GIF transparan 1000×1000 mung butuh 1.743 byte.
Apa bisa luwih cilik?
Bisa, yen kowe mbuwang bagean sing ilange isih ditoleransi decoder. Saben varian dijajal ing telung engine browser lan ing Pillow, banjur dicathet apa sing digambar.
| Ukuran | Varian | Chromium | Firefox | WebKit | Pillow |
|---|---|---|---|---|---|
| 43 | File standar ing kaca iki. | Transparan | Transparan | Transparan | Transparan |
| 42 | Ora ana byte trailer. Decoder tetep mandheg ing pungkasane data. | Transparan | Transparan | Transparan | Transparan |
| 37 | Ora ana palet babar pisan. Isih valid: spesifikasi ngidini decoder nganggo palete dhewe, lan indeks 0 uga wis transparan. | Transparan | Transparan | Transparan | Transparan |
| 36 | Tanpa palet lan tanpa trailer. | Transparan | Transparan | Transparan | Transparan |
| 35 | Ora ana blok transparansi: piksel digambar nganggo werna palet 0, yaiku putih. | Putih | Putih | Putih | Putih |
| 35 | Format taun 1987. Ora ana cara kanggo nandhani werna dadi transparan. | Putih | Putih | Putih | Putih |
| 34 | Ana blok transparansi nanging ora ana piksel sing dikompres. | Transparan | Transparan | Transparan | Error |
| 33 | Padha kaya ing ndhuwur, tanpa trailer. | Transparan | Transparan | Transparan | Error |
| 29 | Tanpa palet lan tanpa transparansi. Saben engine milih wernane dhewe. | Ireng | Putih | Transparan | Ireng |
| 26 | Gambar sing ora ana data kompres babar pisan. | Transparan | Transparan | Transparan | Error |
| 14 | Mung header, ukuran kanvas lan trailer. Ora ana gambar ing njerone. | Transparan | Error | Transparan | Error |
Gunakake 43 byte yen kudu bisa mlaku ing ngendi wae. 37 byte isih GIF sing valid lan katon transparan ing kabeh engine sing dijajal. Luwih cilik saka kuwi kowe gumantung marang toleransi decoder, lan file 29 byte nuduhake yen asile saben engine beda-beda.
Dicek tanggal 23 September 2026 nganggo Chromium 153.0.8010.12, Firefox 155.0, WebKit 26.6, Pillow 12.2.0.
Gawe ukuran apa wae
Transparan utawa werna solid, saka 1×1 nganti 65535×65535. Digawe ing browsermu; ora ana sing diunggah.
Hotlink langsung
Pasang link langsung menyang file-file iki saka situs, email utawa aplikasi apa wae. File disajikake saka edge Cloudflare kanthi wektu cache sing dawa, lan CORS mbukak kanggo kabeh.
- File 43 byte
https://emptygif.com/1x1.gif - Ukuran apa wae, transparan
https://emptygif.com/px/300x250.gif - Ukuran apa wae, werna solid
https://emptygif.com/px/300x250/ff5a1f.gif - JSON API: ukuran, base64 lan data URI
https://emptygif.com/api/gif?w=300&h=250 - Kabeh snippet ing format JSON
https://emptygif.com/snippets.json - Ringkesan kanggo agen AI
https://emptygif.com/llms.txt
Header respons
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: *Conto
<img src="https://emptygif.com/1x1.gif" width="1" height="1" alt="">
Ukuran sing digawe nganti 4096 px saben sisih. Yen trafikmu gedhe, undhuhen file-ne lan host dhewe.
Sajikake saka stack-mu
173 snippet sing siap dilakokake. Pilih sing cocog: saben snippet mangsuli ing path sing kokpilih nganggo respons image/gif. Yen kowe ngganti ukuran utawa werna ing ndhuwur, snippet nganggo GIF kuwi.
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);
Snippet iki wis dilakokake lan byte asile wis dibandhingake. Bukak kaca
Gunane kanggo apa
- Tracking pixel lan beacon: server nyathet request lan mangsuli nganggo gambar valid sing paling cilik.
- Placeholder kanggo gambar lazy-load, supaya tag
imgwis valid sadurunge sumber asline teka. - Spacer ukuran tetep ing email HTML, sing dhukungan CSS-e ora rata.
- Tes lan mock sing butuh gambar tenanan tanpa kudu nggawa file gambar.
Tracking pixel ora bisa dipercaya kaya sing katon
Apple Mail ngundhuh gambar remote luwih dhisik liwat proxy yen Mail Privacy Protection urip, dadi “open” bisa wae dudu wong sing mbukak. Gmail uga njupuk gambar liwat proxy-ne dhewe lan nyimpen ing cache. Akeh klien email mblokir gambar remote kanthi default. Kanggo analitik kaca, navigator.sendBeacon() utawa respons 204 No Content asring luwih cocog tinimbang gambar.
Pitakonan
- Kenapa diarani kosong, kamangka ana piksele?
- GIF kudu duwe paling ora siji piksel. Iki ukurane 1×1 lan siji-sijine wernane ditandhani transparan, dadi ora ana sing katon.
- Apa file 43 byte iki valid?
- Iya. File iki ngetutake spesifikasi GIF89a persis, lan kabeh engine ing tabel ndhuwur nggambar transparan.
- Kenapa GIF, dudu PNG utawa WebP?
- Ukurane luwih cilik tinimbang PNG transparan sing paling minimal, lan bisa diwaca kabeh browser, klien email lan library gambar saka 35 taun pungkasan.
- Luwih becik nganggo data URI apa file?
- Data URI ngirit siji request lan cocog kanggo placeholder lan CSS. File utawa endpoint dibutuhake yen request kuwi dhewe sing penting, kaya ing tracking pixel.
- Content-Type apa sing kudu dikirim?
image/gif. TambahnaCache-Control: no-storeyen saben request kudu tekan server-mu.