Bitmapgröße
-
Hallo,
ich zeichne in einer überdimensonalen CBitmap (32767 x 480).
Jetzt wird diese natürlich richtig groß..So stellen Sie die Größe einer nicht komprimierten Bitmap fest:
Multiplizieren Sie die horizontale Ausdehnung (in Pixel) mit der vertikalen Ausdehnung (in Pixel), um die Gesamtzahl Pixel zu erhalten. Dementsprechend hat eine Bitmap von 640 x 480 genau 307.200 Pixel.
Multiplizieren Sie die Gesamtzahl Pixel mit der Anzahl Bytes pro Pixel:
1-Bit-Bilder (8 Farben) haben 1/8 Byte pro Pixel (x 0.125)
4-Bit-Bilder (16 Farben) haben 1/2 Byte pro Pixel (x 0.5)
8-Bit-Bilder (256 Farben oder Graustufen) haben 1 Byte pro Pixel (x 1)
24-Bit-Bilder haben 3 Bytes pro Pixel (x 3)
32-Bit-Bilder haben 4 Bytes pro Pixel (x 4)Mir wäre schon geholfen, wenn ich die Farbtiefe runtersetzen könnte.
Doch wie geht das? Ich hoffe Ihr könnt mir helfen,
Merci
-
Ok, hab's gefunden:
Bitmap = new CBitmap; BITMAPINFOHEADER bmpih; bmpih.biSize=sizeof(BITMAPINFOHEADER); bmpih.biWidth=32767; // Breite des Bitmaps bmpih.biHeight=480; // Höhe des Bitmaps bmpih.biPlanes=1; bmpih.biBitCount=8; bmpih.biCompression=BI_RGB; bmpih.biSizeImage=0; bmpih.biXPelsPerMeter=0; bmpih.biYPelsPerMeter=0; bmpih.biClrUsed=0; bmpih.biClrImportant=0; BITMAPINFO bmpi; bmpi.bmiHeader=bmpih; RGBQUAD* pFarben; HBITMAP hbmp; hbmp = CreateDIBSection((HDC)pDC, &bmpi, DIB_RGB_COLORS,(void **)&pFarben,NULL,NULL); Bitmap->Attach( hbmp);