Windows 保存BMP图片
2018-06-18 04:20:10来源:未知 阅读 ()
在Windows下保存BMP图片还是挺方便的,直接上代码,拷贝就能用
1 void savebmp(uchar * pdata, char * bmp_file, int width, int height ) 2 { //分别为rgb数据,要保存的bmp文件名,图片长宽 3 int size = width*height*3*sizeof(char); // 每个像素点3个字节 4 // 位图第一部分,文件信息 5 BITMAPFILEHEADER bfh; 6 bfh.bfType = (WORD)0x4d42; //bm 7 bfh.bfSize = size // data size 8 + sizeof( BITMAPFILEHEADER ) // first section size 9 + sizeof( BITMAPINFOHEADER ) // second section size 10 ; 11 bfh.bfReserved1 = 0; // reserved 12 bfh.bfReserved2 = 0; // reserved 13 bfh.bfOffBits = sizeof( BITMAPFILEHEADER )+ sizeof( BITMAPINFOHEADER );//真正的数据的位置 14 15 // 位图第二部分,数据信息 16 BITMAPINFOHEADER bih; 17 bih.biSize = sizeof(BITMAPINFOHEADER); 18 bih.biWidth = width; 19 bih.biHeight = -height;//BMP图片从最后一个点开始扫描,显示时图片是倒着的,所以用-height,这样图片就正了 20 bih.biPlanes = 1;//为1,不用改 21 bih.biBitCount = 24; 22 bih.biCompression = 0;//不压缩 23 bih.biSizeImage = size; 24 bih.biXPelsPerMeter = 2835 ;//像素每米 25 bih.biYPelsPerMeter = 2835 ; 26 bih.biClrUsed = 0;//已用过的颜色,24位的为0 27 bih.biClrImportant = 0;//每个像素都重要 28 FILE * fp = fopen( bmp_file,"wb" ); 29 if( !fp ) return; 30 31 fwrite( &bfh, 8, 1, fp );//由于linux上4字节对齐,而信息头大小为54字节,第一部分14字节,第二部分40字节,所以会将第一部分补齐为16自己,直接用sizeof,打开图片时就会遇到premature end-of-file encountered错误 32 fwrite(&bfh.bfReserved2, sizeof(bfh.bfReserved2), 1, fp); 33 fwrite(&bfh.bfOffBits, sizeof(bfh.bfOffBits), 1, fp); 34 fwrite( &bih, sizeof(BITMAPINFOHEADER),1,fp ); 35 fwrite(pdata,size,1,fp); 36 fclose( fp ); 37 }
在其他环境要自己编写 文件头和信息头等结构体,才能使用,可参考这篇博客。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- QTableView与Excel之间的文件打开与保存 2020-05-26
- windows7 + Qt(MSVC2017) + VS2019安装配置 2020-04-25
- windows10环境下QtCreator中出现skipping incompatible xxx 2020-03-31
- Windows 创建 .gdbinit 提示必须键入文件名 2020-03-17
- vscode C++ 程序 windows 2020-03-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash