博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成一个空白BMP的简单代码【转】
阅读量:5934 次
发布时间:2019-06-19

本文共 1391 字,大约阅读时间需要 4 分钟。

转自:

做图像处理时,有时需要临时生成图使用。以下是生成320x240 24位图的一个简单的代码实现:#define WIDTHBYTES(bits) ((DWORD)(((bits)+31) & (~31)) / 8) void makebmp(){int nSize =abs(long(240 * WIDTHBYTES(24 * 320)));char*  buff = new char[nSize];memset(buff, 0, nSize);BITMAPINFOHEADER header;header.biSize = sizeof(BITMAPINFOHEADER);header.biWidth = 320;header.biHeight = 240*(-1);header.biBitCount = 24;header.biCompression = 0;header.biSizeImage = 0;header.biClrImportant = 0;header.biClrUsed = 0;header.biXPelsPerMeter = 0;header.biYPelsPerMeter = 0;header.biPlanes = 1;//3 构造文件BITMAPFILEHEADER bmpFileHeader;HANDLE hFile = NULL;DWORD dwTotalWriten = 0;DWORD dwWriten;bmpFileHeader.bfType = 0x4d42; //'BM';bmpFileHeader.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);bmpFileHeader.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)+ nSize;FILE* pf = fopen("d:\\test.bmp", "wb");fwrite(&bmpFileHeader, sizeof(BITMAPFILEHEADER), 1, pf);fwrite(&header, sizeof(BITMAPINFOHEADER), 1, pf);fwrite(buff, 1, nSize, pf);fclose(pf);delete buff;}唯一需要解释的就是这句:#define WIDTHBYTES(bits) ((DWORD)(((bits)+31) & (~31)) / 8)这是为了保证32字节对齐。VC的头文件和DirectShow的文件都能找到定义。因为 memset(buff, 0, nSize);所以生成的图是黑色的。可以自己修改,按RGB三字节写上不同的值,看看图像有什么变化。

 

【作者】
【出处】
【博客园】
【新浪博客】
【知乎】
【我的作品---旋转倒立摆】
【我的作品---自平衡自动循迹车】
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
你可能感兴趣的文章
CentOS 7 中使用NTP进行时间同步
查看>>
MySQL 导入数据
查看>>
使用python读取mysql数据库并进行数据的操作
查看>>
GitHub:我们是这样弃用jQuery的
查看>>
隐藏输入法和弹出输入法
查看>>
Linux命令之tar:文件打包(备份)、压缩、解压
查看>>
CI框架不定期更新
查看>>
Spring源码解析-AutowiredAnnotationBeanPostProcessor
查看>>
list.add并不是copy
查看>>
什么是SSL预证书?
查看>>
java中的printf方法
查看>>
web项目中idea中jsp被编译后的class与java文件在哪里?
查看>>
Python的书写规则
查看>>
深入分析golang多值返回以及闭包的实现
查看>>
简单了解云安全内容
查看>>
Flask学习
查看>>
AngularDart4.0 英雄之旅-教程-08HTTP
查看>>
对于对象的简单验证及返回处理——@JsonView ,@Valid注解的使用
查看>>
Day24 shell环境变量
查看>>
7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法
查看>>