Betűtipus boolean tömbbé alakítása

Betűtipus boolean tömbbé alakítása
2017-10-20T09:24:46+02:00
2017-10-20T10:36:39+02:00
2022-10-15T21:30:32+02:00
*deleted_86291744
Sziasztok!

Készítek egy LED kijelzős táblát, ami 10*60 pixel lesz. Ehhez írok egy programot C#-ban amivel lehet szerkeszteni a kijelzőt, és szeretnék egy funkciót hozzá, ami ahelyett, hogy a felhasználó pixelenként megszerkeszti a kijelző tartalmát, elhelyez egy futó szöveget.

Ehhez szeretnék egy programot írni, ami átalakítja a rendszerben található betűtípusokat x*y méretű tömbbé(8x8 lenne az ideális, de gondolom vannak betűtípusok amiknek ez kicsi). 

C#-ban azzal próbálkoztam, hogy egy 8x8 pixeles bitmap-re rárajzolom 8 pixel méretben a karaktert, de a lentebbi paranccsal nem működik(hagy ki pixeleket magasságban illetve sok karakter olvashatatlan):

g.DrawString("i", new Font("Courier New", 8, GraphicsUnit.Pixel), Brushes.Black, new Point(0, 0));
Próbálkoztam még a MikroElektronika GLCD Font Creator nevű programmal, ami szépen meg is csinálja, de nem választhatom meg a szélességet/magasságot, illetve a kimeneti formátuma egy hexadecimális számokat tartalmazó tömb, viszont egy karakter tömb elemeinek a száma nem egyezik meg sem a szélességgel, sem a magassággal, így nem tudtam értelmezni.

Van más ötletetek hogyan oldhatom meg a feladatot C#, PHP vagy JavaScript nyelven?
Mutasd a teljes hozzászólást!
1 byte 8 pixel. De a karaktered 11 pixel magas. A maradék 3 pixelt valahol tárolni kell, és ez a kódolás egy teljes byte-ot használ erre (amiből 5 bitet egyszerűen nem használ) - ugyanis töredék-byte-okkal dolgozni nem túl kényelmes.
Mutasd a teljes hozzászólást!

  • Ma már szinte minden betűtípus jóval nagyobban olvasható csak, mint 8x8... főleg mióta TTF van, azaz szinte minden font vektoros.
    Esetleg próbálkozz "Courier New" helyett "Small" típussal.
    Legjobban akkor jársz, ha megszerkeszted magadnak a 8x8 betűket.
    Mutasd a teljes hozzászólást!
  • Az említett program elég szépen betölti.
    Ezt a Courier New-ból csinálta.

    A P betűből egyébként ezt a tömböt generálja, ha valaki megfejti nekem az is nagy segítség lenne. :)

    0x06, 0x00, 0x00, 0x82, 0x00, 0xFE, 0x00, 0xA2, 0x00, 0x22, 0x00, 0x1C, 0x00, 0x00, 0x00, // Code for char P
    Azért nem értem, mert sem a magassága sem a szélessége nem egyezik a tömb elemek számával.

    Egyébként, mint írtam 8x8 lenne az ideális, de 10 magas képernyőm lesz. Ez a program 11 pixel magasan készítette el, szóval szerintem találnék nekem megfelelő betűtípust, ez csak egy példa volt.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Ezek a számok függőlegesen vannak, a 82 a két kis kunkor, az FE a 7-pixeles vonal, stb. A köztes 0-k meg a 9-11-es pixeleket kódolják, csak ott pont nincs semmi. A legelső 6-os meg talán a szélesség.
    Mutasd a teljes hozzászólást!
  • Hű, ezt nem teljesen értem.
    A képen 11 pixel magas és 7 pixel széles egy karakter a programban, és generált 15 tömb elemet.
    Azt a részét értem, hogy egy hexa számot átalakítok binárissá, és úgy kapok meg egy sort vagy oszlopot. De mi az a plusz 4/8 tömb elem?

    Ha ezt megjelenítem úgy, hogy egy hexa szám egy sort jelöl, akkor így nézne ki.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Visszatérve a kérdésre: emlékeim szerint a szöveges (pl. cmd) ablakok bekonfigurálhatók 8x8-as karakterek használatára, utána meg egy screenshotot kell csak feldarabolni.
    Az első gondolatom meg az volt, hogy tetszőleges "régigép" emulátorból lehet ilyesmit screenshotolni, illetve szinte biztos, hogy neten is találhatsz pl. játékprogramozással foglalkozó lapokon, mert ott ez egy gyakori igény. Csak keress olyat, hogy 8x8 character set.
    Mutasd a teljes hozzászólást!
  • 1 byte 8 pixel. De a karaktered 11 pixel magas. A maradék 3 pixelt valahol tárolni kell, és ez a kódolás egy teljes byte-ot használ erre (amiből 5 bitet egyszerűen nem használ) - ugyanis töredék-byte-okkal dolgozni nem túl kényelmes.
    Mutasd a teljes hozzászólást!
  • Már nem engedte szerkeszteni az előző hozzászólásom. Úgy daraboltam fel, hogy 8 bit legyen(mint egy másik betűtípusnál próbálkoztam), ebben több is lehet, tehát biztosan rossz, de a megjelenített rész sem stimmel.

    Már találtam egy 8x8as betűtípust, de ha többet is át tudnék alakítani ilyen formára(akár 10 vagy annál magasabb pixel számban), az is tenne hozzá a kijelző értékéhez.

    Mint írtam 11 pixel magasan készítette el a program ezt a betűtípust, tehát gondolom lehetséges más betűtípusokat 10 pixel magasan megcsinálni vele.
    Mutasd a teljes hozzászólást!
  • Sikerült. :) 

    Első byteot kihagytam, a másodiktól kezdve pedig duplán raktam őket össze, köszönöm szépen.

    Ez a válasz elfogadható megoldásnak? A program átalakítja nekem és olvasni is tudom, nekem megfelel.
    Mutasd a teljes hozzászólást!
  • Azt fogadd el, ami segített megoldani, rávezetett stb. Célszerűen tevemadárét!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd