上个帖子中网友:网友:kimryo(A Taste Of Dream)给出的处理方法。
缺点是:图像画到窗口外。并不是再程序的窗口内。不是很理想 方法:
BITMAPINFO bif;
ZeroMemory(&bif,sizeof(bif));
bif.bmiHeader.biHeight=20;
bif.bmiHeader.biWidth=20;
bif.bmiHeader.biBitCount=24;
bif.bmiHeader.biCompression=BI_RGB;
bif.bmiHeader.biPlanes=1;
bif.bmiHeader.biSize=sizeof(bif);HDC hDC=::GetDC(0),hSrcDC=CreateCompa..DC(NULL);
bmp=::CreateDIBitmap(hSrcDC,&(bif.bmiHeader),CBM_INIT,pDIB/*你的dib段*/,&bif,
DIB_RGB_COLORS);
HGDIOBJ hObj=SelectObject(hSrcDC,bmp);
BitBlt(hDC,0,0,20,20,hSrcDC,0,0,SRCCOPY);
SelectObject(hSrcDC,hObj);
DeleteObject(bmp);
::ReleaseDC(NULL,hDC);
DeleteDC(hSrcDC);网友qindq(蜕叟)提到的,我希望能够说得再详细一些。我也会不断的试验。 比较复杂但高效的方法:
构造一个int StretchDIBits();需要的BITMAPINFO, lpBits参数;
typedef struct tagBITMAPINFO { 
  BITMAPINFOHEADER bmiHeader; 
  RGBQUAD          bmiColors[256]; 
} BITMAPINFO, *PBITMAPINFO;其中bmiColors[i].rgbRed = bmiColors[i].rgbBlue = bmiColors[i].rgbGreen = i;lpBits就是你的颜色缓冲区
我也要活命呀,哈哈

解决方案 »

  1.   

    我的想法是:
      在我api中定义(创建)一个同样大小的bmp图像,然后在把我想要显示的数据拷贝到bmpBits地址内,来个偷梁换柱。
      另外一种是象素数据缺少头信息我就创建一个调色板和Info然后用就象上边提到的。
      

  2.   

    我用网友:kimryo(A Taste Of Dream)给出的处理方法显示图像。图像背景是黑色的。也不是图像看不清,只能看出一个大体的轮廓。且图像是二值的。
      

  3.   

    推荐一本。我手边只有一本数字图形处理。讲的是各种算法的
    在书的开头一个显示图像的例子,就是load 然后就显示。
    谢谢了。