UINT8 r, g, b; //应该会损失数据内容
UINT16 s;
CBitmap bmp;
UINT16 buf[90*120];
CFile f(_T("\\nand\\123.bmp"),CFile::typeBinary|CFile::modeRead);
//图像翻转
for(int i=0; i<120; i++)
{
for (int j=0;j<90;j++)
{
f.Seek(54+i*(((270+3)/4)*4)+j*3,CFile::begin);
f.Read(&r,1);
f.Seek(54+i*(((270+3)/4)*4)+1+j*3,CFile::begin);
f.Read(&g,1);
f.Seek(54+i*(((270+3)/4)*4)+2+j*3,CFile::begin);
f.Read(&b,1);
s = (((UINT16(r)<< 8) & 0xF800) | ((UINT16(g) << 3) & 0x7E0)|(UINT16(b) >> 3));
buf[(120-i-1)*90+j]=s;
}
}
bmp.CreateBitmap(90,120,1,16,(unsigned char*)buf);
m_bmp.SetBitmap((HBITMAP)bmp);
UINT16 s;
CBitmap bmp;
UINT16 buf[90*120];
CFile f(_T("\\nand\\123.bmp"),CFile::typeBinary|CFile::modeRead);
//图像翻转
for(int i=0; i<120; i++)
{
for (int j=0;j<90;j++)
{
f.Seek(54+i*(((270+3)/4)*4)+j*3,CFile::begin);
f.Read(&r,1);
f.Seek(54+i*(((270+3)/4)*4)+1+j*3,CFile::begin);
f.Read(&g,1);
f.Seek(54+i*(((270+3)/4)*4)+2+j*3,CFile::begin);
f.Read(&b,1);
s = (((UINT16(r)<< 8) & 0xF800) | ((UINT16(g) << 3) & 0x7E0)|(UINT16(b) >> 3));
buf[(120-i-1)*90+j]=s;
}
}
bmp.CreateBitmap(90,120,1,16,(unsigned char*)buf);
m_bmp.SetBitmap((HBITMAP)bmp);