Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięKonwersja bmp do formatu dla lcd 3310
Moderatorzy:Jacek Bogusz, Moderatorzy
cezść.
Próbuje napisać funkcję w C (Borland Builder), która z pliku bmp stworzy mi tablicę z danymi (też dla C - AVR-GCC) dla wyświeltalcza od Nokii 3310.
CAły problem w funkcji która upakuje piksele w bajt zgodny z przesyłaniem danych Horyzontalnie do wyświetlacza.
Macie może jakiś pomysł. Zakładam że bmp jest czarnobiała.
P.S. Są faktycznie w sieci jakieś programy ale ja znalazłem tylko dla pascala w DOS, a chciabym zrobic to dla Windowsa.
Próbuje napisać funkcję w C (Borland Builder), która z pliku bmp stworzy mi tablicę z danymi (też dla C - AVR-GCC) dla wyświeltalcza od Nokii 3310.
CAły problem w funkcji która upakuje piksele w bajt zgodny z przesyłaniem danych Horyzontalnie do wyświetlacza.
Macie może jakiś pomysł. Zakładam że bmp jest czarnobiała.
P.S. Są faktycznie w sieci jakieś programy ale ja znalazłem tylko dla pascala w DOS, a chciabym zrobic to dla Windowsa.
Coś takiego kiedyś robiłem.
Bajt jest zapisywany pixelami pionowo ? Bo już nie pamiętam.
Najpierw wrzucasz część graficzną z bmp'ka do tablicy (ale tak żeby jeden pixel = jeden bajt o wartości 0/1) a potem
Pewnie coś pomieszałem ale zauważysz to na lcd i poprawisz
A potem już tylko wypluć tablica2 w postaci textowej.
Bajt jest zapisywany pixelami pionowo ? Bo już nie pamiętam.
Najpierw wrzucasz część graficzną z bmp'ka do tablicy (ale tak żeby jeden pixel = jeden bajt o wartości 0/1) a potem
Kod: Zaznacz cały
i=0;
for(y=0; y<ileśtamy; y+=8){
for(x=0; x<ileśtamx; x++){
tablica2[i] = (tablica1[x][y+0] << 7) | (tablica1[x][y+1] << 6) | (tablica1[x][y+2] << 5) | (tablica1[x][y+3] << 4) | (tablica1[x][y+4] << 3) | (tablica1[x][y+5] << 2) | (tablica1[x][y+6] << 1) | (tablica1[x][y+7] << 0);
i++;
}
}
A potem już tylko wypluć tablica2 w postaci textowej.
Musialbys poszukac gdzies na portalach algorytmicznych, lub w literaturze... ani ja teraz nie pamietam dokladnie, ani nie sa to zbyt proste do wytlumaczenia algorytmy, wiec najsprawniej bedzie jak zajrzysz do ksiazki, ew. www. Jeszcze pikus jesli bys chcial skalowac obraz przez krotnosc 2 (ostatecznie przez pelna liczbe), ale tak jak podales (zwlaszcza ze tu weszlo by rozciaganie w jednej osi...)
Jesli to ma byc "masowe" to moze i warto, dla kilku/nastu obrazkow rozwaz wykozystanie w tym celu poprostu gotowych programow, a sam napisz tylko konwersje do wlasnego formatu (3310).
Jesli to ma byc "masowe" to moze i warto, dla kilku/nastu obrazkow rozwaz wykozystanie w tym celu poprostu gotowych programow, a sam napisz tylko konwersje do wlasnego formatu (3310).
Ok, załączam wspomniany wcześniej programik. Jakby ktoś miał jakieś pytania, to postaram sie odpowiedzieć.
Powodzenia
Tomek
Powodzenia
Tomek
- Załączniki
-
- fastlcd.zip
- Wystarczy rozpakować i uruchomić
- (82.7KiB)Pobrany 465 razy
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości