003
20.03.2005, 13:42 Uhr
RedEagle
|
hab was anderes Gefunden, was ich auch eigentlich verstehe:
| C++: |
HDC hDC = GetDC(hWnd); { int x,y;
COLORREF array[100][100] = {0}; FILE *bmp; if(bmp = fopen(".\\avatar.bmp","rb")) { BITMAPFILEHEADER bitmap_header; //Bitmap-Header BITMAPINFOHEADER bitmap_info; //Bitmap-Info fread(&bitmap_header,sizeof(BITMAPFILEHEADER),1,bmp); fread(&bitmap_info,sizeof(BITMAPINFOHEADER),1,bmp); for(y = 0; y < bitmap_info.biHeight; y++) { for(x = 0; x < bitmap_info.biWidth; x++) { UCHAR r; UCHAR g; UCHAR b; fread(&r,sizeof(UCHAR),1,bmp); fread(&g,sizeof(UCHAR),1,bmp); fread(&b,sizeof(UCHAR),1,bmp); //Hier Daten ins Array packen ... array[x][y] = RGB(r,g,b); if(x == bitmap_info.biWidth) { //Abschluss-Byte lesen fread(&r,1,1,bmp); } } } fclose(bmp); } for(x=0; x<100; x++) { for(y=0; y<100; y++) { SetPixel(hDC, x, y, array[x][y]); } }
}
ReleaseDC(hWnd, hDC); DeleteDC(hDC);
|
Allerdings stimmen die Farbwerte nicht, und das Bild steht auf dem Kopf (wenn ich es bei der Ausgabe drehe for(y=100; y>0; y++) stürtzt das Prog ab... -- MFG RedEagle Dieser Post wurde am 20.03.2005 um 13:43 Uhr von RedEagle editiert. |