Lister BMP Anzeige vertauscht RGB Kanäle
Moderators: Hacker, Stefan2, white
Lister BMP Anzeige vertauscht RGB Kanäle
Hi,
Ich habe bemerkt dass der Lister bei manchen BMP Dateien irgendwas verzockt, sieht aus als würden R und B Kanal vertauscht werden oder so.
Hab hier mal ein Beispielbild hochgeladen bei dem das auftaucht. Einfach mal im Total Commander anschauen und dann z.B. in ACDSee oder Paint:
Beispielbild (1,4mb)
Ich hoff mal nicht dass es irgendwie an meinem System liegt, habs leider noch nicht auf einem anderen System getestet (ist mir eben erst aufgefallen)
--Darkstar
Ich habe bemerkt dass der Lister bei manchen BMP Dateien irgendwas verzockt, sieht aus als würden R und B Kanal vertauscht werden oder so.
Hab hier mal ein Beispielbild hochgeladen bei dem das auftaucht. Einfach mal im Total Commander anschauen und dann z.B. in ACDSee oder Paint:
Beispielbild (1,4mb)
Ich hoff mal nicht dass es irgendwie an meinem System liegt, habs leider noch nicht auf einem anderen System getestet (ist mir eben erst aufgefallen)
--Darkstar
Hallo
Und ich dachte schon es wäre ein weiblicher Ork
Aber Spass beiseite.
Wenn man das Bild in IrfanView lädt und wieder als Bitmap abspeichert, dann stellt TC das Bild korrekt dar.
Ein binärer Vergleich der beiden Bildern zeigt dann, das der Bitmapheader leicht unterschiedlich ist.
Im Originalbild steht da BM8, und im mit IrfanView abgespeicherten Bild BM6.
Dazu habe ich einen Link gefunden[ http://www.delphipraxis.net/post253293.html#253293 ]
der vielleicht helfen kann das Problem genauer einzukreisen.
Kann ich leider nicht selber ausprobieren, habe kein Delphi.
Ansonsten Darkstar, kannst du ja mal übergangsweise die Batchkonvertierungsmöglichkeiten von IrfanView austesten
Gruß
Holger
Und ich dachte schon es wäre ein weiblicher Ork

Aber Spass beiseite.
Wenn man das Bild in IrfanView lädt und wieder als Bitmap abspeichert, dann stellt TC das Bild korrekt dar.
Ein binärer Vergleich der beiden Bildern zeigt dann, das der Bitmapheader leicht unterschiedlich ist.
Im Originalbild steht da BM8, und im mit IrfanView abgespeicherten Bild BM6.
Dazu habe ich einen Link gefunden[ http://www.delphipraxis.net/post253293.html#253293 ]
der vielleicht helfen kann das Problem genauer einzukreisen.
Kann ich leider nicht selber ausprobieren, habe kein Delphi.

Ansonsten Darkstar, kannst du ja mal übergangsweise die Batchkonvertierungsmöglichkeiten von IrfanView austesten

Gruß
Holger
Vor allem sieht man, dass das neue Bild um genau 2 Null bytes kürzer ist, als das Original. Da hat möglicherweise das Programm, das die BMP erstellt hat einen kleinen Bug, würde ich mal sagen.
Intelligente Bildprogramme erkennen das und ignorieren die beiden Nullbytes, deshalb stellen sie das Bild korrekt dar. Der TC muß sowas aber nicht erkennen können, finde ich.
sheepdog
Intelligente Bildprogramme erkennen das und ignorieren die beiden Nullbytes, deshalb stellen sie das Bild korrekt dar. Der TC muß sowas aber nicht erkennen können, finde ich.
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
2Sheepdog
Prinzipiell gebe ich dir recht. Der TC ist kein Bildbearbeitungsprogramm.
Aber bedenke bitte, das es nicht unbedingt ein Fehler des erzeugenden Programms, sondern auch ein Fehler in der Leseroutine der Delphi-Funktion sein kann.
Und da selbst der "dumme" Explorer das Bild richtig anzeigt, fällt solch ein Mangel letztendlich auf den TC zurück.
Mein Hinweis ist bestimmt nicht als Befehl an Ghisler gedacht, sondern nur als Unterstützung.
Ob der im Link beschrieben Trick ein risikoloses Verfahren ist um die Bildanzeige des Viewers zu verbessern, muss und kann der Author letztendlich nur selbst entscheiden.
Gruß
Holger
Prinzipiell gebe ich dir recht. Der TC ist kein Bildbearbeitungsprogramm.
Aber bedenke bitte, das es nicht unbedingt ein Fehler des erzeugenden Programms, sondern auch ein Fehler in der Leseroutine der Delphi-Funktion sein kann.
Und da selbst der "dumme" Explorer das Bild richtig anzeigt, fällt solch ein Mangel letztendlich auf den TC zurück.
Mein Hinweis ist bestimmt nicht als Befehl an Ghisler gedacht, sondern nur als Unterstützung.
Ob der im Link beschrieben Trick ein risikoloses Verfahren ist um die Bildanzeige des Viewers zu verbessern, muss und kann der Author letztendlich nur selbst entscheiden.
Gruß
Holger
- ghisler(Author)
- Site Admin
- Posts: 50567
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Danke, werde ich mir ansehen. Könnte an einer fehlerhaften Palette im Header liegen.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Hallo.
Daß GuildWars "fehlerhafte" Bitmaps produziert, ist mir auch schon aufgefallen. In der von Dark-Star angehängten Datei beginnt der Body der Bitmap einfach zwei Bytes weiter hinten. Das Offset ist im Header zwar korrekt gesetzt, aber es ist äußerst ungewöhnlich. Keine Ahnung, wofür die zwei zusätzlichen Bytes zwischen Header und Body da sind; sie scheinen mir überflüssig.
Daß GuildWars "fehlerhafte" Bitmaps produziert, ist mir auch schon aufgefallen. In der von Dark-Star angehängten Datei beginnt der Body der Bitmap einfach zwei Bytes weiter hinten. Das Offset ist im Header zwar korrekt gesetzt, aber es ist äußerst ungewöhnlich. Keine Ahnung, wofür die zwei zusätzlichen Bytes zwischen Header und Body da sind; sie scheinen mir überflüssig.
Das sehe ich genauso. Wenn ich eine Bitmap interpretiere, gehe ich vom Standard aus. Dabei interessieren mich dann die Abmessungen und die Farbtiefe; den Rest kann ich mir ausrechnen. Das Body-Offset würde ich - wie der TC - gar nicht berücksichtigen. (IrfanView berücksichtigt es und interpretiert die Bitmap somit "richtig".)Sheepdog wrote:Der TC muß sowas aber nicht erkennen können, finde ich.
- ghisler(Author)
- Site Admin
- Posts: 50567
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Ich habe das analysiert, und bin zum selben Ergebnis gekommen - es ist ein Bug in der Delphi-Bibliothek "graphics.pas". Delphi geht fälschlicherweise davon aus, dass die Bitmap-Bits direkt hinter Header+Palette beginnen. Ich habe das nun für TC 7 korrigiert.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com