Kleine Grafiken in *.h Dateien erstellen?

Moin,

Ich habe schon einige Beispiel Sketches gesehen, bei denen kleine Grafiken oder wahrscheinlich auch eigene Fonts in separaten *.h Dateien abgelegt sind.

Die wird ja wohl keiner von Hand schreiben.

Gibt's da einen speziellen Namen für?

Gibt's dafür so eine Art von Editor, mit dem man solche Dateien erstellen kann?

Ich denke da zum Beispiel an kleine Icons für eine Heizungssteuerung mit 20x20 Pixeln oder so.

Liebe Grüße, Chris

themanfrommoon: Ich habe schon einige Beispiel Sketches gesehen, bei denen kleine Grafiken oder wahrscheinlich auch eigene Fonts in separaten *.h Dateien abgelegt sind.

Die wird ja wohl keiner von Hand schreiben.

Die Zeichen, die ich in meiner Grafikbibliothek verwende, habe ich alle selbst dort eingehackt. Wenn Du das für bekloppt hältst, bin ich bekloppt :-)

Ich bin allerdings ziemlich schnell darauf gekommen, dass man sich die Arbeit erheblich erleichtert, wenn man sich eine Art Vorlage bastelt und dort dann die „Pixel“ setzt, die man braucht.

Zum Beispiel so:

Vorlage:

.....
.....
.....
.....
.....
.....
.....

Mit gesetzten Pixeln (ich hoffe, man kann das große 'A' erkennen):

..*..
.*.*.
*...*
*****
*...*
*...*

Gruß

Gregor

PS: Ein Auszug aus meiner Zeichensatzdefinition:

  charMap[0x0030]="................***...*...*..*...*..*.*.*..*...*..*...*...***................"; // 0
  charMap[0x0031]=".................*.....**......*......*......*......*.....***................"; // 1
  charMap[0x0032]="................***...*...*......*...***...*......*......*****..............."; // 2

charMap[0x0030]="............................................*................"; // 0

Tipp:

char charMap[]   =  "..*.."
                    ".*.*."
                    "*...*"
                    "*****"
                    "*...*"
                    "*...*"
                  ;

combie: Tipp: ...

Klar, wenn es um einzelne Zeichen oder Grafiken geht, ist Deine Art leichter zu handeln. Dafür braucht man allerdings deutlich mehr Platz. Bei einigen -zig Zeichen war mir die Ersparnis beim Scrollen wichtiger.

Gruß

Gregor

Moin,

Ich halte natürlich niemanden für bekloppt. Aber es muss dafür irgendwelche Editoren geben. Ein Zeichensatz ist ja noch relativ einfach, wenn es auch eine Fleissarbeit ist. Aber das gibt es ja auch mit mehrfarbigen Grafiken. Damals beim C64 hieß so was Sprite. Is aber schon ne Weile her ;-) Solche Editroen muss es geben. Da lädt man ein Bild rein und dann kommt diese Pixelmap raus.

Hat keiner eine Idee?

Lieben Gruß, Chris

Die Bilder kann man z.B. mit Paintbrush erstellen, und als monochrome Bitmap abspeichern. Dann braucht man nur noch ein Programm, das die Bitmap einliest und in C Daten übersetzt. Mit einem Icon Editor wird die Sache auch nicht einfacher, da bekommt man nur eine ICO statt einer BMP Datei.

Hab gerade selbst was gefunden: http://meineweltinmeinemkopf.blogspot.de/2017/09/eigene-sprites-erstellen-arduino.html?m=1 Da halt mir doch der C64 :-)

Das Thema interessiert mich auch sehr. Gibts da ein Ubuntu- fähiges Programm?

Für monochrome Bitmaps gibt es hier ein Tool: http://javl.github.io/image2cpp/

Farbige Grafiken kann man auch als Bitmap von der SD Karte laden

cooooooool.... :-) danke schön :-)

Gibts auch ne Möglichkeit kleine farbige Grafiken im Programm zu integrieren? Ich habe mal nach einem Tool dafür gesucht, aber nichts richtiges gefunden.

Das hängt auch stark von der verwendeten TFT Library ab.

.bmp Dateien kann man wie gesagt auch direkt von einer SD-Karte laden. Dauert natürlich länger als direkt aus dem µC Speicher

Moin,

Ja klar, als "Bitfolge". Hab ich in nem Beispiel der TFT_eSPI Library gefunden.

Genau so einen Editor suche ich ja. (Das was ich weiter oben gefunden habe könnte ich noch nicht ausprobieren)

Liebe Grüße, Chris

Ja kann man, aber dafür braucht man dann einen SD Karten Leser und ne SD Karte, und das ist für ein paar kleine Pixel wohl sehr viel zu viel.

Der SD Karten Leser ist bei vielen TFT Shields schon drauf.

Mag sein. Ich nutze 4" 480x320 SPI TFT am einem nodeMCU. Da is das nicht drauf. Auch nicht an meinen 3,5" und 2,8". Und das es geht weiss ich aus den bereits genannten Beispielen. Und das es Editoren geben muss, da bin ich mir sicher. Es fehlt meistens nur der Suchbegriff, wie so eine im Code implementierte Piktogramm, Sprite, Bild-Bytefolge oder wie auch immer genau heisst. Weiß das denn niemand?

Lieben Gruß, Chris

Wenn Dir Paintbrush nicht gefällt, nimm irgend ein anderes Malprogramm. Welches Programm wird denn bei Dir verwendet, um Bitmaps zu öffnen?

Wie krieg ich aus dem Bitmap diese .h Dateien umgewandelt?

themanfrommoon: Hab gerade selbst was gefunden: http://meineweltinmeinemkopf.blogspot.de/2017/09/eigene-sprites-erstellen-arduino.html?m=1 Da halt mir doch der C64 :-)

Da Du selbst ja keine Zeit für einen kurzen Test (ca. 3 Minuten) hast, weil Du die Frage so oft wiederholen musst ;) habe ich den Test mal für Dich durchgeführt.

Das Tool funktioniert und erzeugt die Farbwerte (Index), die in dem angegebenen Sketch verwendet werden. Eine in meinen Augen einfache und praktische Lösung, um schnell einfache farbige Sprites zu erzeugen. Die Farben sind halt vom Editor her vorgegeben. Im Sketch kann man sie ändern.

Gruß Tommy

Moin,

nu konnte ich mir das auch mal etwas ausführlicher ansehen. Für mich passt das leider doch nicht.

Warum ich noch nicht aufgegeben habe mit dem Fragen: Weil ich die Hoffnung hatte, das jemand noch was besseres hat.

Aber ich habe weiter recherchiert und tatsächlich was gefunden was ich gebrauchen kann.

Das ganze nennt sich UTFT ImageConverter 565 und wurde hier im Forum auch schon mal behandelt: http://forum.arduino.cc/index.php?topic=312277.0

Mit dem Ding kann ich nun Bitmaps in Arrays umwandeln. Sowas hatte ich gesucht (also das Ergebnis was damit erzeugt wird). Cool!

Lieben Gruß, Chris