La GIF trasparente più piccola pesa 43 byte.
Eccola tutta. Scegli un byte per vedere cosa fa, poi copia il file, scaricalo, usalo in hotlink o servilo dal tuo codice.

R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
Cosa fa ogni byte
Una GIF è una sequenza di blocchi. Questa ne ha sette, e ogni colore in questa pagina appartiene a uno di essi. Seleziona un byte o un blocco per leggerne la descrizione. I numeri sono memorizzati in little-endian: il byte meno significativo viene prima, quindi 01 00 significa 1.
| Byte | Campo | Significato |
|---|---|---|
| Intestazione Dice al decoder che si tratta di una GIF e quale versione del formato aspettarsi. | ||
| 47 49 46 | Firma | Le lettere ASCII «GIF». Ogni file GIF inizia con queste. |
| 38 39 61 | Versione | «89a». Per la trasparenza serve 89a; 87a non ha l'estensione di controllo grafico. |
| Descrittore dello schermo logico Le dimensioni del canvas e come è impostata la sua tabella dei colori. | ||
| 01 00 | Larghezza del canvas | 1 px. |
| 01 00 | Altezza del canvas | 1 px. |
| 80 | Flag compattati | Quattro impostazioni stipate in un byte. Il bit più alto indica che segue una tabella dei colori globale; gli ultimi tre bit ne indicano la dimensione. |
| 00 | Indice del colore di sfondo | Voce 0 della palette. I browser la ignorano e mostrano ciò che c'è dietro l'immagine. |
| 00 | Proporzioni dei pixel | 0 indica pixel quadrati, senza correzione. |
| Tabella dei colori globale La palette. I pixel memorizzano un indice in questa lista invece di un colore. | ||
| FF FF FF | Voce della palette | Rosso, verde e blu, un byte ciascuno: #ffffff. Due voci sono la tabella più piccola che una GIF possa avere. |
| 00 00 00 | Voce della palette | Rosso, verde e blu, un byte ciascuno: #000000. Due voci sono la tabella più piccola che una GIF possa avere. |
| Estensione di controllo grafico Blocco opzionale aggiunto in GIF89a. Qui rende trasparente la voce 0 della palette. | ||
| 21 | Introduttore di estensione | 0x21 («!») annuncia un blocco di estensione. |
| F9 | Etichetta di controllo grafico | 0xF9 indica che questa estensione è un'estensione di controllo grafico. |
| 04 | Dimensione del blocco | Seguono 4 byte di impostazioni. |
| 01 | Flag compattati | Il bit più basso è il flag di trasparenza. È attivo, quindi viene usato l'indice trasparente qui sotto. |
| 00 00 | Ritardo | 0 centesimi di secondo. Conta solo per le animazioni. |
| 00 | Indice del colore trasparente | La voce 0 della palette viene disegnata completamente trasparente. |
| 00 | Terminatore di blocco | Un sotto-blocco di lunghezza zero che chiude il blocco. |
| Descrittore dell'immagine Dove si trova l'immagine sul canvas e quanto è grande. | ||
| 2C | Separatore d'immagine | 0x2C («,») inizia un'immagine. |
| 00 00 | Sinistra | L'immagine inizia a 0 px dal bordo sinistro del canvas. |
| 00 00 | Alto | L'immagine inizia a 0 px dal bordo superiore del canvas. |
| 01 00 | Larghezza dell'immagine | 1 px. |
| 01 00 | Altezza dell'immagine | 1 px. |
| 00 | Flag compattati | Nessuna tabella dei colori locale, niente interlacciamento. L'immagine usa la palette globale. |
| Dati dell'immagine I pixel, compressi con LZW e divisi in sotto-blocchi di massimo 255 byte. | ||
| 02 | Dimensione minima del codice LZW | 2, quindi i codici compressi partono da 3 bit di larghezza. |
| 02 | Dimensione del sotto-blocco | Seguono 2 byte di dati compressi. |
| 44 01 | Pixel compressi | Codici LZW impacchettati a partire dal bit più basso. Qui sotto vedi come si decodificano. |
| 00 | Terminatore di blocco | Un sotto-blocco di lunghezza zero che chiude il blocco. |
| Marcatore di fine Un byte che segna la fine del file. | ||
| 3B | Marcatore di fine | 0x3B («;») chiude il file. |
Dentro i byte compattati
Tre byte memorizzano ciascuno diverse piccole impostazioni. Il bit 7 è quello più a sinistra.
0x800x010x00Come due byte contengono un pixel
Con una dimensione minima del codice di 2, il decoder legge codici da 3 bit. Il codice 4 azzera la tabella, il codice 5 termina l'immagine e i codici da 0 a 3 sono voci della palette. I byte 44 01 si leggono a partire dal bit più basso:
0x44 010001000x01 00000001
- 001100 = 4Clear: si riparte da una tabella nuova
- 000000 = 0Pixel: voce 0 della palette
- 101101 = 5Fine dell'immagine
- 0000000 Bit di riempimento inutilizzati
Le immagini più grandi usano lo stesso trucco: ogni nuovo codice rappresenta una sequenza più lunga di un pixel rispetto alla precedente, quindi una GIF trasparente 1000×1000 occupa solo 1743 byte.
Può essere più piccola?
Sì, se togli parti di cui i decoder tollerano l'assenza. Abbiamo dato ogni variante in pasto a tre motori di browser e a Pillow, e registrato cosa hanno disegnato.
| Dimensione | Variante | Chromium | Firefox | WebKit | Pillow |
|---|---|---|---|---|---|
| 43 | Il file standard di questa pagina. | Trasparente | Trasparente | Trasparente | Trasparente |
| 42 | Nessun byte finale. I decoder si fermano comunque alla fine dei dati. | Trasparente | Trasparente | Trasparente | Trasparente |
| 37 | Nessuna palette. Ancora valida: la specifica consente ai decoder di usare una propria palette, e l'indice 0 è comunque trasparente. | Trasparente | Trasparente | Trasparente | Trasparente |
| 36 | Niente palette e niente byte finale. | Trasparente | Trasparente | Trasparente | Trasparente |
| 35 | Nessun blocco di trasparenza: il pixel viene disegnato con il colore 0 della palette, il bianco. | Bianco | Bianco | Bianco | Bianco |
| 35 | Il formato del 1987. Non ha modo di rendere trasparente un colore. | Bianco | Bianco | Bianco | Bianco |
| 34 | Blocco di trasparenza, ma nessun pixel compresso. | Trasparente | Trasparente | Trasparente | Errore |
| 33 | Lo stesso, senza byte finale. | Trasparente | Trasparente | Trasparente | Errore |
| 29 | Niente palette e niente trasparenza. Ogni motore sceglie il proprio colore. | Nero | Bianco | Trasparente | Nero |
| 26 | Un'immagine senza alcun dato compresso. | Trasparente | Trasparente | Trasparente | Errore |
| 14 | Solo intestazione, dimensioni del canvas e byte finale. Non contiene alcuna immagine. | Trasparente | Errore | Trasparente | Errore |
Usa i 43 byte quando deve funzionare ovunque. Quella da 37 byte è ancora una GIF valida ed è risultata trasparente in tutti i motori che abbiamo testato. Sotto quella soglia dipendi dalla tolleranza del decoder, e il file da 29 byte mostra quanto i motori siano in disaccordo.
Verificato il 23 settembre 2026 con Chromium 153.0.8010.12, Firefox 155.0, WebKit 26.6, Pillow 12.2.0.
Lo stesso pixel in altri formati
Il file trasparente 1×1 più piccolo che siamo riusciti a costruire in ogni formato, dato agli stessi quattro motori. Apri una riga per vederne i byte, colorati come i blocchi GIF che svolgono lo stesso ruolo.
| Dimensione | File | Data URI | Chromium | Firefox | WebKit | Pillow |
|---|---|---|---|---|---|---|
| 28 | WebP Lo stesso senza due byte di padding. WebKit rifiuta i file WebP più corti di 30 byte.52 49 46 46 14 00 00 00 57 45 42 50 56 50 38 4c 08 00 00 00 2f 00 00 00 10 88 88 08
| 63 | Trasparente | Trasparente | Errore | Trasparente |
| 30 | WebP VP8L lossless. Ogni codice prefisso contiene un solo simbolo, quindi i pixel non occupano alcun bit e il file resta di questa dimensione fino a 16384×16384.52 49 46 46 16 00 00 00 57 45 42 50 56 50 38 4c 0a 00 00 00 2f 00 00 00 10 88 88 08 00 00
| 63 | Trasparente | Trasparente | Trasparente | Trasparente |
| 43 | GIF La GIF da 43 byte in cima a questa pagina.47 49 46 38 39 61 01 00 01 00 80 00 00 ff ff ff 00 00 00 21 f9 04 01 00 00 00 00 2c 00 00 00 00 01 00 01 00 00 02 02 44 01 00 3b
| 82 | Trasparente | Trasparente | Trasparente | Trasparente |
| 58 | BMP La classica intestazione da 40 byte non ha una maschera alfa, quindi il quarto byte viene ignorato e il pixel è nero ovunque.42 4d 3a 00 00 00 00 00 00 00 36 00 00 00 28 00 00 00 01 00 00 00 01 00 00 00 01 00 20 00 00 00 00 00 04 00 00 00 13 0b 00 00 13 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00
| 102 | Nero | Nero | Nero | Nero |
| 62 | SVG Un elemento | 85 | Trasparente | Trasparente | Trasparente | Errore |
| 67 | PNG Truecolor con alfa. L'unica riga di zeri è compressa a mano, un byte più corta di zlib alla sua impostazione migliore.89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 01 00 00 00 01 08 06 00 00 00 1f 15 c4 89 00 00 00 0a 49 44 41 54 78 01 63 00 01 00 00 05 00 01 36 d0 88 dd 00 00 00 00 49 45 4e 44 ae 42 60 82
| 114 | Trasparente | Trasparente | Trasparente | Trasparente |
| 70 | ICO Una favicon che contiene una bitmap a 32 bit e la sua maschera AND a 1 bit.00 00 01 00 01 00 01 01 00 00 01 00 20 00 30 00 00 00 16 00 00 00 28 00 00 00 01 00 00 00 02 00 00 00 01 00 20 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00
| 121 | Trasparente | Trasparente | Trasparente | Trasparente |
| 74 | BMP Un'intestazione da 56 byte con maschera alfa. WebKit non la carica.42 4d 4a 00 00 00 00 00 00 00 46 00 00 00 38 00 00 00 01 00 00 00 01 00 00 00 01 00 20 00 03 00 00 00 04 00 00 00 13 0b 00 00 13 0b 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 ff 00 00 ff 00 00 00 00 00 00 ff 00 00 00 00
| 122 | Trasparente | Trasparente | Errore | Trasparente |
| 89 | ICO Una favicon che contiene il PNG da 67 byte.00 00 01 00 01 00 01 01 00 00 01 00 20 00 43 00 00 00 16 00 00 00 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 01 00 00 00 01 08 06 00 00 00 1f 15 c4 89 00 00 00 0a 49 44 41 54 78 01 63 00 01 00 00 05 00 01 36 d0 88 dd 00 00 00 00 49 45 4e 44 ae 42 60 82
| 145 | Trasparente | Trasparente | Trasparente | Trasparente |
| 126 | BMP L'intestazione V4. WebKit ignora la sua maschera alfa e disegna nero.42 4d 7e 00 00 00 00 00 00 00 7a 00 00 00 6c 00 00 00 01 00 00 00 01 00 00 00 01 00 20 00 03 00 00 00 04 00 00 00 13 0b 00 00 13 0b 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 ff 00 00 ff 00 00 00 00 00 00 ff 42 47 52 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
| 190 | Trasparente | Trasparente | Nero | Trasparente |
| 142 | BMP L'intestazione V5, con lo stesso risultato in WebKit.42 4d 8e 00 00 00 00 00 00 00 8a 00 00 00 7c 00 00 00 01 00 00 00 01 00 00 00 01 00 20 00 03 00 00 00 04 00 00 00 13 0b 00 00 13 0b 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 ff 00 00 ff 00 00 00 00 00 00 ff 42 47 52 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
| 214 | Trasparente | Trasparente | Nero | Trasparente |
| 437 | AVIF Lo stesso con sottocampionamento 4:0:0, che elimina i piani di colore.00 00 00 1c 66 74 79 70 61 76 69 66 00 00 00 00 61 76 69 66 6d 69 66 31 6d 69 61 66 00 00 01 6a 6d 65 74 61 00 00 00 00 00 00 00 21 68 64 6c 72 00 00 00 00 00 00 00 00 70 69 63 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 70 69 74 6d 00 00 00 00 00 01 00 00 00 2c 69 6c 6f 63 00 00 00 00 44 00 00 02 00 01 00 00 00 01 00 00 01 a0 00 00 00 15 00 02 00 00 00 01 00 00 01 8e 00 00 00 12 00 00 00 42 69 69 6e 66 00 00 00 00 00 02 00 00 00 1a 69 6e 66 65 02 00 00 00 00 01 00 00 61 76 30 31 43 6f 6c 6f 72 00 00 00 00 1a 69 6e 66 65 02 00 00 00 00 02 00 00 61 76 30 31 41 6c 70 68 61 00 00 00 00 1a 69 72 65 66 00 00 00 00 00 00 00 0e 61 75 78 6c 00 02 00 01 00 01 00 00 00 a7 69 70 72 70 00 00 00 81 69 70 63 6f 00 00 00 14 69 73 70 65 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 0e 70 69 78 69 00 00 00 00 01 08 00 00 00 0c 61 76 31 43 81 00 1c 00 00 00 00 13 63 6f 6c 72 6e 63 6c 78 00 01 00 0d 00 06 80 00 00 00 38 61 75 78 43 00 00 00 00 75 72 6e 3a 6d 70 65 67 3a 6d 70 65 67 42 3a 63 69 63 70 3a 73 79 73 74 65 6d 73 3a 61 75 78 69 6c 69 61 72 79 3a 61 6c 70 68 61 00 00 00 00 1e 69 70 6d 61 00 00 00 00 00 00 00 02 00 01 04 01 02 83 04 00 02 04 01 02 83 05 00 00 00 2f 6d 64 61 74 12 00 0a 04 18 00 06 15 32 08 10 00 00 18 e1 42 72 10 12 00 0a 07 18 00 06 18 08 68 35 32 08 10 00 00 18 e1 42 72 10
| 607 | Trasparente | Trasparente | Trasparente | Trasparente |
| 471 | AVIF Ciò che scrive libavif a qualità 100: un'immagine AV1 per il colore e una per l'alfa, in box ISO BMFF.00 00 00 20 66 74 79 70 61 76 69 66 00 00 00 00 61 76 69 66 6d 69 66 31 6d 69 61 66 4d 41 31 42 00 00 01 86 6d 65 74 61 00 00 00 00 00 00 00 21 68 64 6c 72 00 00 00 00 00 00 00 00 70 69 63 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 70 69 74 6d 00 00 00 00 00 01 00 00 00 2c 69 6c 6f 63 00 00 00 00 44 00 00 02 00 01 00 00 00 01 00 00 01 c0 00 00 00 17 00 02 00 00 00 01 00 00 01 ae 00 00 00 12 00 00 00 42 69 69 6e 66 00 00 00 00 00 02 00 00 00 1a 69 6e 66 65 02 00 00 00 00 01 00 00 61 76 30 31 43 6f 6c 6f 72 00 00 00 00 1a 69 6e 66 65 02 00 00 00 00 02 00 00 61 76 30 31 41 6c 70 68 61 00 00 00 00 1a 69 72 65 66 00 00 00 00 00 00 00 0e 61 75 78 6c 00 02 00 01 00 01 00 00 00 c3 69 70 72 70 00 00 00 9d 69 70 63 6f 00 00 00 14 69 73 70 65 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 10 70 69 78 69 00 00 00 00 03 08 08 08 00 00 00 0c 61 76 31 43 81 00 0c 00 00 00 00 13 63 6f 6c 72 6e 63 6c 78 00 01 00 0d 00 06 80 00 00 00 0e 70 69 78 69 00 00 00 00 01 08 00 00 00 0c 61 76 31 43 81 00 1c 00 00 00 00 38 61 75 78 43 00 00 00 00 75 72 6e 3a 6d 70 65 67 3a 6d 70 65 67 42 3a 63 69 63 70 3a 73 79 73 74 65 6d 73 3a 61 75 78 69 6c 69 61 72 79 3a 61 6c 70 68 61 00 00 00 00 1e 69 70 6d 61 00 00 00 00 00 00 00 02 00 01 04 01 02 83 04 00 02 04 01 05 86 07 00 00 00 31 6d 64 61 74 12 00 0a 04 18 00 06 15 32 08 10 00 00 18 e1 42 72 10 12 00 0a 08 18 00 06 08 08 68 34 20 32 09 10 00 00 00 07 c8 24 c6 62
| 651 | Trasparente | Trasparente | Trasparente | Trasparente |
- Firma
- Dimensione
- Palette
- Trasparenza
- Contenitore
- Pixel
- Fine
- Metadati
- Padding
WebP, con 30 byte, è il file più piccolo risultato trasparente in tutti e quattro i motori: 13 byte in meno della GIF.
Lunghezza del data URI in caratteri: SVG come testo codificato per URL, gli altri in base64. Verificato il 24 settembre 2026 con Chromium 153.0.8010.12, Firefox 155.0, WebKit 26.6, Pillow 12.2.0. AVIF scritto da libavif 1.4.1.
Creane una di qualsiasi dimensione
Trasparente o a tinta unita, da 1×1 fino a 65535×65535. Viene generata nel tuo browser; non viene caricato nulla.
Usala in hotlink
Collega direttamente questi file da qualsiasi sito, email o app. Sono serviti dall'edge di Cloudflare con cache di lunga durata, e CORS è aperto a tutti.
- Il file da 43 byte
https://emptygif.com/1x1.gif - Qualsiasi dimensione, trasparente
https://emptygif.com/px/300x250.gif - Qualsiasi dimensione, tinta unita
https://emptygif.com/px/300x250/ff5a1f.gif - Lo stesso in PNG, WebP o SVG
https://emptygif.com/px/300x250.webp - API JSON: dimensione, base64 e data URI
https://emptygif.com/api/gif?w=300&h=250 - Tutti gli snippet in JSON
https://emptygif.com/snippets.json - Riepilogo per gli agenti IA
https://emptygif.com/llms.txt
Header di risposta
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: *Esempio
<img src="https://emptygif.com/1x1.gif" width="1" height="1" alt="">
Le dimensioni generate arrivano fino a 4096 px per lato. Se hai molto traffico, scarica il file e ospitalo sul tuo server.
Servila dal tuo stack
191 snippet pronti all'uso. Scegli il tuo: ognuno risponde sul percorso che scegli con una risposta image/gif. Se sopra hai cambiato dimensione o colore, gli snippet usano quella GIF.
JavaScript & TypeScript
- Next.js (App Router)
- Hono
- Bun.serve
- Elysia
- Deno.serve
- SvelteKit
- Nuxt (Nitro server route)
- Astro
- React Router (framework mode, ex-Remix)
- TanStack Start
- SolidStart
- Hono on Bun
- Hono on Deno
- srvx (universal fetch server)
- Qwik City
- RedwoodSDK
- Angular SSR (Express server.ts)
- Fresh
- Oak
- Encore.ts
- NestJS
- Fastify
- Express
- Node.js standard library (node:http)
- Koa
- hapi
- AdonisJS
Edge & serverless
- Cloudflare Workers
- Cloudflare Workers (Rust, workers-rs)
- Cloudflare Pages Functions
- Spin (Rust, WASI HTTP component)
- 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
Go
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);
Abbiamo eseguito questo snippet e confrontato i byte che ha restituito. Apri pagina
A cosa serve
- Pixel di tracciamento e beacon: il server registra la richiesta e risponde con la più piccola immagine valida.
- Segnaposto per immagini in lazy loading, così il tag
imgè valido prima che arrivi la sorgente reale. - Spaziatori di dimensione fissa nelle email HTML, dove il supporto CSS è frammentario.
- Test e mock che hanno bisogno di un'immagine reale senza doverne includere una.
I pixel di tracciamento sono meno affidabili di quanto sembri
Apple Mail precarica le immagini remote tramite un proxy quando è attiva la Protezione della privacy di Mail, quindi un'«apertura» potrebbe non essere mai stata una persona. Anche Gmail recupera le immagini tramite un proprio proxy e le mette in cache. Molti client bloccano le immagini remote per impostazione predefinita. Per l'analisi delle pagine, navigator.sendBeacon() o una risposta 204 No Content sono spesso più adatti di un'immagine.
Domande frequenti
- Perché si chiama vuota se ha un pixel?
- Una GIF deve avere almeno un pixel. Questa è 1×1 e il suo unico colore è marcato come trasparente, quindi non si vede nulla.
- Il file da 43 byte è valido?
- Sì. Segue esattamente la specifica GIF89a, e tutti i motori nella tabella qui sopra lo disegnano trasparente.
- Perché una GIF e non un PNG o un WebP?
- È più piccola di un PNG trasparente minimo, e qualsiasi browser, client email o libreria di immagini degli ultimi 35 anni è in grado di leggerla.
- Meglio un data URI o un file?
- Un data URI risparmia una richiesta ed è adatto a segnaposto e CSS. Serve un file o un endpoint quando lo scopo è proprio la richiesta, come per i pixel di tracciamento.
- Quale Content-Type devo inviare?
image/gif. AggiungiCache-Control: no-storese ogni richiesta deve arrivare al tuo server.