Forum: Mikrocontroller und Digitale Elektronik TTF auf Controller renderm?


von Werner (Gast)


Lesenswert?

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

von Jim M. (turboj)


Lesenswert?

Ü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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Sascha (Gast)


Lesenswert?

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?

von W.S. (Gast)


Lesenswert?

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.

von Werner (Gast)


Lesenswert?

Schade... Mit was komprimiert man solche monochromen Bitmapdaten am 
besten, damit man dass auf dem Controller wieder entpackt bekommt?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Kommt auf den Aufwand an, den Du treiben willst. Um welche Größe geht's 
denn?

von Zeno (Gast)


Lesenswert?

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

von Georg (Gast)


Lesenswert?

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

von Andreas K. (andreasmc)


Lesenswert?

Werner schrieb:
> Schade... Mit was komprimiert man solche monochromen Bitmapdaten am
> besten, damit man dass auf dem Controller wieder entpackt bekommt?

Maximal RLE

von Rolf M. (rmagnus)


Lesenswert?

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.

von mmmmm (Gast)


Lesenswert?

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.

von Philipp K. (philipp_k59)


Angehängte Dateien:

Lesenswert?

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
von Jojo S. (Gast)


Lesenswert?

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.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

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
Noch kein Account? Hier anmelden.