BMP Bilder einlesen
-
mir mal bitte auch.

-
Es gibt ja nun mehrere BMP Formate (RLE Codiert ?)
-
bei meinen tests, konnten zumindest folgende formate nicht vom Bitmap-Objekt geladen werden:
Bitmaps mit 16Bit (444, 555, 565), einige mit 4Bit und RLE (8Bit dito), bestimmte Bitmaps im OS2-Format und einige mit 32Bit
-
So... auch gesendet.
Und wenn du die enstprechenden Bilder versuchst zu laden. Kommt dann mein beschriebener Fehler oder können die Daten einfach nicht geladen werden?
-
sehr merkwürdig warum das bild nicht korrekt gelesen wird (dort wo eigentlicher das rote licht auf dem schnee sein sollte ist es grün). wenn ich das mit meiner eigenen bitmap-klasse lade, wird das korrekt angezeigt (ist eigentlich ein ganz normales 24bit windows-bitmap mit 40 byte header (Version 3 oder so)).
ist wohl ein bug beim einlesen der tbitmap-klasse. bin die zwar grad mal im debug-modus durchlaufen, konnte da aber nix verdächtiges entdecken.
-
Aber kann man bei einem Image die Farbewerte umstellen?
Weil wenn, dann wär das ja die einzige möglichkeit das Bild korrekt zu laden.
-
Also das Bild ist tatsächlich etwas putzig!
- in TImage laden geht problemlos - aber die Farben sind vertauscht!
Das ist wie eine Drehung im Farbkreis um 120°.
- Wenn das Bild um 120° rotiert - im Farbkreis! - und gespeichert wird,
passt danach alles.
- Aber: IView zeigt mir dann anm, dass das Original 32 Bit Farbtiefe hatte.
32 Bit BMPs kann aber TImage nicht richtig interpretieren.
Zumindest bis BCB 4.0Tip: Versuch mal das Bild mit WinApPI zu laden und lies die Header aus.
Das muss eins der neueren BMP- Formate sein.
-
Wie hast du den Farbkreis um 120° gedreht? Ich will nämlich das Bild nur als JPG abspechern.
-
RGBMaster schrieb:
Wie hast du den Farbkreis um 120° gedreht? Ich will nämlich das Bild nur als JPG abspechern.
Das ist ne längere Geschichte.
1. Bild in Bitmap laden
2. Bild in 24 Bit- Modus schalten, falls nötig
3. Mit ScanLine alle Zeilen durchgehen und dabei:
4. alle Pixel als RGB- Tripel ansprechen und die Farben drehen.
deshalb sollte das Bitmap auch als 24 Bit Bild vorliegen.Das drehen mach ich sehr kompliziert: Farbe des Tripel in HLS wandeln, H- Wert
"drehen" und zurückwandeln in RGB Werte.In Deinem Fall kannst Du die RGB- Werte direkt so vertauschen im Tripel.
Ich hab nur nen fertigen Modul, der beliebig im Farbkreis dreht, drum nehm ich den.
-
Tja... das wird wohl ein bisschen zu schwierig für mich...
Trotzdem Danke!
-
Ist doch nicht so schwer.
sieh Dir mal das an:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-135410.htmlDa ist das mit den ScanLines angewandt. Musst nur das Wsserzeichen wegdenken.