我用VC++写的存图像的程序,为什么保存了的BMP图像打不开,说是照片查看器不支持此个格式, 10

但是我就是写的BMP图像啊一开始第一数据时0x4d42,下面是保存图像的那段程序,IMAGEDATA*imagedatafenge=NULL;//动态分配分割后的图片的像... 但是我就是写的BMP图像啊 一开始第一数据时 0x4d42,下面是保存图像的那段程序,
IMAGEDATA *imagedatafenge = NULL; //动态分配分割后的图片的像素信息的二维数组
imagedatafenge = &(*(imagedata + i * width + j + 10) );
imagedatafenge = (IMAGEDATA*)malloc(width * height * sizeof(IMAGEDATA));
//初始化分割后图片的像素数组
for( i = 0;i < height;++i)
{
for(int j = 0;j < width;++j)
{
(*(imagedatafenge + i * width + j)).blue = 0;
(*(imagedatafenge + i * width + j)).green = 0;
(*(imagedatafenge + i * width + j)).red = 0;
}
}
IMAGEDATAhsv* imagedatahsv = NULL; //动态分配HSV图片的像素信息的二维数组
imagedatahsv = (tagIMAGEDATAhsv*)malloc(width * height * sizeof(IMAGEDATAhsv));
//初始HSV图片的像素数组
for( i = 0;i < height;++i)
{
for(int j = 0;j < width;++j)
{
(*(imagedatahsv + i * width + j)).hhh = 0;
(*(imagedatahsv + i * width + j)).sss = 0;
(*(imagedatahsv + i * width + j)).vvv = 0;
}
}

fpw=fopen("b.bmp","wb");
if(fpw==NULL)
{
cout<<"create the bmp file error!"<<endl;
return NULL;
}
/*WORD bfType_w = 0x4d42; //定义保存文件类型为BMP
fwrite(&bfType_w,sizeof(BYTE),1,fpw);
//fpw +=2; */
fwrite(&strHead,sizeof(tagBITMAPFILEHEADER),1,fpw);
fwrite(&strInfo,sizeof(tagBITMAPINFOHEADER),1,fpw);

//保存调色板数据
for(unsigned int nCounti=0;nCounti<strInfo.biClrUsed;nCounti++)
{
fwrite(&strPla[nCounti].rgbBlue,1,sizeof(BYTE),fpw);
fwrite(&strPla[nCounti].rgbGreen,1,sizeof(BYTE),fpw);
fwrite(&strPla[nCounti].rgbRed,1,sizeof(BYTE),fpw);
fwrite(&strPla[nCounti].rgbReserved,1,sizeof(BYTE),fpw);
}

//保存像素数据
for( i =0;i < height;++i)
{
for( int j = 0;j < width;++j)
{
fwrite( &((*(imagedatafenge + i * width + j)).red),sizeof(BYTE),1,fpw);//注意三条语句的顺序:否则颜色会发生变化
fwrite( &((*(imagedatafenge + i * width + j)).green),sizeof(BYTE),1,fpw);
fwrite( &((*(imagedatafenge + i * width + j)).blue),sizeof(BYTE),1,fpw);
}
}
fclose(fpw);
展开
 我来答
归悦欣cf
2013-03-26 · TA获得超过1443个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1311万
展开全部
至少说明位图信息头正确。
追问
BMP头文件是对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式