Wpis z mikrobloga

Mam ja taki problem - chciałem napisać sobie program który z pliku .bmp wyciągnie mi samą tablicę pikseli i zapisze w postaci tekstowej, taką którą jak się skopiuje do kodu stworzy dwuwymiarową tablicę (potrzebuję tego do wyświetlenia obrazu na LCD z STM32). Problem jest taki - opierając się na specyfikacji pliku .bmp napisałem początek programu który wyciąga mi rozmiar pliku i offset, i z tym nie ma kłopotów. Jednak w przypadku obrazka który analizuję wychodzi że offset wynosi 54, ale przeglądając plik w hex editorze od bajtu 54 są same jedynki, i to przez duuużą część pliku. Po jakimś fagmencie zaczynają się na przemian FF i 00 i od czasu do czasu wciśnięte jest jakieś 66, B6 albo inny bajt, i prawdziwa tablica pikseli zaczyna się nie w 54, a 244854. Co jest nie tak?
#programowanie #pomocy #informatyka
xerxes931 - Mam ja taki problem - chciałem napisać sobie program który z pliku .bmp w...

źródło: comment_QVL7hXGqLNow8FuqLVut0FgccJurY1Is.jpg

Pobierz
  • 34
  • Odpowiedz
@xerxes931: Obejrzyj nagłówek tego bmp. Masz w nim informację o ilości kolorów, typie kompresji itd. Jak jest w 256 kolorach, to najpierw masz paletę, a dopiero potem dane. O ile dobrze pamiętam, bo bmp bawiłem się pół życia temu :(
  • Odpowiedz
@januzi: obrazek mam 24 bitowy, a wyświetlacz LCD ma tryb piksela 16 i 18 bitowy (do wyboru). Chciałem jakoś w gimpie zmienić głębię kolorów na 16 bit ale się nie dało, tylko na 8 (przynajmniej tak mi pokazywało w właściwościach pliku już po edycji)
  • Odpowiedz
@januzi: ale te dane to jest chyba tablica kolorów, a jak mam wyliczyć kiedy zaczyna się tablica pikseli? Bo z nagłówka da się wyciągnąć tylko rozmiar tablicy i głębię kolorów.
  • Odpowiedz
@januzi: a czekaj, to ta tablica idzie jakby od prawego dolnego rogu obrazka? Tzn. ta cała masa FF FF FF to jest ten biały pasek z "wow" na dole? Myślałem że idzie "po ludzku" czyli od lewego górnego
  • Odpowiedz
@xerxes931: Jeszcze wymyśl, jak pozbyć się zbędnych 8 bitów. Chociaż samo (r x g x b)/256 powinno chyba wystarczyć, o ile nie masz nic przeciwko uśrednianiu ;)
  • Odpowiedz