celtics
November 27th, 2003, 11:11 AM
Image Gray Scale Question
my B&W image has gray scale problem. it looks good for most part.
how to improve it?. How to (modify)Or(add to)) this header to improve gray scale?. MFC/SDI.
Celtics
LPBITMAPINFO PbmiHeader = (LPBITMAPINFO)new BYTE[sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD)];
PbmiHeader->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
PbmiHeader->bmiHeader.biWidth = Width;
PbmiHeader->bmiHeader.biHeight = Height;
PbmiHeader->bmiHeader.biPlanes = 1;
PbmiHeader->bmiHeader.biBitCount = 8;
PbmiHeader->bmiHeader.biCompression = 0;
PbmiHeader->bmiHeader.biSizeImage = 0;
PbmiHeader->bmiHeader.biXPelsPerMeter = 0;
PbmiHeader->bmiHeader.biYPelsPerMeter = 0;
PbmiHeader->bmiHeader.biClrUsed = 0;
PbmiHeader->bmiHeader.biClrImportant = 0;
for(int i=0; i<256; i++) {
PbmiHeader->bmiColors[i].rgbBlue = i;
PbmiHeader->bmiColors[i].rgbGreen = i;
PbmiHeader->bmiColors[i].rgbRed = i;
PbmiHeader->bmiColors[i].rgbReserved = 0;
}
HDC hdc = pDC->GetSafeHdc();
StretchDIBits( hdc, 0, 0,
Width1,
Height1,
0, 0,
Width,
Height,
data,
PbmiHeader,
DIB_RGB_COLORS,
SRCCOPY );
my B&W image has gray scale problem. it looks good for most part.
how to improve it?. How to (modify)Or(add to)) this header to improve gray scale?. MFC/SDI.
Celtics
LPBITMAPINFO PbmiHeader = (LPBITMAPINFO)new BYTE[sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD)];
PbmiHeader->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
PbmiHeader->bmiHeader.biWidth = Width;
PbmiHeader->bmiHeader.biHeight = Height;
PbmiHeader->bmiHeader.biPlanes = 1;
PbmiHeader->bmiHeader.biBitCount = 8;
PbmiHeader->bmiHeader.biCompression = 0;
PbmiHeader->bmiHeader.biSizeImage = 0;
PbmiHeader->bmiHeader.biXPelsPerMeter = 0;
PbmiHeader->bmiHeader.biYPelsPerMeter = 0;
PbmiHeader->bmiHeader.biClrUsed = 0;
PbmiHeader->bmiHeader.biClrImportant = 0;
for(int i=0; i<256; i++) {
PbmiHeader->bmiColors[i].rgbBlue = i;
PbmiHeader->bmiColors[i].rgbGreen = i;
PbmiHeader->bmiColors[i].rgbRed = i;
PbmiHeader->bmiColors[i].rgbReserved = 0;
}
HDC hdc = pDC->GetSafeHdc();
StretchDIBits( hdc, 0, 0,
Width1,
Height1,
0, 0,
Width,
Height,
data,
PbmiHeader,
DIB_RGB_COLORS,
SRCCOPY );