Moin,
Das finde ich interessant. Das heißt also, dass ich aus diversen kompilierten Programmen die Informationen herausziehen kann. Hast du irgendwelche Links, die sich mit diesem Thema befassen, bzw zumindest irgendwelche Grundlagen?
Gesunder Menschenverstand, eine Menge Allgemein- und Basiswissen über das jeweilige Themengebiet, Google, etwas Zeit und Freude am Experimentieren bringen einen schon ganz schön weit. Ich kann dir zumindest sagen, was ich bei http://www.ploetzli.ch/ipod/ gelernt habe, zumal es hier rein passt.
Du weisst also schon, dass die Daten vermutlich ein Bild darstellen, dann ist Imagemagick ab jetzt dein bester Freund. (Wobei ich zugeben muss, dass die Doku von Imagemagick grauenhaft ist. Such gar nicht erst nach einem Index, es gibt keinen.)
Du hast die Daten immerhin schon als eigene Datei vorliegen, das macht es etwas einfacher (ich musste die erst rauspfriemeln). Da sie offenbar keinen Header haben sind sie wohl einfach nur rohe Daten, da hat file schon ganz recht.
Der interessante Punkt ist jetzt: a) wie groß ist das Bild, b) wie ist es codiert. Das kann man jetzt raten, oder sich durch Experimente mit Imagemagick da rantasten. Da du aber schon ein bisschen Code gezeigt hast, tippe ich mal auf 256 * 256 Pixel. Offenbar sind da jeweils 2 Byte pro Pixel verwendet worden. Interessant ist dann die Bytereihenfolge, ob Big Endian oder Little Endian. Der Code deutet auf Little Endian hin, gut. (Sonst müsste man das einfach ausprobieren.) Nächster und Knack-Punkt: Farbe oder Monochrom? Ich gehe jetzt einfach mal von Monochrom aus, wirst gleich sehen warum.
Wenn du all diese Parameter gut geraten hast (der englische Ausdruck "educated guess" ist hier sehr passend), kannst du mal versuchen, dir das Bild anzusehen:
display -size 256x256 -depth 16 -endian LSB gray:back.16
Wenn einer der geratenen Parameter nicht stimmt, experimentiere mit anderen. (Also etwa -endian MSB.) Wenn die Bildgröße nicht genau stimmt, dann wirst du zwar trotzdem etwas sehen, aber das Bild verschiebt sich von Zeile zu Zeile, sieht merkwürdig verzerrt aus oder es gibt mehrere Geisterbilder. Mit ein klein wenig Erfahrung kannst du aber die nötigen Korrekturen an der Bildgröße richtig einschätzen.
Was die Farbe angeht: Da du (vermutlich) zwei Bytes pro Pixel hast, ist das zumindest in Imagemagick nicht so einfach. Zumal es da mehrere Möglichkeiten gibt. Eine unwahrscheinliche ist YUV mit 4:2:2 Subsampling (das ist das was der iPod für den TV-Ausgang macht), das kann Imagemagick sogar direkt.
Sehr wahrscheinlich wirst du (wenn du Farbe in 2 Bytes antriffst) RGB 565 haben. D.h. 5 Bits Rot, 6 Bits Grün, 5 Bits Blau (macht 16 Bits = 2 Bytes). Das kann Imagemagick leider nicht, aber bei meiner oben verlinkten Seite findest du ein kleines C-Progrämmchen (nicht sehr schön allerdings) dass das in normaleres RGB (also 888) umwandelt, was du in Imagemagick dann mit -depth 8 rgb:... öffnen kannst.
Solltest du ganz und gar ungewöhnliche Farbkodierungen antreffen, musst du entweder so lange raten bis dich ein Geistesblitz trifft, im (ggbf. dekompilierten Code) spicken oder ... versuchen ein eigenes Bild irgendwie in das Format zu kriegen. Als eigenes Bild nimmst du dann eine Art Testbild wo möglichst großen Flächen vollständig einfarbig sind, und dann kannst du zum Beispiel mit einem Hexeditor durch konzentriertes Draufstarren rausfinden welche Bits zu welcher Farbe gehören.
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~