Click to See Complete Forum and Search --> : question


celtics
December 26th, 2003, 12:44 PM
MFC/SDI:just learned how to open B&W tiff files using freeimage libraries.
i can see pattern but it is not clear. white pixels are displayed in gray.
with colored images, it works much better.

void CMy5View::OnDraw(CDC* pDC)
{
FreeImage_Initialise (TRUE);
FIBITMAP *dib = FreeImage_Load(FIF_TIFF,
"C:\\Captures\\Mytif.tif", TIFF_DEFAULT);
COLORADJUSTMENT cahalf;
BYTE Img[sizeof(BITMAPINFOHEADER) + 256*sizeof(RGBQUAD)];
LPBITMAPINFO pInfo = reinterpret_cast<LPBITMAPINFO>(&Img[0]);
pInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
pInfo->bmiHeader.biWidth = FreeImage_GetWidth(dib);
pInfo->bmiHeader.biHeight = FreeImage_GetHeight(dib);
pInfo->bmiHeader.biPlanes = 1;
pInfo->bmiHeader.biBitCount = 8;
pInfo->bmiHeader.biCompression = 0;
pInfo->bmiHeader.biSizeImage = 0;
pInfo->bmiHeader.biXPelsPerMeter = 0;
pInfo->bmiHeader.biYPelsPerMeter = 0;
pInfo->bmiHeader.biClrUsed = 0;
pInfo->bmiHeader.biClrImportant = 0;
for( int i=0; i < 256; i++)
{
pInfo->bmiColors[i].rgbRed = i;
pInfo->bmiColors[i].rgbGreen = i;
pInfo->bmiColors[i].rgbBlue = i;
pInfo->bmiColors[i].rgbReserved = 0;
}
// Select the palette
SetStretchBltMode(pDC->GetSafeHdc(),HALFTONE);
SetColorAdjustment(pDC->GetSafeHdc(),&cahalf);
::SetDIBitsToDevice(
pDC->GetSafeHdc(),
0, 0,
FreeImage_GetWidth(dib),
FreeImage_GetHeight(dib),
0, 0,
0,
FreeImage_GetHeight(dib),
FreeImage_GetBits(dib),
FreeImage_GetInfo(dib),
DIB_RGB_COLORS);
FreeImage_Unload(dib);
FreeImage_DeInitialise();
ReleaseDC(pDC);

}