写bmp图片的问题????
我用fwrite函数写图片的时候,总是写出的格式画图板不认识,写法如下:
if((ff=fopen( "xin.bmp ", "a "))==NULL)
{
cout < < "can not open ";
}
fwrite(pp,1,1078,ff);//pp是图象头的数据
fwrite(data11,1,128*91,ff);//data11是图象数据
其中图象头和图象数据都对,都符合位图的格式,因为是我读的图片的数据,而且已验证,可用fwrite写的时候,得到的文件格式画图板不认识!!
请大家帮忙指正!!
[解决办法]
if((ff=fopen( "xin.bmp ", "ab "))==NULL)
{
cout < < "can not open ";
}
试下。
[解决办法]
if((ff=fopen( "xin.bmp ", "a "))==NULL)
"a "这是把数据追加文件尾
fwrite(data11,1,128*91,ff);//data11是图象数据:每个像素信息你用的是多少位的?32位还是24位?如果用的是24位的,得分成三个字节来单独写。
[解决办法]
fwrite 操作函数要求以 2进制方式操作文件:
if((ff=fopen( "xin.bmp ", "ab "))==NULL) //b, 2进制操作方式
否则fwrite写文件的字符数会出现误差,
导致结果不正确。
[解决办法]
Microsoft的BUG
http://community.csdn.net/Expert/topic/5504/5504186.xml?temp=.2061273