读取8位raw图像数据,然后自己建立bmp头文件,最后显示出来,我的做法为什么行不通呢?

nkzyf 2005-06-20 01:24:36
图像是raw的8位 320*237 灰度图象,下面是个部分的代码

读取raw数据:

LPCTSTR lpszFilter="BMP Files(*.bmp)|*.bmp|任何文件|*.*||";
CFileDialog dlg1(TRUE,lpszFilter,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,lpszFilter,NULL);

CString filename;
CFile file;

if (dlg1.DoModal()==IDOK)
{
filename=dlg1.GetPathName();
if (file.Open(filename,CFile::modeRead|CFile::shareDenyNone,NULL)==0)
{
//读取文件失败
AfxMessageBox("不能打开文件",MB_OK,0);
return;
}
}



建立bmp文件头:

BITMAPINFOHEADER bi;
bi.biSize=sizeof(BITMAPINFOHEADER);
bi.biWidth=320;
bi.biHeight=237;
bi.biPlanes=0;
bi.biBitCount=8;
bi.biCompression=BI_RGB;
bi.biSizeImage=(bi.biWidth*bi.biBitCount+31)/32*4*bi.biHeight;
bi.biXPelsPerMeter=0;
bi.biYPelsPerMeter=0;
bi.biClrUsed=0;
bi.biClrImportant=0;


pbi=(BITMAPINFO *)malloc(sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD) );

pbi->bmiHeader=bi;

//设置调色板信息
for (int i=0;i<255;i++)
{

pbi->bmiColors[i].rgbBlue=i;
pbi->bmiColors[i].rgbGreen=i;
pbi->bmiColors[i].rgbRed=i;
pbi->bmiColors[i].rgbReserved=0;
}

//lpBuf=(BYTE*)HeapAlloc(GetProcessHeap(),0,bi.biSizeImage);
lpBuf=(BYTE*)malloc(75840);

//读取图像数据
file.Read(lpBuf,75840);
file.Close;
flag=1;



显示: SetDIBitsToDevice(dc.m_hDC,
10,
10,
pDoc->bi.biWidth,
pDoc->bi.biHeight,
0,
0,
0,
pDoc->bi.biHeight,
pDoc->lpBuf,
pDoc->pbi,
DIB_RGB_COLORS
);
...全文
257 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nkzyf 2005-06-20
  • 打赏
  • 举报
回复
BITMAPFILEHEADER
不是必须的吧!?
bobob 2005-06-20
  • 打赏
  • 举报
回复
没有BITMAPFILEHEADER
nkzyf 2005-06-20
  • 打赏
  • 举报
回复
大哥,说两句啊,不要一个ding字就走啊
wuchi 2005-06-20
  • 打赏
  • 举报
回复
ding

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧