BITMAP位图文件主要分为如下3个部分:
块名称
对应Windows结构体定义
大小(Byte)
文件信息头 BITMAPFILEHEADER 14
位图信息头 BITMAPINFOHEADER 40
RGB颜色阵列 BYTE* 由图像长宽尺寸决定


定义BITMAP  文件信息头,位图信息头的  代码 如下:

#pragma pack(push) /* 将当前pack设置压栈保存;把原来对齐方式设置压栈
*/

#pragma pack(1)    /*
设新的对齐方式设置为一个字节对齐,必须在结构体定义之前使用,这是为了让结构体中各成员按1字节对齐 */





typedef struct tagBITMAPFILEHEADER { /* bmfh */   //文件信息头

unsigned short bfType; 

unsigned long  bfSize;

unsigned short bfReserved1;

unsigned short bfReserved2;

unsigned long  bfOffBits;

} BITMAPFILEHEADER;





typedef struct tagBITMAPINFOHEADER { /* bmih */     //位图信息头

unsigned long  biSize;

unsigned long  biWidth;

unsigned long  biHeight;

unsigned short biPlanes;

unsigned short biBitCount;

unsigned long  biCompression;

unsigned long  biSizeImage;

unsigned long  biXPelsPerMeter;

unsigned long  biYPelsPerMeter;

unsigned long  biClrUsed;

unsigned long  biClrImportant;

} BITMAPINFOHEADER;





#pragma pack(pop) /* 恢复先前的pack设置;作用:恢复对齐状态
*/

---------------------------------------------------------------------------------

注意:一定要让结构体中各成员按1字节对齐,否则就不能保证文件信息头的大小为14字节,位图信息头为40字节了!

加入push和pop可以使对齐恢复到原来状态

最新文章

  1. PHP环境的搭建(Apache)
  2. 纯window下VMware 安装 OS X El Capitan 原版映像【未完待续】
  3. 入手Cubieboard2之制作最小Linux系统
  4. hdu1285 拓扑序
  5. Dubbo 通过Spring 配置具体启动服务
  6. 矩阵取数游戏 NOIP 2007
  7. linux下启动和关闭网卡命令
  8. 高性能、高流量Java Web站点打造的22条建议
  9. 浅谈数据库系统中的cache
  10. Bootstrap3.0学习第八轮
  11. STC-单片机控制系统
  12. Linux下Jdk的安装和jdk环境变量的设置
  13. 在windows64位Anaconda3环境下安装XGBoost
  14. 计算机网络之IP协议族
  15. 移动开发常用head部分
  16. Excel动态图表
  17. 【python35小工具】b站弹幕保存
  18. mybatis逆向工程之maven工程
  19. linux的convert图片处理工具
  20. Android 实现简单 倒计时60秒,一次1秒

热门文章

  1. Zabbix3.2 客户端安装
  2. juniper设置共享上网(注意事项)
  3. thinkphp 多表事务处理
  4. 转:gdb相关学习
  5. MySql增加用户、授权、修改密码等语句
  6. JavaScript -- 正则表达式 检验表单提交的内容
  7. Linux嵌入式 -- Bootloader , Uboot
  8. MATLAB一个数组中另一个数组的值
  9. 新东方雅思词汇---7.1、probation
  10. 设计高效sql一般经验谈