我编一个程序可以将4位8色的位图读进来了,但是它是两个数据占一个byte。
我用下面的方法读数据区:else if(m_numColors==16)
{
//16位的图也需要处理位图数据   
for(y=0;y<GetBmpHeight();y++)
{           
lpPtr=(char *)lpImgData+(SrcBufSize-m_nBytesPerRow-y*m_nBytesPerRow);
lpTempPtr=(char *)lpTempImgData+(DstBufSize-DstLineBytes-y*DstLineBytes); 
for(x=0;x<GetBmpWidth();x++)
{             
unsigned char Data=(unsigned char )(*(lpPtr++));
unsigned char DataUp = (unsigned char)(Data&0xf0);
                unsigned char DataDown = (unsigned char)(Data&0x0f);
                
//从位图数据计算得到Y值,写入新图中    *(lpTempPtr++)=(unsigned char)DataUp;
*(lpTempPtr++)=(unsigned char)DataDown;
}
}}可是我不知道应该怎样处理4位的调色板。
请求各位高手给我建议,希望能有程序的例子。谢谢了!