Hi C++ Experten
Ich habe eine Funktion geschrieben, die den Gerätekontext des Fenster als Bitmap abspeichern soll. Leider funktioniert das ganze noch nicht so richtig, da die Datei:
-
7 statt ~1 MB (x*3*y (24Bit) -> 600*3*600) groß ist
-
Die ganze Bitmap stark verzerrt und schwarz-weiss ist
(statt 24Bit-Farben)
Meiner Meinung nach müsste der Fehler irgendwo bei den beiden Bitap-Headern liegen (BITMAPFILEHEADER + BITMAPINFOHEADER).
Kennt sich jemand damit aus ?
Danke im voraus,
Daniel R.
Der Quellcode meiner Funktion:
(Die Funktion ExtractColour() extrahiert ,wie der Name schon sagt, den Rot- Grün- oder Blauwert aus einer COLORREF-Variable)
bool CDreiecksdiagramDlg::SaveBitmap()
{
CRect rect;
GetClientRect(&rect);
CClientDC dc(this);
int x = rect.right*3; // 24Bit pro pixel
int y = rect.bottom;
char* pixel = new char[x*y];
// Pixel
int xpos = 0;
int ypos = rect.bottom; // Upside-down format
int index=0;
while(ypos>0)
{
while(xpos