256色位图中ImageData数据域每个字节对应一个象素 这8bit和RGB三个值有什么联系 这里我用到的位图用到了调色板,我可以用 int nIndex = (*(LPBYTE)(pDib->m_lpImage+pDib->GetPixelOffset(x, y)) &                                (x%2 ? 0x0f : 0xf0)) >> (x%2 ? 0 : 4); LPRGBQUAD pDibQuad = (LPRGBQUAD) (pDib->m_lpvColorTable) + nIndex; 来实现对象素RGB的修改,不过这样对ImageData域没有改动 所以在以后的处理中很不方便 请问有什么办法可以直接修改数据域(根据RGB) 怎样理解ImageData数据域的8比特?

解决方案 »

  1.   

    这8bits就是调色板中RGB向量的索引值。
      

  2.   

    你所说的“256色位图中ImageData”其实就是调色板中RGB向量的索引值。
    “请问有什么办法可以直接修改数据域(根据RGB)”
    8位位图不能直接改rgb,如果非要那样,你可以把图象转为24位的,(不过好象没有必要那样)
    “怎样理解ImageData数据域的8比特?”
    这句话什么意思?就是用8比特来表示一个值,有什么深意吗?
      

  3.   

    256色当然要8bit(2的8方嘛),而且RGB每个8bit 
    你应该要了解bitmap的格式
      

  4.   

    小弟我已经转投24位的了,原本以为256色位图也可以不通过调色板修改RGB,ImageData里的8bit应该就是RGB向量的索引值了,谢谢各位大哥!