Hallo, hat jemand schon mal versucht auf einem Controller der Größe ATmega328 oder STM32F030 Truetypefonts zu rendern? So könnte man Texte direkt auf ein Grafik-LCD schreiben. Werner
Übliche TTF Bibliotheken sind viel größer als ein paar am PC vorgerenderte Bitmaps bei für solche kleinen µCs verwendbaren LCD Auflösungen. TTF Libs sind sinnvoll erst bei vollwertigen Linux SOCs (MMU) mit RAM im mehrstelligen MB Bereich einsetzbar.
Du kannst Dir ja mal aus Jux den Sourcecode von Freetype zu Gemüte ziehen. Das ist ein Truetype- und Type1-Renderer. http://freetype.org/ Nein, das passt weder vorne noch hinten auf einen µC der AVR-Klasse.
Hallo, ich habe selbst auf einem ARM9, der mit WVGA Display arbeitet auf TTF verzichtet. Habe an dieser Stelle mein eigenes Zeichesystem entwickelt, weil es sonst einfach zu langsam geworden wäre. Es reicht ja völlig aus, wenn die Bitmaps in Komprimierter form im Flash abgelegt werden. Sonst müsste man eh hin auch ein TTF-Font nur nach den gebrauchten Zeichen aussortieren, wenn das überhaupt geht? Das ist jetzt meine Frage, was für Tools stehen dann PC-Seitig dafür zur verfügung?
Sascha schrieb: > Das ist jetzt meine Frage, was für Tools stehen dann PC-Seitig dafür zur > verfügung? Lade dir die Lernbetty runter, da findest du nen kleinen Font-Compiler, der dich in die Lage versetzt, dir eigene Fonts zu kreieren. ansonsten sollte es für jemanden, der Pascal kann und Delphi oder Lazarus bedienen kann, keine Hürde sein, sich eine Anwendung selber zu schreiben, die jedes Zeichen eines ausgewählten Fonts in gewünschter Größe auf einen CANVAS schreibt und selbigen anschließend als Eintrag in eine Textdatei zu vefrachten, die ihrerseits dem o.g. Font-Compiler als Input dienen kann. W.S.
Schade... Mit was komprimiert man solche monochromen Bitmapdaten am besten, damit man dass auf dem Controller wieder entpackt bekommt?
Kommt auf den Aufwand an, den Du treiben willst. Um welche Größe geht's denn?
Werner schrieb: > Schade... Mit was komprimiert man solche monochromen Bitmapdaten am > besten, damit man dass auf dem Controller wieder entpackt bekommt? Ich würde mal sagen gar nicht. Die Dateien die W.S. erzeugt sind eigentlich einfache Textdateien. Für die Software die eine Komprimierung oder besser Dekomprimierung erfordert dürfte auf einem AVR wohl kaum Platz sein. Zeno
Werner schrieb: > Mit was komprimiert man solche monochromen Bitmapdaten am > besten, damit man dass auf dem Controller wieder entpackt bekommt? Das ist ziemlicher Unsinn - wohin sollen sie denn entpackt werden? Schriften werden ständig gebraucht, die müsste man ins RAM entpacken, und das ist viel aufwendiger als wenn sie einfach bloss im Flash stehen. Georg
Werner schrieb: > Schade... Mit was komprimiert man solche monochromen Bitmapdaten am > besten, damit man dass auf dem Controller wieder entpackt bekommt? Maximal RLE
Andreas K. schrieb: > Werner schrieb: >> Schade... Mit was komprimiert man solche monochromen Bitmapdaten am >> besten, damit man dass auf dem Controller wieder entpackt bekommt? > > Maximal RLE War auch mein erster Gedanke, wobei man dann schon eine recht große Schriftgröße braucht, damit das nicht mehr Platz braucht als ohne Komprimierung.
Werner schrieb: > Schade... Mit was komprimiert man solche monochromen Bitmapdaten > am > besten, damit man dass auf dem Controller wieder entpackt bekommt? Normalerweise gar nicht, man codiert den Kram derart, dass man Zeichen mit möglichst wenig Rechenaufwand zum I/O rausschieben kann. Das wird für 99 % der Anwendungen bereits mehr als ausreichend sein.
So ab STM32, AVR leider nur mit Displays die selbst auf SPI Flash zugreifen können, kann man sich den Font als Pixeldaten mit 16bitINT pro Pixel in ein schnelles SPI Flash vorspeichern und dann nur noch mit DMA verschieben.. Das geht dann schon Fix. Im angehängten Bildchen sieht man zwar einen Table, da schau ich aber nur wann welcher Font anfängt.. die restlichen Positionen sind Ascii basiert. Asciicode*Fontwidth*Fontheight ;)
:
Bearbeitet durch User
touchGFX kann mit TTFs umgehen. Texte/Character werden von einem Tool vorab gerendert, das braucht dann natürlich einiges an Flash. Das läuft auf den grösseren M3..M7 mit ext. SDRAM und Flash, STM32F4 oder LPC1788 als minimum. Sieht dafür um einiges besser aus als die Klötzchengrafik üblicher mini Displays.
Die Minimalform (nicht schön aber lesbar) sin 5x7 Pixel für einen Buchstaben. Nehmen wir 5x8 (BxH) gleich mit dem notwendigen Zeilenzwischenraum, so benötigst du 5 Byte pro Zeichen - da lohnt sich ein Komprimieren bestimmt nicht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.