BMP (format)

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire
Ten artykuł dotyczy formatu plików graficznych. Zobacz też: Beep Media Player, odtwarzacz muzyki dla Linuksa.

BMP - to jeden z formatów plików z grafiką bitmapową. Opracowany pierwotnie jako natywny dla systemu OS/2, wykorzystywany później także w interfejsach systemów z rodziny Microsoft Windows (TM), 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żytych kolorach. Obsługuje tylko tryb RGB.

Struktura pliku BMP

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

  • nagłówka
  • palety typu RGB (opcjonalna)
  • danych obrazowych

Nagłówek pliku BMP składa się z 54 bajtów i zbudowany jest w następujący sposób:

Offset względem
początku pliku
Rozmiar
w bajtach
Nazwa Opis zawartości
0 2 bfType Sygnatura pliku, zawsze przyjmuje wartość BM
2 4 bfSize Długość całego pliku w bajtach
6 2 bfReserved1 Pole zarezerwowane, zwykle ma wartość 0
8 2 bfReserved2 Pole zarezerwowane, zwykle ma wartość 0
10 4 bfOffBits Pozycja danych obrazowych w pliku
14 4 biSize Wielkość nagłówka informacyjnego. Długość stąd do końca nagłówka - 40, czasem mniej
18 4 biWidth Szerokość obrazu w pixelach
22 4 biHeight Wysokość obrazu w pixelach
26 2 biPlanes Liczba warstw kolorów, zwykle 1
28 2 biBitCount Liczba bitów na piksel
30 4 biCompression Algorytm kompresji
34 4 biSizeImage Rozmiar samego rysunku
38 4 biXPelsPerMeter Rozdzielczość pozioma
42 4 biYPelsPerMeter Rozdzielczość pionowa
46 4 biClrUsed Liczba kolorów w palecie
50 1 biClrImportant Liczba 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.
51 1 biClrRotation Flaga sygnalizująca czy ma następować rotacja palety (domyślnie 0-brak rotacji). Jeśli flaga jest ustawiona na 1 następuje podmiana palety.
52 2 biReserved

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

  • 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, nie uż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 pixela w obrazie zapisywany jest przy pomocy numeru kolejnego koloru który jest wyliczany ze wzoru:

    Nr Koloru = + 256*+ 65536*

    gdzie to:
    R - wartość składowej czerwonej
    G - wartość składowej zielonej
    B - wartość składowej niebieskiej

Następnie w pliku znajdują się dane obrazowe.

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

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-bitowa bitmapa (High Color) zapisuje na dwóch bajtach [6bitów B][5bitó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.

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ż


This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net