我将一个256色dib位图读入内存后,修改了dib头的调色板数据。
代码如下:
                 
    // 指向DIB的指针
         LPSTR lpDIB;   // 指向BITMAPINFO结构的指针
         LPBITMAPINFO lpbmi;
    
    // 获取指向BITMAPINFO结构的指针)
lpbmi = (LPBITMAPINFO)lpDIB;
 
for (i = 0; i < 256; i ++)
{
       // 更新DIB调色板红色分量
       lpbmi->bmiColors[i].rgbRed = i;

       // 更新DIB调色板绿色分量
       lpbmi->bmiColors[i].rgbGreen = i;

       // 更新DIB调色板蓝色分量
        lpbmi->bmiColors[i].rgbBlue = i;

       // 更新DIB调色板保留位
        lpbmi->bmiColors[i].rgbReserved = 0; 
        
          }
  为什么我把以下两条语句注释掉,不执行,图像照样会变色。照理说调色板
根本就没有实现,图像就不会有任何变化呀??  请哪位同仁指点迷津!!/* // 替换当前调色板为灰度调色板
   pDoc->GetDocPalette()->SetPaletteEntries(0, 256, (LPPALETTEENTRY) ColorsTable[5]);

// 实现新的调色板
  OnDoRealize((WPARAM)m_hWnd,0); //其中调用了RealizePalette()
  */