Forum: Mikrocontroller und Digitale Elektronik Brauche Konverter für *.BMP (16 Bit Farbe) ohne RLE Komprimierung


von Andreas Häusler (Gast)


Lesenswert?

Hallo Leute

Ich arbeite mit einem PIC32 Grafik Demoboard und möchte ein Bild (*.bmp) 
als c- Source in mein Programm einbinden.
Michrochip stellt für die Konvertierung ein tolles Tool "Graphics 
Rescouce Converter" zur Verfügung.
Nun mein Problem. Ich brauche das Bitmap File in folgenden Format:

16Bit Farbtiefe RGB
unkomprimiert(!) d.h. ohne RLE Komprimierung.

Habe jetzt schon zig Tools (Photoshop, ACDSEE, IrfanView 
usw.)angeschaut, aber nirgends kann ich die Komprimierung im 16Bit Mode 
ausschalten.

Bin dankbar für jeden Tip.

Gruss Andy

von Rene S. (Firma: BfEHS) (rschube)


Lesenswert?

Hallo,

nimm einfach Gimp. Ein Bild als *.bmp speichern, im Dialog gibt es dann 
die Einstellungen RGB.

Bei 16bit gibt es RGB555 oder RGB565

mfg Rene

von Andreas Häusler (Gast)


Lesenswert?

Hallo Rene

Danke für die Infos. Hab ich leider auch schon probiert. Dort lässt sich 
die Komprimierung bei 16Bit Farbtiefe leider meiner Meinung nach auch 
nicht ein- oder ausschalten.

von Sam .. (sam1994)


Lesenswert?

Wenn du das Bidl sowieso laden musst, weißt du auch wie das Format 
aufgebaut ist. Dann wird es doch auch nicht schwer sein einen Konverter 
selbst zu programmieren.

von morph1 (Gast)


Lesenswert?

beim gimp braucht man auch nicht ausschalten, was nicht eingeschaltet 
ist.

ich verwende die bmp direkt von einer sdkarte, überspringe den header 
und sende die daten direkt ans display.

da ist also wohl keine kompression enthalten, andernfalls wäre das 
aufgefallen :)

von Wahhhhhhh (Gast)


Lesenswert?

>Wenn du das Bidl sowieso laden musst, weißt du auch wie das Format
>aufgebaut ist.
Ich hab das so verstanden: Es gibt einen Converter der das BMP 
(vermutlich) in ein C-Array übersetzt welches dann in ein Projekt 
eingefügt werden kann. Dieser Converter braucht die Ursprungsdatei aber 
in einem bestimmten Format (unkomprimiert).

>Dann wird es doch auch nicht schwer sein einen Konverter selbst zu
>programmieren.
Ist aber trotzdem richtig, wer etwas Routine im Programmieren hat sollte 
keine große Mühe haben ein Tool zu schreiben was die Bitmap(s) 
"entpackt" (also unkomprimiert speichert). Das Format ist simpel und gut 
dokumentiert, z.B. in der MSDN Knowledgebase (oder wie das auch genau 
heissen mag).

von U.R. Schmitt (Gast)


Lesenswert?

Andreas Häusler schrieb:
> und möchte ein Bild (*.bmp) als c- Source in mein Programm einbinden.
Ein Bild sind daten und kein C-Source.
Du liest doch eh das Bild als Datenstrom ein. Wenn da eine RLE Codierung 
vorliegt, die ist doch im Netz ausreichend dokumentiert und so einfach 
daß du die beim Senden an das Display ob the fly direkt decodieren 
kannst. Dann geht auch alles schneller, da von der Karte weniger Daten 
gelesen werden müssen.

von Karl H. (kbuchegg)


Lesenswert?

U.R. Schmitt schrieb:
> Andreas Häusler schrieb:
>> und möchte ein Bild (*.bmp) als c- Source in mein Programm einbinden.
> Ein Bild sind daten und kein C-Source.

Man kann es aber so verpacken, dass es der Compiler benutzt um damit ein 
Array zu initialisieren.

> Du liest doch eh das Bild als Datenstrom ein.

Tut er eben nicht.

> Wenn da eine RLE Codierung
> vorliegt, die ist doch im Netz ausreichend dokumentiert und so einfach

Das allerdings stimmt und für einen Programmierer sollte das eigentlich 
keine wirkliche Hürde darstellen. Zumal es massenhaft IMage-Bibliotheken 
gibt, die sowas aus dem Stand heraus lesen können. Wenn es JPG wäre sag 
ich ja noch nichts, aber BMP mit RLE ist wirklich nicht sehr schwer zu 
lesen.

von U.R. Schmitt (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
>> Ein Bild sind daten und kein C-Source.
>
> Man kann es aber so verpacken, dass es der Compiler benutzt um damit ein
> Array zu initialisieren.
>
>> Du liest doch eh das Bild als Datenstrom ein.
>
> Tut er eben nicht.

Ok, jetzt hab ich es gleube ich verstanden. Er will ein spezielles Bild 
als Konstante in den Speicher legen und von dort einlesen.
Gerade dann macht es doch Sinn den benutzten Speicher nicht unnötig 
aufzublähen. Also los Andreas, keine falsche Scheu und google mal nach 
RLE, das ist wirklich kein Hexenwerk.

von Karl H. (kbuchegg)


Lesenswert?

U.R. Schmitt schrieb:

> Gerade dann macht es doch Sinn den benutzten Speicher nicht unnötig
> aufzublähen.

Aber wo er doch so ein schönes Tool von Microchip hat, das ihm den 
C-Source Code zusammenbaut :-)

> Also los Andreas, keine falsche Scheu und google mal nach
> RLE, das ist wirklich kein Hexenwerk.

Seh ich auch so.
Manchmal muss man die Suche nach einem Tool einfach abbrechen und sich 
sein Werkzeug selber machen. Unterm Strich ist man damit schneller. Und 
gelernt hat man auch etwas dabei.

von John (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Andy,
ist es das was du suchst (Anhang)?
Das Programm heißt GraphicConverter, und ist von:
http://www.lemkesoft.de/
Die Software läuft allerdings nur auf Apple (Mac OS) Rechnern.

Es gibt ein gleichnamiges Programm für Windows:
http://www.graphic-converter.net/
Aber ausser dem Namen und dass es auch Bilder konvertiert, hat es mit 
dem oben angegebenem Programm wohl nicht viel gemein. Ob es damit 
möglich ist weiß ich nicht. Kannst es ja mal versuchen, falls noch nicht 
geschehen.

Gruß
John

von John (Gast)


Lesenswert?

Mein Beispielbild Tulpen.bmp wurde automatisch in ein *.png umgewandelt. 
Ich hab extra eine geringe Auflösung gewählt. Das bmp war 150,1 kB.

von Andreas B. (Gast)


Lesenswert?

Bild mit Gimp laden, als C Source oder Header abspeichern, fertig.

von Hc Z. (mizch)


Lesenswert?

convert (aus Imagemagick) sollte das können (mit -compress none).  Ich 
weiß allerdings nicht, ob es das für Nicht-Unixe gibt.

von Gunther L. (what)


Lesenswert?

Hallo.

Das Programm, welches Du suchst, heißt Image2Lcd. Das erzeugt aus bmp, 
gif, whatever einen sourcecode als c-array.

Es hat so nette features wie scan mode, bits/pixel und alles was man für 
die Umwandlung für ein lcd so braucht. Einbinden und fertig.

Lt. About-Dialog: This program ist free!

Programmiert wurde es von WuBoJian und wurde unter 
http://www.wbj3000.com irgendwann veröffentlicht. Leider ist die Site 
down...

Das Programm ist Teil einer Suite namens EmbedTools. Du solltest mal 
nach Embedtools.rar googeln...

Grüße,
Gunther

von Sam .. (sam1994)


Lesenswert?

Wenn ich so ein Tool brauche nehme ich einfach die Image funktionen von 
c#. Die öffnen die bekannten Formate. Dann kann man jeden Pixel so 
setzen oder bearbeiten wie man will. Obwohl c# da eigentlich recht 
langsam ist, dauern 400 Bilder bei mir nur ein paar Sekunden. In den 6 
Stunden die seit deiner Frage vergangen sind, hättest du das sicher 
selbst hinbekommen.

PS: Ich schreib mir meisten solche Tools selber wenn ich sie brauche, 
z.b. bmp. Bilder in png konvertieren und dabei den 1. Pixel als 
Transparenz setzen oder Dateien nach einem bestimmten schema umbenennen. 
Das dann halt für alle Dateien in einem Order.

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.