typedef struct {
    unsigned char R;
unsigned char G;
unsigned char B;
}MyColor;
     
得到了一个数组MyColor PixArr[1280, 1024]  ,1280为宽度,1024为高度存储方法为从上到下,从左到右扫描请问怎么显示在View上,怎么存储为bmp文件???请麻烦写一下代码,可以吗?谢谢

解决方案 »

  1.   

    我刚刚写了一段根据256灰度位图数据矩阵显示位图的代码:
    //建立位图数据矩阵
    int w = 200, h = 200;
    BYTE *pBits = new BYTE[w * h];
    BYTE *p = pBits;
    int i, j;
    for (i=0; i<h; i++)
    {
    for (j=0; j<w; j++)
    {
    pBits[i * w + j] = BYTE(128);
    }
    }//#for(i) //造信息,填充BITMAPINFO结构
    struct
    {
    BITMAPINFOHEADER bmiHeader;
    RGBQUAD quad[256];
    }bmInfo; for (i=0; i<256; i++)
    {
    bmInfo.quad[i].rgbRed = BYTE(i);
    bmInfo.quad[i].rgbBlue = BYTE(i);
    bmInfo.quad[i].rgbGreen = BYTE(i);
    bmInfo.quad[i].rgbReserved = BYTE(0);
    } bmInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);     
    bmInfo.bmiHeader.biWidth = w;
    bmInfo.bmiHeader.biHeight = h;
    bmInfo.bmiHeader.biPlanes = 1;
    bmInfo.bmiHeader.biBitCount = 8;
    bmInfo.bmiHeader.biCompression = 0;
    bmInfo.bmiHeader.biSizeImage = 0;
    bmInfo.bmiHeader.biXPelsPerMeter = 0;
    bmInfo.bmiHeader.biYPelsPerMeter = 0;
    bmInfo.bmiHeader.biClrUsed = 0;
    bmInfo.bmiHeader.biClrImportant = 0; //显示
    ::StretchDIBits(pDC->m_hDC, 0, 0, w, h, 0, 0, w, h, pBits, (PBITMAPINFO)&bmInfo, DIB_RGB_COLORS, SRCCOPY); //清洁
    delete pBits;
    至于保存,自己构造文件头吧
      

  2.   

    sorry, 最后的delete pBits应为delete[] pBits