Hallo zusammen, ich nutze einen STM32 um ein IL9341 via SPI mit folgender Library anzusteuern: https://github.com/martnak/STM32-ILI9341 Das reine Darstellen von Text und Vierecken etc klappt auch schon. In der Lib sind leider nur 4 relativ kleine Schriftarten mitgeliefert, aber wenn ich demnächst den Touch Modus in Betrieb nehme, dann wären natürlich große (1/3 des Bildschirms) Buttons sinnvoll, die dann auch mit einer angemessen großen Schriftart beschriftet werden. Hier beginnt mein Problem. Wie erstelle ich eine größere Variante der Schriftart? Die größte die mitgeliefert wurde ist Arial_Narrow15x19. Wie bekomme ich die größer bzw eine neue angelegt? Viele Grüße Jens
Schau dir mal die Adafruit Library für Arduino an. Da sind etliche Fonts dabei. Mit etwas Glück sind sie identisch zu deiner Lib aufgebaut.
Alles muss man selber machen. Was sagt martnak dazu? Welches Format haben die Fonts? Gibt es ein Converter-Programm, das dieses Format erzeugt?
Georg G. schrieb: > Schau dir mal die Adafruit Library für Arduino an. Da sind etliche Fonts > dabei. Mit etwas Glück sind sie identisch zu deiner Lib aufgebaut. Danke, mache ich :). Gehirn einschalten schrieb: > Was sagt martnak dazu? Hat sich noch nicht gemeldet. Gehirn einschalten schrieb: > Welches Format haben die Fonts?
1 | const uint8_t Arial_Narrow8x12[] = { |
2 | /* Offset, Width, Height, BPL */
|
3 | 17,8,12,2, |
4 | |
5 | 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char |
6 | 0x02, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! |
Jeder Buchstabe ist quasi eine Codezeile, in der kleinsten Font (hier gezeigt) besteht es aus 17 Hex Zahlen, die nächstgrößere hat 21 HEX Zahlen pro Char. Gehirn einschalten schrieb: > Gibt es ein Converter-Programm, das dieses Format erzeugt? Den suche ich auch, aber bisher noch nichts was mich weiter brachte. VG Jens
Fonts von 4x6 bis 32x53 Pixel. Die Datei stammt hier aus dem Forum, so ca. aus dem Jahr 2009. Den original Thread und Autor finde ich leider nicht mehr.
Jens schrieb: > HEX Zahlen pro Char Und was machen diese Zahlen? Das Ausrufezeichen ist gut geeignet, um das nachzuvollziehen. Offset, Breite, Höhe hast du ja schon gefunden, BPL könnte Bytes per line heißen. Die erste "Hex-Zahl" (Byte) dürfte die Zeichenbreite sein, der Rest die Pixel (Bits).
Wenn du die ST-HAL-Librarys installiert hast, findest du da unter Middlewares/ST/STemWin/Software das Programm FontCvtST.exe. Das ist ziemlich komfortabel, und kann dir die Fonts aus den TTF-Fonts erzeugen. Solltest du dir mal anschauen!
Ich habe etwas ähnliches mit nem stm32f103 und einem externen SPI Flash umgesetzt.. allerdings arduino Die Daten werden direkt via dma bei 18Mhz als rgb24 an einen ili9488 geschickt. https://youtu.be/KhNEtgMYAAE
Ich habe mal TrueType Fonts probiert: https://github.com/k-omura/STM32_UIKit Weil das so gut geklappt hat, bin ich dann zu lvgl gewechselt.
Jens schrieb: > Wie bekomme ich die größer bzw eine neue angelegt? Dafür gibt es keine befriedigende Lösung - aufwärts skalieren geht natürlich, etwa indem man aus einem pixel 4 macht, aber das sieht halt beschissen aus. Um bei einem so vergrösserten Font Kanten ohne Treppenstufen zu erreichen muss man den Font komplett Pixel für Pixel manuell überarbeiten, das kommt einem Neuentwurf gleich. Abwärts geht besser, also sollte man als erstes einen hochauflösenden Font entwerfen und davon kleinere Versionen ableiten. Geht es nicht um maximale Schönheit, kann man natürlich mit der groben Auflösung leben, ich habe für Industriesteuerungen mit Grafikbildschirm Fonts mit 2, 4 und 8facher Grösse in der Grafiksoftware on the fly berechnet, die Maschinenbediener haben sich nicht beschwert. Beispiel anbei. Georg
Thomas F. schrieb: > Die Datei stammt hier aus dem Forum, so > ca. aus dem Jahr 2009. Danke, dass sehe ich mir mal an :) Harry L. schrieb: > das Programm FontCvtST.exe. Hab ich grade runtergeladen, hier werde ich mich noch etwas einarbeiten müssen, aber im Prinzip genau das was ich brauche. Danke! Philipp K. schrieb: > https://youtu.be/KhNEtgMYAAE Das sieht sehr sehr schick aus! pegel schrieb: > Weil das so gut geklappt hat, bin ich dann zu lvgl gewechselt. Danke für den Hinweis, schaue ich mur an :) Georg schrieb: > kann man natürlich mit der groben > Auflösung leben, ich habe für Industriesteuerungen mit Grafikbildschirm > Fonts mit 2, 4 und 8facher Grösse in der Grafiksoftware on the fly > berechnet Wie groß war das Display? 320*240? Danke für die Infos :). Viele Grüße Jens
Georg schrieb: > Dafür gibt es keine befriedigende Lösung - aufwärts skalieren geht > natürlich, etwa indem man aus einem pixel 4 macht, aber das sieht halt > beschissen aus. Bes... würde ich nicht unbedingt sagen. Sinn einer großen Schrift ist es, aus größerer Entfernung gelesen werden zu können oder Sehschwächen auszugleichen. Komplette, großformatige Zeichensätze im Speicher zu halten, braucht richtig viel Platz. Anbei ein Beispiel, wie aus zwei Zeichensätzen 6 x 10 und 8 x 16 mit 6 KB Speicherbedarf verschiedene Schriftgrößen aussehen. Das Display ist ein 4,3" mit 480 x 272 Pixeln Auflösung. Bei 320 x 240 wird es schon recht eng, längere "aufgepustete" Texte anzuzeigen.
Thomas F. schrieb: > Fonts von 4x6 bis 32x53 Pixel. Die Datei stammt hier aus dem Forum, so > ca. aus dem Jahr 2009. Diese Fonts habe ich auch immer mal ganz gerne benutzt. Was mich allerdings bei den größeren Fonts stört, die Kleinbuchstaben sind größer als die Großbuchstaben, siehe Bild. > Den original Thread und Autor finde ich leider nicht mehr. Beitrag "LCD Schriftarten ( Fonts in veschiedenen Größen )" Reinhard
man kann sich die Fonts auch selber erstellen, da gibt es ein Tool für TTF Fonts.. damit habe ich schon Antialiasing Fonts in Binärdaten für Display umgewandelt.. Das ist schon ein paar JAhre her, ich meine das war Fontforge als BMP exporten und dann die Pixel in Arrays umwandeln. Es gibt auch eine Mikrocontroller Font Datenbank irgendwo.. von 7x9 bis 64*64 in vielen Fonttypen. Das ganze dann in der Library anzupassen sollte nur eine Fleißarbeit sein. Es gibt unteranderem auch Librarys mit eigenen Tools um die Fonts die man möchte in die Library umzuwandeln. Ich meine der Font in dem Projekt ist sogar aus so einem FontConverter ;) Es kommt immer drauf an was man umsetzen möchte und welches Ziel man sich setzt..
Reinhard R. schrieb: > Diese Fonts habe ich auch immer mal ganz gerne benutzt. Das ist zwar Geschmackssache, aber keine richtige Unterlängen bei f, p, q und bei ß, y und µ vermutlich auch nicht. Das finde ich äußerst mager. Aber gut, dunkelblaue Schrift auf schwarzem Untergrund wird ja auch immer wieder gerne verwendet ;-)
zb. Auf der ersten Seite bei den Jungs von Google "mcu Font converter" http://www.eran.io/the-dot-factory-an-lcd-font-and-image-generator/
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.