Co to jest format pliku DIB?
Rozszerzenie .dib oznacza Device Independent Bitmap, format obrazu rastrowego opracowany przez Microsoft (we współpracy z IBM dla OS/2), który stanowi podstawę popularnego pliku .bmp. Bycie „niezależnym od urządzenia” oznacza, że dane o kolorach są samoopisujące - plik zawiera własną paletę lub metadane głębi bitowej, dzięki czemu obraz wyświetla się spójnie niezależnie od możliwości urządzenia wyjściowego.
Na dysku plik .dib jest strukturalnie identyczny z plikiem .bmp: po 14-bajtowym nagłówku BITMAPFILEHEADER (zaczynającym się od dwubajtowej sygnatury BM) następuje wariant nagłówka DIB, opcjonalna paleta kolorów i surowa tablica pikseli. Najpopularniejszym nagłówkiem jest 40-bajtowy BITMAPINFOHEADER wprowadzony wraz z Windows 3.0 w 1990 roku. Wiersze pikseli są domyślnie przechowywane od dołu do góry (bottom-up), wyrównane do granic 4-bajtowych. Obsługiwane głębie kolorów wahają się od 1-bitowej monochromatycznej do 32-bitowej RGBA (kanał alfa wymaga BITMAPV4HEADER lub BITMAPV5HEADER).
W programowaniu Windows GDI termin DIB odnosi się konkretnie do struktury danych w pamięci (BITMAPINFO + bity pikseli), podczas gdy .bmp to forma pliku na dysku, która poprzedza całość dodatkowym 14-bajtowym nagłówkiem pliku. Rozszerzenie .dib na dysku jest rzadkie i w pełni zamienne z .bmp - każda aplikacja otwierająca pliki .bmp obsługuje również .dib bez żadnych problemów.
Większość plików .dib używa nieskompresowanego trybu BI_RGB. Opcjonalne kodowanie długości serii (run-length encoding - BI_RLE8 dla obrazów 8-bitowych, BI_RLE4 dla 4-bitowych) nieznacznie zmniejsza rozmiar pliku. Ponieważ format jest domyślnie nieskompresowany, rozmiary plików są duże w porównaniu z odpowiednikami PNG lub JPEG.
Bezpieczeństwo
RYZYKO: LOWDIB/BMP to czyste dane pikseli bez skryptów czy makr - format niskiego ryzyka. Historyczne luki w parserach (nieprawidłowe wymiary nagłówka, błędne serie RLE) mogły powodować awarie starszych bibliotek obrazów, dlatego należy aktualizować oprogramowanie. Unikaj przeładowanych reklamami stron typu „darmowy konwerter DIB”; zamiast tego używaj IrfanView, GIMP, ImageMagick lub Squoosh.
Szczegóły formatu
w pigułceProgramy otwierające pliki DIB
Szczegóły techniczne
specyfikacja| Sygnatura pliku | `BM` (hex `42 4D`) na offsecie 0 - bajty magiczne BITMAPFILEHEADER |
| Warianty nagłówka | BITMAPCOREHEADER (12 bajtów, OS/2), BITMAPINFOHEADER (40 bajtów, Win3.0+), BITMAPV4HEADER (108 bajtów), BITMAPV5HEADER (124 bajty, obsługa profili ICC) |
| Obsługiwane głębie kolorów | 1, 4, 8, 16, 24 lub 32 bity na piksel; 1/4/8-bitowe używają palety indeksowanej; 16/24/32-bitowe to bezpośredni RGB |
| Kanał alfa | Obsługiwany w 32-bitowych plikach DIB z BITMAPV4HEADER lub BITMAPV5HEADER (Windows 98/2000+) |
| Kolejność wierszy pikseli | Domyślnie od dołu do góry (dodatnia wartość wysokości); ujemna wysokość koduje obraz od góry do dołu |
| Wyrównanie wierszy | Każdy wiersz pikseli wyrównany do granicy 4-bajtowej (DWORD) |
| Tryby kompresji | `BI_RGB` (brak, najczęstszy); `BI_RLE8` (8-bit RLE); `BI_RLE4` (4-bit RLE) |
| Paleta kolorów | Obecna dla obrazów 1/4/8-bitowych jako tablica RGBQUAD; nieobecna dla 16/24/32-bitowych kolorów bezpośrednich |
| Kolejność bajtów | Little-endian |
| W pamięci vs na dysku | DIB w pamięci pomija 14-bajtowy BITMAPFILEHEADER; plik `.dib` na dysku zawiera go, będąc identycznym w układzie z `.bmp` |
| Maksymalne wymiary | 32 767 × 32 767 px z BITMAPINFOHEADER (32-bitowe pole ze znakiem); BITMAPCOREHEADER ograniczony do 16-bitów bez znaku (65 535 px) |
| Metadane rozdzielczości | Rozdzielczość pozioma i pionowa przechowywana jako piksele na metr w polach `biXPelsPerMeter` i `biYPelsPerMeter` |
| Profil kolorów ICC | Możliwy do osadzenia w BITMAPV5HEADER |
| Interoperacyjność | `.dib` jest w pełni zamienny z `.bmp`; wszystkie aplikacje obsługujące BMP otwierają pliki `.dib` bez modyfikacji |
| Wydano | 1985 (Windows 1.0/2.0); modern BITMAPINFOHEADER form with Windows 3.0, 1990 |
| Najnowsza wersja | BITMAPV5HEADER (Windows 98/2000, 1998) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | learn.microsoft.com |
Konwersje DIB
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki DIB.