Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Konwersja Bitmapy do tablicy w C, aby wyświetlić na LCD

Marianekk 23 Jun 2010 15:05 5420 12
  • #1
    Marianekk
    Level 13  
    Poszukuję programu, który wykona konwersję Pliku *.BMP do postaci tablicy, z której poszczególne bajty mogłbym wysłać do wyświetlacza TFT. Czy jest taki gotowy program? Sporo naszukałem się na elektrodzie, ale jeszcze takiego programiku, dobrze działąjącego nie udało mi się znaleść.
    Mam wyświetlacz TFT 320x240 z sterownikiem SSD1963 z magistralą danych 8 - bitową.
    Z tego co wyczytałem bitmapa 24 - bitowa, za nagłówkami zawiera bezpośrednio obszar z danymi 3 bajtowymi: R(1bajt) + G(1bajt) + B(1bajt). Wiec taka konwersja nie powinna być skomplikowana, wystarczy chyba odrzucić nagłówki i skopiować ten obszar.
    Niestety nie jestem specjalistą od aplikacji komputerowych, żeby taki program stworzyć, nie mam nawet żadnego środowiska programistycznego. Dlatego szukam gotowego rozwiązania.
  • Helpful post
    #2
    flapo213
    Level 21  
    Witaj,

    Ja to robię przy pomocy GIMP. Dla linucha to klasyka a w windowsie trzeba zainstalować ale są wersje pozdrawiam.
  • #4
    Anonymous
    Level 1  
  • Helpful post
    #6
    adamusx
    Level 27  
    Stąd możesz ściągnąć konwertery dla wyświeltaczy LCD generujące gotowe tablice:
    Konwertery
  • #7
    Marianekk
    Level 13  
    Zabieram się za sprawdzenie opcji, o których piszecie, a w między czasie sprecyzuje o co mi chodzi:
    Pierwszy raz robię sterowanie wyświetlaczem graficznym konktretnie TFT 320x240 ze sterownikiem SSD1963 (magistrala danych 8 - bitowa). Sterowanie realizuję w oparciu o procek AT91SAM7X256, programuję w WinARM. Narazie zrealizowałem wyświetlanie jednego koloru na całym ekranie. Teraz chcę wysłać jakieś obrazy - stąd właśnie potrzeba konwersji BMP do tablicy (tak to sobie wyobrażam że bajty zapisane w tablicy wysyłam kolejno na wyświetlacz).
    Dolecowo chcę zrobić kalwaiaturę dotykową (wyświetlacz jest z touchpanelem) + wyświetlanie krótkich komentarzy + jakieś menu graficzne.
  • #8
    Anonymous
    Level 1  
  • #9
    Marianekk
    Level 13  
    A wiec tak:
    Przemiatanie Left to Right, up to down;
    RGB;
    Endian narazie zostawmy :]
    Każdy kolor to 6 bitów - wysyła się to następująco:
    Konwersja Bitmapy do tablicy w C, aby wyświetlić na LCD

    Dodano po 5 [godziny]:

    Sprawdziłem wszystkie proponowane konwertery. Dokonałem konwersji takiej malutkiej bitmapy:
    Konwersja Bitmapy do tablicy w C, aby wyświetlić na LCD
    Programiki od adamusx działają fajnie, ale tylko dla maksymalnych rozmiarów 132x132 pixeli. Za pomocą jednego z nich uzyskałem następująca tablicę: (pokazałem kawałek)
    Konwersja Bitmapy do tablicy w C, aby wyświetlić na LCD
    Fajnie bo w tablicy są kolejno po 3 bajty dla RGB.
    Ograniczenia nie ma program bmp2c. Oto kawałek tablicy jaką uzyskałem:
    Konwersja Bitmapy do tablicy w C, aby wyświetlić na LCD
    pixel jest zapisany w 16 bitach, musze jeszcze wykumać jaka jest ta organizacja bitowa.
    Potem przyszedł czas na GIMPa tu też uzyskałem tablicę ale problem, że wygląda ona tak:
    Konwersja Bitmapy do tablicy w C, aby wyświetlić na LCD
    Czy ktoś wie dlaczego to takie nieczytelne?
  • #10
    flapo213
    Level 21  
    Witaj,

    Odnośnie GIMP to też miałem problem podobny do Twojego, wybrałem go jedynie ze względu na to że można w nim ustawić sobie opcje do dajkiego rozmiaru i jakiego typu ma być twoja bitmapa. Aby zrozumieć dlaczego taka jest konwersja musisz poczytać jak zbudowana jest bitmapa w stosowynych głębiach koloru i rozjaśni Ci się trochę, ale faktycznie dawno nie korzystałem z tej konwersji ale widzę że jeszcze coś inaczej jest. Ale jedno wiem że to na pewno działa ja tak właśnie wyświetlam te obrazki. Pozdraiwam
  • #11
    Marianekk
    Level 13  
    Aplikację zrobiłem w ten sposób, że do pamięci w postaci karty SD zapisuję bit mapy i bezpośrednio z pliku ładuję na wyświetlacz.
    Pozdrawiam
  • #12
    yogi455
    Level 12  
    Kolego sorki, że tak od razu bezpośrednio pytam czy udostępnisz kod. Mój problem tkwi w tym, że siedzę przeszło 2 tygodnie i z bitmapy na wyświetlaczu pozostaje jeden wielki szum. Jeśli możesz to podziel się bo mam nóż na gardle ;/
  • #13
    Marianekk
    Level 13  
    Polecam lekturę:
    "Mikrokontrolery AT91SAM7 w przykładach", Robert Brzoza-Woch, wydawnictwo BTC.
    Tam jest wszystko dokładnie opisane, a dodatkowo ze strony BTC można ściągnąć kody źródłowe.