eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Konwersja obrazka do tablicy znaków
Ilość wypowiedzi w tym wątku: 5

  • 1. Data: 2012-03-06 16:24:20
    Temat: Konwersja obrazka do tablicy znaków
    Od: Viki <V...@g...pl>

    Witam.

    Mam przykładowy program wyświetlający bitmapę na wyświetlaczu siemens S60.
    Obrazka nie posiadam, mam tylko jego zrzut do tablicy znaków.

    Wygląda to tak:

    prog_uint16_t color_logo[] = {
    // Image width: 50px, Height: 50px
    // Image size: 5000 bytes (Width x Height x 2(word=2bytes))
    0xFFD9, 0xFFFB, 0xFFFD, 0xFFFF, 0xF7FF, 0xEFDF, 0xF7FF, 0xF7FF,
    0xF7FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xFFFF, 0xFFFF, 0xFFDF,
    0xFFFE, 0xFFDD, 0xFFBC, 0xFF9C, 0xFFBC, 0xFFBC, 0xFFBC, 0xFFBC,
    0xFF5B, 0xFF7B, 0xFF5A, 0xFF7B, 0xFFBC, 0xFF9C, 0xFF7B, 0xFFFC,
    0xFFFB, 0xFFFA, 0xFFDB, 0xFFBB, 0xFFBC, 0xFFFE, 0xFFFF, 0xFFFF,
    0xFFFF, 0xF7FF, 0xF7FF, 0xF7FF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFDF,
    *
    *
    *
    *
    };

    Na wyświetlaczu pojawia się przykładowy obrazek.
    No i próbuję wydedukować jak przejść z obrazka na taki zapis.
    Jeśli dobrze rozumiem z opisu tablicy obrazek ma rozdzielczość 50x50
    pikseli.
    Przeliczyłem ilość elementów w tablicy i wyszło mi 2496 elementów.
    Skąd więc zapis:
    // Image size: 5000 bytes (Width x Height x 2(word=2bytes)) ??

    Próbowałem programem "Image converter" zrobić zrzut obrazka 50x50 pix
    i otrzymywałem zapis:
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    czyli element w tablicy ma 8 a nie 16 bitów jak w przykładzie.
    Wszystkie próby zakończyły się wyświetleniem krzaków.
    Jak należy przygotować obrazek, ile bitów na kolor? i jak to potem
    przekonwertować?

    Proszę o jakieś sugestie.

    Pozdrawiam.


  • 2. Data: 2012-03-06 17:41:29
    Temat: Re: Konwersja obrazka do tablicy znaków
    Od: MKi <e...@t...op.pl>

    W dniu 2012-03-06 17:24, Viki pisze:
    > Witam.
    >
    > Mam przykładowy program wyświetlający bitmapę na wyświetlaczu siemens S60.
    > Obrazka nie posiadam, mam tylko jego zrzut do tablicy znaków.
    >
    > Wygląda to tak:
    >
    > prog_uint16_t color_logo[] = {
    > // Image width: 50px, Height: 50px
    > // Image size: 5000 bytes (Width x Height x 2(word=2bytes))
    > 0xFFD9, 0xFFFB, 0xFFFD, 0xFFFF, 0xF7FF, 0xEFDF, 0xF7FF, 0xF7FF,

    [...]

    > Na wyświetlaczu pojawia się przykładowy obrazek.
    > No i próbuję wydedukować jak przejść z obrazka na taki zapis.
    > Jeśli dobrze rozumiem z opisu tablicy obrazek ma rozdzielczość 50x50
    > pikseli.
    > Przeliczyłem ilość elementów w tablicy i wyszło mi 2496 elementów.
    > Skąd więc zapis:
    > // Image size: 5000 bytes (Width x Height x 2(word=2bytes)) ??

    50 razy 50 to 2500 pikseli. Czyli tablica powinna mieć 2500 pozycji.
    Nie pomyliłeś się o 4? A może autor tablicy zaniedbał 4 pikseli -
    to by były śmieci w rogu (prawym dolnym zapewne).

    Ewidentnie jest 16 bitów na piksel. To może być kodowanie 565
    (czyli 5 bitów czerwonego, 6 bitów zielonego, 5 bitów niebieskiego).
    Ale może być dowolne inne...

    Ja dla takich celów piszę sobie małe programiki, nie bazuję na
    ściągnięciach z sieci - szybciej mi idzie. Jeśli kodowanie kolorów
    jest 565, to w C możesz zastosować makro

    #define RGB(r,g,b) (((r) & 0xF8) << 8) | (((g) & 0xFC) << 3) | (((b) &
    0xF8) >> 3)

    które z 3 liczb 8-bitowych utworzy Ci liczbę szesnastobitową w rzeczonym
    kodowaniu.

    Pozdrowienia,
    MKi


  • 3. Data: 2012-03-07 13:29:10
    Temat: Re: Konwersja obrazka do tablicy znaków
    Od: Sławomir Szczyrba <c...@o...the.night>

    Klik-klik-klik... To Viki informuje :

    > Wszystkie próby zakończyły się wyświetleniem krzaków.
    > Jak należy przygotować obrazek, ile bitów na kolor? i jak to potem
    > przekonwertować?
    > Proszę o jakieś sugestie.
    >
    Np. tak:

    1) Przygotować obrazek o wymaganej wielkości
    2) ffmpeg -i <nazwa obrazka> -f rawvideo -pix_fmt rgb565 output.565
    3) dowolnym proramikiem przekonwertować pliczek output.565 na plik include
    (wynalazki typu bin2h czy mój ulubiony - reswrap Fox Toolikit)

    Najgorsze co Ci grozi, to konieczność sprawdzenia który bajt jest pierwszy
    a który drugi...

    Sławek
    --
    ________
    _/ __/ __/ This is my tagline, there're many like it, but this one is mine.
    \__ \__ \___________________________________________________
    ____________
    /___/___/ Sławomir Szczyrba steev/AT/hot\dot\pl


  • 4. Data: 2012-03-07 16:42:34
    Temat: Re: Konwersja obrazka do tablicy znaków
    Od: "J.F" <j...@p...onet.pl>

    Użytkownik "Viki" napisał w wiadomości
    >Mam przykładowy program wyświetlający bitmapę na wyświetlaczu siemens
    >S60.
    >Obrazka nie posiadam, mam tylko jego zrzut do tablicy znaków.
    >Wygląda to tak:
    >prog_uint16_t color_logo[] = {
    >// Image width: 50px, Height: 50px
    >// Image size: 5000 bytes (Width x Height x 2(word=2bytes))
    > 0xFFD9, 0xFFFB, 0xFFFD, 0xFFFF, 0xF7FF, 0xEFDF, 0xF7FF, 0xF7FF,

    >Na wyświetlaczu pojawia się przykładowy obrazek.
    >No i próbuję wydedukować jak przejść z obrazka na taki zapis.
    >Jeśli dobrze rozumiem z opisu tablicy obrazek ma rozdzielczość 50x50
    >pikseli.

    I pewnie jak gdzies doczytasz, to ten telefon mial 65536 kolorow,
    czyli 2 bajty na piksel.

    >Przeliczyłem ilość elementów w tablicy i wyszło mi 2496 elementów.
    >Skąd więc zapis:
    >// Image size: 5000 bytes (Width x Height x 2(word=2bytes)) ??

    Nie pomyliles sie przy liczeniu ? Moze jednak 2500 elementow ?

    C ma ta wlasciwosc ze niedopelnione tablice wypelnia zerami - ale
    musialaby miec zadeklarowany rozmiar 2500 elementow. Tu nie ma, wiec
    nie zachodzi.
    Zobacz procedure wyswietlania - moze tam jest 50x50 i brakujace bajty
    sa smieciami, a moze to jest rozmiar naprawde np 52x48

    >Próbowałem programem "Image converter" zrobić zrzut obrazka 50x50 pix
    >i otrzymywałem zapis:
    >0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    >czyli element w tablicy ma 8 a nie 16 bitów jak w przykładzie.

    bo zrzucales do takiego formatu. Rozne sa.

    >Wszystkie próby zakończyły się wyświetleniem krzaków.
    >Jak należy przygotować obrazek, ile bitów na kolor? i jak to potem
    >przekonwertować?
    >Proszę o jakieś sugestie.

    1) obejrzyj procedure wyswietlania, pewnie sie sporo dowiesz,
    2) jak sie nie dowiesz - poszukaj dokumentacji do wyswietlacza, moze
    cos ciekawego napisza.
    3) i oczywiscie trzeba napisac program, ktory na podstawie obrazka w
    ogolnie stosowanym formacie graficznym wygeneruje tresc w C

    J.


  • 5. Data: 2012-03-20 21:54:36
    Temat: Re: Konwersja obrazka do tablicy znaków
    Od: "Roman" <r...@o...eu>


    Użytkownik "Viki" <V...@g...pl> napisał w wiadomości
    news:jj5dng$ndd$1@inews.gazeta.pl...
    > > Jak należy przygotować obrazek, ile bitów na kolor? i jak to potem
    > przekonwertować?
    >
    > Proszę o jakieś sugestie.


    poszukaj "LCD Assistant" kolegi Radosława Kwietnia (na jego stronie leży
    sporo ciekawych rzeczy).

    Pozdrawiam
    Roman

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: