2012-09-09 14 views
8

jestem nowicjuszem w programowaniu plików BMP i Sprawdziłem tę stronę internetową, aby dowiedzieć się o nagłówku bmp .. http://www.daubnet.com/en/file-format-bmpbitmapy rozmiar nagłówka pliku

wydaje się, że w nagłówku pliku BMP jest 54 bajtów.

Używając farby, utworzyłem prosty obraz 10x10 i zapisałem go w 24 bitach. więc zgodnie z prostą matematyką rozmiar pliku powinien wynosić 10 * 10 * 3 + 54 = 354 bajtów.

, ale edytor heksadecymalny i eksplorator plików zwrócił rozmiar 374 bajtów.

Więc mam różnicę 20 bajtów i nie wiem dlaczego.

czy możesz mi powiedzieć, dlaczego?

wielkie dzięki!

+0

Wyściółka do wyrównania? Zamiast "obliczania" użyj "SizeOf". (Pomaga również wspomnieć o języku programowania, o który pytasz, znacznie ułatwia udzielenie odpowiedzi.) –

+2

Używa MSPaint, a nie języka programowania :) – nneonneo

+0

@nneonneo: "Jestem nowicjusz w programowaniu plików bmp "to pierwsze zdanie pytania. –

Odpowiedz

10

Linie w BMP są wypychane do wielokrotności 4 bajtów.

Bez dopełnienia każda linia ma 3 * 10 = 30 bajtów. W przypadku dopełnienia każda linia ma 32 bajty, więc dane obrazu mają rozmiar 320 bajtów. Zatem rozmiar pliku wynosi 54 + 320 = 374 bajty.

+1

Cześć, Wielkie dzięki za odpowiedź. To ma sens ... ale w moim programie mam matrycę 10x10 pikseli, każdy piksel to RGB. Czy mam do obliczenia dodatkowe 20 bajtów danych rastrowych? Jestem trochę zdezorientowany ... jeszcze raz dziękuję za pomoc! – user1657743

+0

@ user1657743: nie musisz umieszczać niczego w wyściółce; to tylko śmieciowe bajty, których nikt (poza steganografami) nie zobaczy. – nneonneo

Powiązane problemy