Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

Windows Bitmap

Z Wikipedii, wolnej encyklopedii
Ten artykuł dotyczy formatu plików graficznych. Zobacz też:inne znaczenia skrótu BMP.
Windows Bitmap
Ikona formatu
Rozszerzenia pliku

.bmp,.dib

Typ MIME

image/x-portable-bitmap
image/x-ms-bmp (nieoficjalny)
image/x-bmp (nieoficjalny)

Typ

grafika rastrowa

BMPformat pliku zgrafiką bitmapową. Opracowany pierwotnie dlasystemuOS/2, wykorzystywany później także w interfejsach systemów z rodzinyMicrosoft Windows[1], jednak jako wolny od patentów jest dostępny i – mimo dużych rozmiarów – popularny jako format przechowywania danych również na wszystkich pozostałych platformach. Zawiera w sobie prostąkompresję bezstratnąRLE (która nie musi być użyta), informację o użytychkolorach[1]. Obsługuje trybyRGB orazRGBA.

Struktura pliku BMP

[edytuj |edytuj kod]

Plik BMP składa się z kilku części:

Nazwa strukturyOpcjonalna?RozmiarPrzeznaczenieKomentarz
Nagłówek plikuNie14 BajtówPrzechowuje najważniejsze informacje o pliku.Jest zbędny po załadowaniu obrazka do pamięci.
Nagłówek DIBNieRóżny rozmiar
(istnieje 7 różnych wersji tego nagłówka)
Przechowuje najważniejsze informacje o obrazie i definiuje format piksela.Występuje bezpośrednio po nagłówku pliku.
Dodatkowa maska bitowaTak3 lub 4 DWORD[2]
(12 lub 16 bajtów)
Definiuje format piksela.Występuje tylko wtedy, gdy nagłówek DIB jest w formacie BITMAPINFOHEADER.
Tablica kolorówZależy od liczby kolorówRóżny rozmiarDefiniuje kolory użyte przez obraz (tablicę pikseli)Występuje wtedy, gdygłębia kolorów ⩽ 8
Gap1TakRóżny rozmiarStruktura dostosowującaArtefakty znajdujące się, aż do offsetu pliku dla tablicy pikseli znajdującego się w nagłówku pliku.
Tablica pikseliNieRóżny rozmiarDefiniuje wartości poszczególnych pikseliFormat piksela zdefiniowany jest w nagłówku DIB lub w dodatkowej masce bitowej. Każdy wiersz tablicy pikseli jest wyrównany do wielokrotności 4 bajtów.
Gap2TakRóżny rozmiarStruktura dostosowującaArtefakty znajdujące się, aż do offsetu danych ICC znajdującego się w nagłówku DIB.
Profil kolorów ICCTakRóżny rozmiarDefiniuje profil kolorów dlasystemu zarządzania koloremMoże zawierać ścieżkę do zewnętrznego pliku przechowującego profil kolorów. Po załadowaniu do pamięci jako „nie-spakowany DIB” znajduje się między tablicą kolorów a Gap1[3].

Nagłówek pliku

[edytuj |edytuj kod]

Ten blok znajduje się na początku pliku i jest używany do jego identyfikacji. Używa się go po to, by sprawdzić, czy jest to plik BMP i czy nie jest on uszkodzony. Pierwszymi dwoma bajtami w formacie BMP są znaki „B”, oraz „M” w kodowaniuASCII. Wszystkie wartości całkowite są przechowywane w formacielittle-endian (tj. najmniej znaczący bajt umieszczony jako pierwszy).

Offset#RozmiarPrzeznaczenie
0000h2 bajtypoczątek nagłówka używany do identyfikacji pliku BMP, DIB. Najczęściej wynosi 0x42 0x4D wsystemie szesnastkowym, odpowiada to znakomBM w kodzie ASCII. Możliwe wartości:
  • BM – Windows 3.1x, 95, NT, ... itd.
  • BA – OS/2 struktura tablicy bitmapy
  • CI – OS/2 struktura kolorowej ikony
  • &CP – OS/2 stały wskaźnik koloru
  • IC – OS/2 struktura ikony
  • *PT – OS/2 wskaźnik
0002h4 bajtyOznacza rozmiar całego pliku w bajtach
0006h2 bajtyzarezerwowany; zależy od aplikacji, która tworzy obraz
0008h2 bajtyzarezerwowany; zależy od aplikacji, która tworzy obraz
000Ah4 bajtyOffset, tzn. początkowy adres bitów tablicy pikseli.

Nagłówek DIB

[edytuj |edytuj kod]

Ta struktura przekazuje aplikacji informacje o obrazie, który będzie wyświetlany. Nagłówek jest dopasowany do wewnętrznych mechanizmów systemów Windows i OS/2 i posiada 7 różnych wariantów. Wszystkie z nich zawierają pole DWORD (32-bitowe), określające rozmiar nagłówka, dzięki niemu można określić typ nagłówka. Duża liczba wersji nagłówka jest spowodowana tym, że Microsoft rozszerzał informacje w nim zawarte kilka razy. Nowe, rozszerzone nagłówki mogą być używane z niektórymi funkcjami GDI i zapewniają większą funkcjonalność. Odkąd GDI wspomaga funkcję ładowania bitmap, większość aplikacji korzysta z tych funkcji. Jedną z konsekwencji jest to, że format odczytywanych plików zależy od wersji systemu, na którym uruchomiona jest aplikacja.

RozmiarNazwa nagłówkaWspierane systemy operacyjneDodane funkcjonalności (rosnąco)w plikach stworzonych przez program
12BITMAPCOREHEADER
OS21XBITMAPHEADER
OS/2 i wszystkie wersje Windows począwszy odWindows 3.0
64BITMAPCOREHEADER2
OS22XBITMAPHEADER
OS/2Dodaje pół-tonowanie. Dodaje kompresje RLE oraz Huffman 1D.
40BITMAPINFOHEADERwszystkie wersje Windows począwszy odWindows 3.0Likwiduje kompresje RLE-24 oraz Huffman 1D. Dodaje obsługę 16bpp oraz 32bpp pikseli. Dodaje opcjonalną maskę bitów RGB.Adobe Photoshop
52BITMAPV2INFOHEADERBrak danych.Usuwa opcjonalną maskę bitów RGB. Dodaje obowiązkową maskę bitów RGB.
56BITMAPV3INFOHEADERBrak danych.Dodaje obowiązkową maskę bitową dla kanału alfa.Adobe Photoshop
108BITMAPV4HEADERwszystkie wersje Windows począwszy od95/NT4Dodaje typprzestrzeni barw orazkorekcje gamma.
124BITMAPV5HEADERWindows98/2000 i nowsze.Dodajeprofile kolorów ICC.

Nagłówek BITMAPINFOHEADER składa się z 40 bajtów i zbudowany jest w następujący sposób:[1]

Offset względem
początku pliku
Rozmiar
w bajtach
NazwaOpis zawartości
144biSizeWielkość nagłówka informacyjnego. Długość stąd do końca nagłówka – 40, czasem mniej
184biWidthSzerokość obrazu w pikselach
224biHeightWysokość obrazu w pikselach
262biPlanesLiczba warstw kolorów, zwykle 1
282biBitCountLiczba bitów na piksel
304biCompressionAlgorytm kompresji
344biSizeImageRozmiar samego rysunku
384biXPelsPerMeterRozdzielczość pozioma
424biYPelsPerMeterRozdzielczość pionowa
464biClrUsedLiczba kolorów w palecie
501biClrImportantLiczba ważnych kolorów w palecie (gdy 0, to wszystkie są ważne); pole to stosuje się przy animacji bitmap poprzez rotację kolorów. Oznacza, od którego koloru paleta ma być podmieniana.
511biClrRotationFlaga sygnalizująca, czy ma następować rotacja palety (domyślnie 0 – brak rotacji). Jeśli flaga jest ustawiona na 1, następuje podmiana palety.
522biReserved

Paleta kolorów

[edytuj |edytuj kod]

Po części nagłówkowej pliku BMP zazwyczaj znajduje się paleta.[1]Można tu wyodrębnić 2 przypadki:[1]

  • W trybach 8-bitowych paleta zbudowana jest z opisów kolorów, gdzie każdy kolor opisany jest za pomocą 4 bajtów (B, G, R, nieużywany lub alpha). Każdą ze składowych koloru należy podzielić przez 4.
  • W trybach o większej liczbie kolorów niż 256 paleta nie występuje, a kolor piksela w obrazie zapisywany jest przy pomocy numeru kolejnego koloru, który jest wyliczany ze wzoru:
    Nr Koloru =R + 256 ⋅G + 65536 ⋅B,
    gdzie:
    • R – wartość składowej czerwonej,
    • G – wartość składowej zielonej,
    • B – wartość składowej niebieskiej.

Tabela pikseli

[edytuj |edytuj kod]

Następnie w pliku znajdują się dane obrazowe.[1]

Linie obrazu zapisywane są od dołu do góry.[1]

W obrazach TrueColor punkty zapisywane są w kolejności B, G, R (trzy bajty), w obrazach o mniejszej liczbie kolorów zapisywane są one na mniejszej ilości bajtów – przykładowo 16-bitowabitmapa (High Color) zapisuje na dwóch bajtach [5bitów B][6bitów G][5bitów R]. Dla plików z liczbą kolorów mieszczącą się w liczbie ośmiobitowej kolor zapisywany jest jako numer koloru (wskaźnik) w palecie.

Należy zwrócić uwagę, że (poniekąd ze względów historycznych) w wierszu danych pliku BMP jest zawsze zapisana wielokrotność 4 bajtów. Jeśli wiersz danych ma długość (w bajtach) inną niż podzielna przez 4, to dopisuje się bajty o wartości 0, tak aby w danym wierszu ilość bajtów była wielokrotnością 4.

Animowane bitmapy – powstają z cyklicznej podmiany kolorów w palecie, przykładem może być logo startowe systemu Windows. Animowane bitmapy można tworzyć dla obrazów 8-bitowych.

Należy zwrócić szczególną uwagę na zapis kolejnych bajtów danych obrazu: nie jest to [R, G, B], ale [B, G, R].

Zobacz też

[edytuj |edytuj kod]

Przypisy

[edytuj |edytuj kod]
  1. abcdefgMarek Sawicki. BMP - format plików graficznych. „Bajtek”. 11/92 (87), s. 25-27, listopad 1992. [dostęp 2026-02-18]. 
  2. MSDN - BITMAPINFOHEADER:BI_ALPHABITFIELDS w członie biCompression(ang.)
  3. MSDNTypy nagłówków bitmapy(ang.)
Formaty plików graficznych
Formatygrafiki rastrowej
używającekompresji stratnej
używającekompresji bezstratnej
bez kompresji
Formatygrafiki wektorowej
2D
3D
Formaty złożone
(grafika rastrowa i wektorowa)
Encyklopedie internetowe (rodzina formatów plików):
Źródło: „https://pl.wikipedia.org/w/index.php?title=Windows_Bitmap&oldid=79110764
Kategoria:

[8]ページ先頭

©2009-2026 Movatter.jp