O que é o formato de ficheiro DIB?
A extensão .dib denota um Device Independent Bitmap, um formato de imagem raster desenvolvido pela Microsoft (em colaboração com a IBM para o OS/2) que serve de base para o comum arquivo .bmp. Ser independente de dispositivo significa que os dados de cor são autodescritivos - o arquivo carrega sua própria paleta ou metadados de profundidade de bits para que a imagem seja exibida de forma consistente, independentemente das capacidades do dispositivo de saída.
No disco, um arquivo .dib é estruturalmente idêntico a um arquivo .bmp: um BITMAPFILEHEADER de 14 bytes (começando com a assinatura de dois bytes BM) é seguido por uma variante de cabeçalho DIB, uma paleta de cores opcional e uma matriz de pixels brutos. O cabeçalho mais comum é o BITMAPINFOHEADER de 40 bytes introduzido com o Windows 3.0 em 1990. As linhas de pixels são armazenadas de baixo para cima (bottom-up) por padrão, alinhadas a limites de 4 bytes. As profundidades de cor suportadas variam de monocromático de 1 bit a RGBA de 32 bits (o canal alfa requer BITMAPV4HEADER ou BITMAPV5HEADER).
Na programação GDI do Windows, o termo DIB refere-se especificamente à estrutura de dados em memória (BITMAPINFO + bits de pixel), enquanto .bmp é a forma de arquivo em disco que precede um cabeçalho de arquivo adicional de 14 bytes. A extensão .dib em disco é rara e totalmente intercambiável com .bmp - todos os aplicativos que abrem arquivos .bmp também lidam com .dib sem problemas.
A maioria dos arquivos .dib usa o modo BI_RGB não compactado. A codificação opcional run-length (BI_RLE8 para imagens de 8 bits, BI_RLE4 para 4 bits) reduz o tamanho do arquivo modestamente. Como o formato não é compactado por padrão, os tamanhos dos arquivos são grandes em comparação com equivalentes PNG ou JPEG.
Segurança e proteção
RISCO: LOWDIB/BMP são dados de pixels puros sem scripts ou macros - formato de baixo risco. Vulnerabilidades históricas em parsers (dimensões de cabeçalho malformadas, sequências RLE inválidas) podiam travar bibliotecas de imagem antigas, portanto, mantenha seu software atualizado. Evite sites de «conversor DIB gratuito» cheios de anúncios; use IrfanView, GIMP, ImageMagick ou Squoosh em vez disso.
Detalhes do formato
em resumoProgramas que abrem arquivos DIB
Detalhes técnicos
especificação profunda| Assinatura do arquivo | `BM` (hex `42 4D`) no deslocamento de byte 0 - bytes mágicos do BITMAPFILEHEADER |
| Variantes de cabeçalho | BITMAPCOREHEADER (12 bytes, OS/2), BITMAPINFOHEADER (40 bytes, Win3.0+), BITMAPV4HEADER (108 bytes), BITMAPV5HEADER (124 bytes, suporte a perfil ICC) |
| Profundidades de cor suportadas | 1, 4, 8, 16, 24 ou 32 bits por pixel; 1/4/8 bits usam uma paleta indexada; 16/24/32 bits são RGB direto |
| Canal alfa | Suportado em DIBs de 32 bits com BITMAPV4HEADER ou BITMAPV5HEADER (Windows 98/2000+) |
| Ordem das linhas de pixels | De baixo para cima por padrão (valor de altura positivo); altura negativa codifica uma imagem de cima para baixo |
| Preenchimento de linha | Cada linha de pixels é preenchida até um limite de 4 bytes (DWORD) |
| Modos de compressão | `BI_RGB` (nenhum, mais comum); `BI_RLE8` (RLE de 8 bits); `BI_RLE4` (RLE de 4 bits) |
| Paleta de cores | Presente para imagens de 1/4/8 bits como uma matriz RGBQUAD; ausente para cores diretas de 16/24/32 bits |
| Ordem dos bytes | Little-endian |
| Em memória vs no disco | O DIB em memória omite o BITMAPFILEHEADER de 14 bytes; o arquivo `.dib` no disco o inclui, sendo idêntico em layout ao `.bmp` |
| Dimensões máximas | 32.767 × 32.767 px com BITMAPINFOHEADER (campo assinado de 32 bits); BITMAPCOREHEADER limitado a 16 bits não assinado (65.535 px) |
| Metadados de resolução | Resolução horizontal e vertical armazenada como pixels por metro nos campos `biXPelsPerMeter` e `biYPelsPerMeter` |
| Perfil de cor ICC | Incorporável no BITMAPV5HEADER |
| Interoperabilidade | `.dib` é totalmente intercambiável com `.bmp`; todos os aplicativos compatíveis com BMP abrem arquivos `.dib` sem modificação |
| Lançado | 1985 (Windows 1.0/2.0); modern BITMAPINFOHEADER form with Windows 3.0, 1990 |
| Versão mais recente | BITMAPV5HEADER (Windows 98/2000, 1998) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | learn.microsoft.com |
Conversões de DIB
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos DIB.