www.mikrocontroller.net

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


Autor: Andreas Häusler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rene Schube (Firma: BfEHS) (rschube)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Häusler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: morph1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Wahhhhhhh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: U.R. Schmitt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: U.R. Schmitt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: John (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bild mit Gimp laden, als C Source oder Header abspeichern, fertig.

Autor: Hc Zimmerer (mizch)
Datum:

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

Autor: Gunther L. (what)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.