Tool: AVR-BitmapToCode

Dirk

Administrator
Teammitglied
28. Jan. 2007
4.328
166
63
Mittelhessen, Giessen
Sprachen
  1. ANSI C
  2. C++
  3. C#
  4. Java
  5. Kotlin
  6. Pascal
  7. Assembler
  8. PHP
Noch ein kleines Programm, das mir schon öfters hilfreich war:

AVR-BitmapToCode

Kurzbeschreibung:
Das Programm konvertiert s/w Bilddaten im Bitmap-Format (.bmp) in Programmcode. Die als Programmcode vorhandenen Bilddaten kann man entweder im EEPROM oder im Flash ablegen und durch eine geeignete Routine auf einem Grafik-Display ausgeben. Die ersten beiden Bytes der Bilddaten stellen die Breite des Bildes in Bytes und die Höhe des Bildes in Bits (Zeilen) dar, danach folgen die eigentlichen Bitmap-Daten.

Die Konvertierung der Bilddaten erfolgt hier in Assembler. Ich habe das Programm soweit vorbereitet, dass man auch andere Formate ausgeben kann. Wenn jemand ein anderes Format benötigt, am besten auf diesen Beitrag mit einem Beispiel-Code antworten, ich versuche es dann zu implementieren.


avr-bitmap-to-code.png

avr-bitmap-to-code.png


Dirk

Rechtlicher Hinweis:
Der Autor dieses Programms haftet nicht für Schäden an Soft- oder Hardware oder Vermögensschäden, die durch das Benutzen des Programms entstehen, es sei denn diese beruhen auf einem grob fahrlässigen oder vorsätzlichen Handeln des Autors, seiner Erfüllungsgehilfen oder seiner gesetzlichen Vertreter.
 

Anhänge

  • AVR-BitmapToCode.zip
    409,7 KB · Aufrufe: 242
C code format

Noch ein kleines Programm, das mir schon öfters hilfreich war:

AVR-BitmapToCode

Kurzbeschreibung:
Das Programm konvertiert s/w Bilddaten im Bitmap-Format (.bmp) in Programmcode. Die als Programmcode vorhandenen Bilddaten kann man entweder im EEPROM oder im Flash ablegen und durch eine geeignete Routine auf einem Grafik-Display ausgeben. Die ersten beiden Bytes der Bilddaten stellen die Breite des Bildes in Bytes und die Höhe des Bildes in Bits (Zeilen) dar, danach folgen die eigentlichen Bitmap-Daten.

Die Konvertierung der Bilddaten erfolgt hier in Assembler. Ich habe das Programm soweit vorbereitet, dass man auch andere Formate ausgeben kann. Wenn jemand ein anderes Format benötigt, am besten auf diesen Beitrag mit einem Beispiel-Code antworten, ich versuche es dann zu implementieren.


avr-bitmap-to-code.png

avr-bitmap-to-code.png


Dirk

Rechtlicher Hinweis:
Der Autor dieses Programms haftet nicht für Schäden an Soft- oder Hardware oder Vermögensschäden, die durch das Benutzen des Programms entstehen, es sei denn diese beruhen auf einem grob fahrlässigen oder vorsätzlichen Handeln des Autors, seiner Erfüllungsgehilfen oder seiner gesetzlichen Vertreter.



Hallo Dirk,

Könntest Du mir eine Version schicken, mit der ich die entsprechende C-Code aus der bmp-Grafik kriegen könnte.
Vielen Dank!

Liebe Grüße,
slimchao
 
Hallo slimchao,

das Programm hatte ich im letzten Jahrhundert :eek: geschrieben, ist also schon etwas älter ;) und da hatte ich nur Assembler vorgesehen. Ich schaue mal nach dem Sourcecode, vielleicht baue ich noch C Format ein.

Falls du schnell eine Lösung benötigst, such vielleicht nochmal mit einer Suchmaschine, inzwischen müsste es viele solcher Tools geben.

Also ich schaue mal die Tage nach (schneller gehts leider nicht) und wenn ich was hinbekomme, stelle ich es hier rein.

Dirk :ciao:
 
Hallo slimchao,

das Programm hatte ich im letzten Jahrhundert :eek: geschrieben, ist also schon etwas älter ;) und da hatte ich nur Assembler vorgesehen. Ich schaue mal nach dem Sourcecode, vielleicht baue ich noch C Format ein.

Falls du schnell eine Lösung benötigst, such vielleicht nochmal mit einer Suchmaschine, inzwischen müsste es viele solcher Tools geben.

Also ich schaue mal die Tage nach (schneller gehts leider nicht) und wenn ich was hinbekomme, stelle ich es hier rein.

Dirk :ciao:

Hallo Dirk,

vielen Dank für Deine schnelle Antwort.

Gruß slimchao
 
Hi Slimchao,

wenn es dir hilft,

ich hab mir mal ein tool gemacht, dass ein *.bmp in *.c und *.h datei wandelt.

Man kann es Laden oder Per Drag & Drop auf die Exe bringen und es wird an der Stelle das C und H file Generiert.

Wichtig zu wissen ist hier, dass das Tool nach der BMP Konvention Arbeitet, sprich selbst wenn du ein Monochrom-Bitmap mit nur 5 Pixel hast werden dir daraus 4 Bytes generiert. Da ein Bitmap Daten Inhalt immer Modulo 4 aufgehen muss.
Ich hatte dies damals so benötigt ... daher ist es so ^^ ist schon nen Weilchen her ...

Ach ja da ich meine Projekte mit DoxyGen Dokumentiere sind halt auch die Header und Kommentare dementsprechend

Ich habe euch hier noch die md5 und sha1 summen hingeschrieben zur Sicherheit.

Code:
SHA1: 22d18a64c36a19580f028830c81987fe85406c48
Code:
MD5: d3916121741ee93280eb7fe6b9b20feb
Code:
Size: 516096

Anhang anzeigen BMPtoC.7z





Beispiel 1.

Monochromes Bitmap
schwarz_weiss.PNG
Code:
#define IMG_TEST
/** @file IMG_TEST.C *****************************
* @brief    Projekt:
* @brief    Pixel Width : 5, Pixel Height : 1
* @author   Manuel
* @date     05.07.2013 14:31:15
* <img src="../../../Bilder/test.bmp">     Test ???    //Manuel
**************************************************************************/

#include "test.h"

FLASH const uint8_t IMG_test[] = {

0x50 , 0x00 , 0x00 , 0x00 
};


Beispiel 2.
24 Bit Farbbitmap
rgbsw.PNG
Code:
#define IMG_1X5RGBBW
/** @file IMG_1X5RGBBW.C *****************************
* @brief    Projekt:
* @brief    Pixel Width : 5, Pixel Height : 1
* @author   km
* @date     30.05.2012 17:22:50
* <img src="../../../Bilder/1x5rgbbw.bmp">     Test ???    //km
**************************************************************************/

#include "1x5rgbbw.h"

FLASH const uint8_t IMG_1x5rgbbw[] = {

0x00 , 0x00 , 0xFF , 0x00 , 0xFF , 0x00 , 0xFF , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 
0xFF , 0xFF , 0xFF , 0x00 
};
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)