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
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.
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.
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 :)
>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).
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.
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.
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.
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.
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
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
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.