s/w Bitmap in Dialog anzeigen

Ron-E

Grünschnabel
Moin moin!

Ich will ein monochromes Bitmap in einem Dialog anzeigen. Jedoch bekomme ich jedesmal nur entweder einen schwarzen oder einen weißen Pixel.

Die Bitmapdaten bestehen aus einem unsigned char array, da ich die Daten von einer anderen Quelle bekomme. Also keine Bilder laden!

Gibt es eine Möglichkeit ein monochromes Bitmap darzustellen, ohne die RGB Farben zu wählen? die hätten dann ja alle logischerweise denselben Wert und damit eine totale Speicherverschwendung...

Benutze MFC unter VC++

hier mein Code:
Code:
CDC m_DC;
m_DC.CreateCompatibleDC(&dc);
bmp.CreateBitmap(752,480,1,1, &PixData);
m_DC.SelectObject(&bmp);
dc.BitBlt(10,10,rect.Width(),rect.Height(),&m_DC,0,0,SRCCOPY);

die '1' gibt die Bits pro Pixel an. Wenn ich dieses jedoch auf '8' setze, dann wird gar nix mehr angezeigt :(
 
Moin Moin,
das mit der "1" ist durchaus richtig. Fraglich ist aber ob deine Init richtig ist. Interpretierst du 1 char = 1 Pixel oder 1 Bit = 1 Pixel?
Gruss Michael
 
ich interpretiere 1 byte als 1 Pixel, ergo macht das 256 graustufen für einen Pixel. Aber MFC interpretiert das als entweder schwarz oder weiß, anscheinend also 1 Bit pro Pixel. hab das problem jetzt umgangen, indem ich die ColorTable einfach geändert habe und mit CImage arbeite.
Folgende schritte tu ich da:
1. Image anlegen mit fester Größe
2. ColorTable in graustufen umschreiben
3. Daten beschreiben

Danach hat jeder Pixel jeweils 8-Bit, also auch keinen dreifachen overhead als wenn man die RGB Farben jeweils gleich setzt.

gruß
ronny
 
Zurück