win32汇编 屏幕截图保存BMP 学习笔记<第四篇>之生成BMP文件

到目前BMP内容已经生成在内存
可是不能直接保存为BMP文件
因为BMP需要在开头写一些header数据 总计54字节
如下图
这里写图片描述

BMP header都是些什么呢
以windows平台为例 用途如下
这里写图片描述

我开始明白raiky的第二个函数在干嘛了
很多代码都在生成这个header

接下来我们也要生成BMP Header
要怎么生成呢 难不成一个字接一个字节的自己写吗—NO
WINDOWS.INC已经定义了两个STRUCT
BITMAPFILEHEADER
BITMAPINFOHEADER
我们直接用这两个Struct来生成header
BMP header =BMP File Header+BMP Info Header
注意顺序file header 在前

先看下面全局变量,这里仅贴出了接下来用到的部分

    .data
SaveFileName db '11.bmp',0 ;必须要跟着0ByteCountPerPixel dd 3;位图中每个像素所占字节数 
.data?
ImgWidth dd ?
ImgHeight dd ?
dwBMPSize dd ? ; 位图文件大小(不含文件头)
dwWritten dd ? ;写入文件字节数
FileHdr dd ? ;定义文件句柄
bmFileHdr BITMAPFILEHEADER <> ;位图属性结构
bmInfoHdr BITMAPINFOHEADER <> ;位图文件头结构

先生成BMP INFO HEADER

    ;-----start to fill BMP INFO HEADER------
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值