Che cos'è il formato di file DIB?
L'estensione .dib indica un Device Independent Bitmap, un formato di immagine raster sviluppato da Microsoft (in collaborazione con IBM per OS/2) che sta alla base del comune file .bmp. Essere «indipendente dal dispositivo» significa che i dati del colore sono auto-descrittivi: il file trasporta la propria tavolozza o i metadati della profondità di bit in modo che l'immagine venga visualizzata in modo coerente indipendentemente dalle capacità del dispositivo di output.
Su disco, un file .dib è strutturalmente identico a un file .bmp: un BITMAPFILEHEADER di 14 byte (che inizia con la firma a due byte BM) è seguito da una variante dell'intestazione DIB, una tavolozza di colori opzionale e un array di pixel grezzi. L'intestazione più comune è il BITMAPINFOHEADER da 40 byte introdotto con Windows 3.0 nel 1990. Le righe di pixel sono memorizzate dal basso verso l'alto (bottom-up) per impostazione predefinita, allineate a confini di 4 byte. Le profondità di colore supportate vanno dal monocromatico a 1 bit all'RGBA a 32 bit (il canale alfa richiede BITMAPV4HEADER o BITMAPV5HEADER).
Nella programmazione GDI di Windows, il termine DIB si riferisce specificamente alla struttura dati in memoria (BITMAPINFO + bit di pixel), mentre .bmp è la forma del file su disco che antepone un'intestazione di file aggiuntiva di 14 byte. L'estensione .dib su disco è rara e completamente intercambiabile con .bmp: ogni applicazione che apre file .bmp gestisce anche i .dib senza problemi.
La maggior parte dei file .dib utilizza la modalità BI_RGB non compressa. La codifica run-length opzionale (BI_RLE8 per immagini a 8 bit, BI_RLE4 per immagini a 4 bit) riduce modestamente le dimensioni del file. Poiché il formato non è compresso per impostazione predefinita, le dimensioni dei file sono elevate rispetto agli equivalenti PNG o JPEG.
Sicurezza e incolumità
RISCHIO: LOWDIB/BMP sono dati pixel puri senza script o macro - formato a basso rischio. Vulnerabilità storiche dei parser (dimensioni intestazione malformate, sequenze RLE errate) potevano mandare in crash le vecchie librerie di immagini, quindi mantieni il software aggiornato. Evita i siti di «convertitori DIB gratuiti» pieni di pubblicità; usa invece IrfanView, GIMP, ImageMagick o Squoosh.
Dettagli del formato
in sintesiProgrammi che aprono file DIB
Dettagli tecnici
specifiche approfondite| Firma del file | `BM` (hex `42 4D`) all'offset byte 0 - byte magici BITMAPFILEHEADER |
| Varianti intestazione | BITMAPCOREHEADER (12 byte, OS/2), BITMAPINFOHEADER (40 byte, Win3.0+), BITMAPV4HEADER (108 byte), BITMAPV5HEADER (124 byte, supporto profilo ICC) |
| Profondità di colore supportate | 1, 4, 8, 16, 24 o 32 bit per pixel; 1/4/8-bit usano una tavolozza indicizzata; 16/24/32-bit sono RGB diretti |
| Canale alfa | Supportato nei DIB a 32 bit con BITMAPV4HEADER o BITMAPV5HEADER (Windows 98/2000+) |
| Ordine righe pixel | Dal basso verso l'alto per impostazione predefinita (valore altezza positivo); l'altezza negativa codifica un'immagine dall'alto verso il basso |
| Padding delle righe | Ogni riga di pixel è allineata a un confine di 4 byte (DWORD) |
| Modalità di compressione | `BI_RGB` (nessuna, la più comune); `BI_RLE8` (RLE a 8 bit); `BI_RLE4` (RLE a 4 bit) |
| Tavolozza colori | Presente per immagini a 1/4/8 bit come array RGBQUAD; assente per il colore diretto a 16/24/32 bit |
| Ordine dei byte | Little-endian |
| In memoria vs su disco | Il DIB in memoria omette il BITMAPFILEHEADER di 14 byte; il file `.dib` su disco lo include, con layout identico a `.bmp` |
| Dimensioni massime | 32.767 × 32.767 px con BITMAPINFOHEADER (campo signed a 32 bit); BITMAPCOREHEADER limitato a 16 bit unsigned (65.535 px) |
| Metadati risoluzione | Risoluzione orizzontale e verticale memorizzata come pixel-per-metro nei campi `biXPelsPerMeter` e `biYPelsPerMeter` |
| Profilo colore ICC | Incorporabile in BITMAPV5HEADER |
| Interoperabilità | `.dib` è completamente intercambiabile con `.bmp`; tutte le applicazioni compatibili con BMP aprono i file `.dib` senza modifiche |
| Rilasciato | 1985 (Windows 1.0/2.0); modern BITMAPINFOHEADER form with Windows 3.0, 1990 |
| Ultima versione | BITMAPV5HEADER (Windows 98/2000, 1998) |
| Standard aperto | Sì · royalty-free |
| Specifica | learn.microsoft.com |
Conversioni DIB
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file DIB.