Forum: [C++] Algoritm för att skriva text på en 2d bild

Forum huvudsida -> Programmering -> [C++] Algoritm för att skriva text på en 2d bild

Sidor: 1

Till botten

Vitdom 20:22 - 18:e Februari 2009 | Post #1
Medlem
Inlägg: 71


Skicka PM
Tja, jag håller på och programmerar lite för G15 Keyboard LCDn. Nu är det så att jag inte kan få igång en del(där t.ex funktioner för att skriva text på LCDn finns) av SDKn som följer med produkten, så därför har jag bestämt att skapa egna funktioner.

När man skriver på LCDns bitmap som ser ut såhär:
  1. char pixels[160*43];

så är värden >=128 "på" och <128 är "av".

För att bespara mig energi varje gång jag håller på med pixlarna har jag skapat en funktion som förenklar detta:
  1. void setPixel(lgLcdBitmap160x43x1* bmp, int x, int y, bool set = true)
  2. {
  3. bmp->pixels[y * 160 + x] = set?0xFF:0x00;
  4. }


Origo är altså uppe i vänstra hörnet och x ökar åt höger och y ökar ner.

Det jag behöver är nu hjälp med att hitta på algoritmer för att skriva text på dessa pixlar.



-------------------------



Senast redigerad 20:24 - 18:e Februari 2009


Devmoon 22:27 - 18:e Februari 2009 | Post #2
Medlem
Inlägg: 12


Skicka PM
Hejsan, ser ut att kunna göra en hel del kul saker med den där displayenSmiley.

Du vill alltså rita tecken på skärmen.
Jag tänker genast på ett par saker du kan göra det är.

  • Skapa en font texture med hjälp av program
  • Skapa texturen med hjälp av ex FreeType2

Sedan med hjälp av texturen och information om glypherna kan du blitta dem på din 160x43 pixlars minnes block.

Vet inte hur mycket du har programmerat men att ladda in en bmp fil eller tga är väldigt lätt och sen är det bara att kopiera över : ).


-------------------------
Game Programmer



Vitdom 06:49 - 19:e Februari 2009 | Post #3
Medlem
Inlägg: 71


Skicka PM
Tack för ditt svar.

Det där med bmp/tga filen har jag redan prövat lite med, det fungerar inte helt som jag vill, det är inte jämna mellanrum mellan alla tecken.


Men FreeType2 verkar intressant, ska kolla upp det.
Woo! "FreeType 2 doesn't try to be a graphics library and thus only supports two pixel formats when rendering glyphs: monochrome 1-bit bitmaps, or 8-bit gray-level pixmaps." Det verkar som att detta kommer att duga.

Men vad menar du med textur? Jag behöver väl ingen textur? LCDn kan ju bara visa pixlar som endast kan vara "av" och "på".

-------------------------



Senast redigerad 06:51 - 19:e Februari 2009


Devmoon 08:36 - 19:e Februari 2009 | Post #4
Medlem
Inlägg: 12


Skicka PM
Helt korrekt du behöver bara ladda in data i en char array Smiley

http://www.freetype.org/freetype2/docs/tutorial/step1.html

Om du inte redan hittaden den länken så bör den gå igenom allt du behöver veta Smiley

-------------------------
Game Programmer



Sidor: 1

Forum huvudsida -> Programmering -> [C++] Algoritm för att skriva text på en 2d bild
Atom feed

Du får inte posta i den här tråden | Till toppen