LPBYTE m_lpDIBits;
DWORD m_dwImageSize; m_lpDIBits 为存储除去位图文件头,位图信息头,调色板后的位图数据(宽是8象素,高是40的单色位图)
pFile->Read(m_lpDIBits, m_dwImageSize);m_dwImageSize为位图信息头中的以字节为单位的图象大小
m_dwImageSize = m_lpBMPHdr->biSizeImage;为什么m_dwImageSize的大小是160?? m_lpDIBits为只存储160个字节的位图数据???不是说单色位图中的每个像素对应1个数据位吗???我要读取每个象素的点阵数据时应该怎样做????
解决方案 »
- select MAX为什么表为空时GetRecordCount为1
- 庆祝CSDN重新获得新生。。。。。。。
- 如何让wm_keydown消息重复响应得更快
- 计时器的问题,简单
- 在vc中怎么去查API函数?
- 一个简单的问题:怎样获得mouse cursor的尺寸?搞定立刻给分:)
- 哪位知道国内大的外企的薪资福利待遇和劳动强度?
- 有关对话框应用程序的数据显示
- 运行着的程序A如何启动程序B?
- 用 Ddraw 画图,想用屏蔽色,但CreateSurface 不成功
- 为什么新版本Visual Studio 中的C++ 难以编译通过以前的Visual C++6.0程序,谁能告诉我.
- 如何求解List control表格中某列的和
k = j*height+i)/8;
l = j*height+i)%8;
result = (m_lpDIBits[k]&(1<<l))>>l;
bit = (j * width + i) % 8;
result = (m_lpDIBits[byte] & (1 << bit)) ? 1 : 0;
int bytes,bit,results,i,j;
int array[8];
for(i = 0;i < m_lpBMPHdr->biHeight;i++ )
{ for(j = 0;j<m_lpBMPHdr->biWidth; j++)
{
bytes = (j * m_lpBMPHdr->biWidth + i) / 8;
bit = (j * m_lpBMPHdr->biWidth + i) % 8;
results = (m_lpDIBits[bytes] & (1 << bit)) ? 1 : 0;
array[j] = results;
}
}我刚按照楼上的朋友的方法去取值,array中的数据不对????另外是否应该从最底行开始读取