给我一个8位图的二维数组,每个元素的值直接代表该像素的灰度,我如何能将这个二维数组显示成一副图像呢,还得速度快.哪位大侠给点提示或关键代码啊

解决方案 »

  1.   

    直接申请一块内存,内存大小等于这个二维数组的大小将数组值放入内存中,正确设置bmp的文件头、信息头、调色板,然后按正确的方式拷贝至界面就行了 还可以用来存入文件
      

  2.   

    //前提,屏幕显示是32位的,其中color是个4字节的整数,每个字节都等于你的灰度值即可BOOL AlphaCopyBlock(CDC* pDC,UINT x,UINT y,UINT cx,UINT cy,COLORREF *color)
    {
    CDC hmemdc;
    CBitmap hCurrentBitmap,*hOldBitmap;
    hmemdc.CreateCompatibleDC(pDC);
    hCurrentBitmap.CreateBitmap(cx,cy,1,32,color);
    hOldBitmap=hmemdc.SelectObject(&hCurrentBitmap);
    pDC->BitBlt(x,y,cx,cy,&hmemdc,0,0,SRCCOPY);
    hmemdc.SelectObject(hOldBitmap);
    hmemdc.DeleteDC();
    hCurrentBitmap.DeleteObject();
    return TRUE;
    }