我有张nWidth*nHeight的图片,我开一个nWidth*nHeight*3的数组,然后将颜色一个一个计算出来填进数组。
我先用dc.SetPixel()将每个像素画上去。然后我创建一个Bitmap的对象,将图像数据加到Bitmap中。但我用Bitmap来显示图像和刚才dc.SetPixel()显示的图像颜色不一样。如下图:下面那张使用Bitmap。请教各位大牛,为什么会出现这种情况,怎么让Bitmap显示图片也正常?

解决方案 »

  1.   

    我Bitmap是这样创建的:
    BITMAPINFO BitmapInfo;
    memset(&BitmapInfo,0,sizeof(BitmapInfo));
    BitmapInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    BitmapInfo.bmiHeader.biWidth = Resolution_Width;
    BitmapInfo.bmiHeader.biHeight = -Resolution_Height;
    BitmapInfo.bmiHeader.biPlanes = 1;
    BitmapInfo.bmiHeader.biBitCount = 24; Bitmap image(&BitmapInfo, (void *)pDoc->m_Picture);
      

  2.   

    颜色通道顺序的问题。把rgb和bgr搞清楚了就行
      

  3.   

    有一个的 rgb和bgr 反了
      

  4.   

    #3 得分:0 回复于: 2012-12-16 18:57:33 
    有一个的 rgb和bgr 反了