您的位置:首页 > 其它

fstream中建立bmp文件总是不能打开的一个处理办法

2014-04-12 19:38 267 查看
std::fstream newbmp0("d:/haha.bmp",std::ios_base::in|std::ios_base::out|std::ios::app);

newbmp0.close();

std::fstream newbmp("d:/haha.bmp",std::ios_base::in|std::ios_base::out|std::ios::binary);

newbmp.seekg(std::ios::beg);

newbmp.write(BMP_header,54);//

int newwidth=400,newheight=400;//bmp位图文件的宽度和高度

newbmp.seekg(0x0012,std::ios_base::beg);

newbmp.write((char*)(&newwidth),sizeof(int));

newbmp.seekg(0x0016,std::ios_base::beg);

newbmp.write((char*)(&newheight),4);//头文件搞定了

大学毕业设计就是关于像素拼接的程序,当时就不能用c++代码所创建的文件操作,因为创建的文件打不开,即使把头文件统统复制给新文件不加修改,还是不能成为一个完整的bmp位图文件。

这次我想用opengl实现将opengl里面的图像保存,其保存就是用c++代码实现,出现了同样的问题。我使用ios::app可以打开文件,然后用ios::binary模式,默认好像是字符模式,就可以使bmp文件变得完整,就可以打开,具体原因我也不清楚。。。等以后懂了再来编辑,先写到这一步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐