S
ich bin nochmal
das Bilder einlesen klappt ziehlich gut. Ich Benutze folgenden Algorythmus:
ifstream bitmap("c:\\t.bmp", ios::ate);
BYTE* Pic;
if(bitmap.is_open())
{
Pic = new BYTE[bitmap.tellg()];
bitmap.seekg(0);
BITMAPFILEHEADER *h1;
BITMAPINFOHEADER *h2;
int i = 0;
i = 0;
//datei in array schreiben
while(! bitmap.eof())
Pic[i++] = bitmap.get();
h1 = ( BITMAPFILEHEADER *) Pic;
h2 = ( BITMAPINFOHEADER *) (Pic + sizeof(BITMAPFILEHEADER));
DWORD col;
if(h2->biBitCount == 24) //nur 16bit bitmaps lesen
for(int b = 0,c = h2->biHeight-1; b <h2->biHeight; b++,c--)
for(int a = 0; a < h2->biWidth; a++)
{
BYTE * color = (BYTE* ) (Pic + ((a + (b*h2->biWidth))*(h2->biBitCount/8)) + h1->bfOffBits );
col = 0;
col |= *(color);
col <<=8;
col |= *(color+1);
col <<=8;
col |= *(color+2);
pDC->SetPixel(a,c,col);
}
//delete[] Pic;
}
Nun habe ich aber folgendes problem.
Wenn ich ein normales Bitmap nehme, also eines wo ich selbst ein bischen gezeichnet hab, dann wird das Bild richtig angezeigt. Aber sobald ich z.B. nen Screenshot nehme, macht er alles Grau, nur am ende des Bildes sind ein paar Bildausschnitte.
Wie kann das sein das alles grau wird?