BMP图片的填补细节和emwin的图片差别

1 篇文章 0 订阅

最近在处理BMP的图片显示,关于BMP的文件数据头,就不多解释了。。
网上随便找一下都是一大堆。
我想记录一下bmp的补齐原则。
在这里插入图片描述
关于这张图片,尺寸是这样的:
38 * 25
262 个字节
里面的位图深度是1位单色

使用emwin的图片,转换的图片是这样的。
static GUI_CONST_STORAGE unsigned char acconvert1[] = {
XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXX__,
XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXX__,
XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXX__,
XX______, ________, ________, , XXXXX,
X
, ________, ________, ________, _XXX,
________, ________, , , XXX,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, XXX,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X__XXX,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X__XXX,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X____X,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X
,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X
,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X
,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X
,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X
,
XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X
,
_XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X__XXX,
_XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, X__XXX,
___XXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, _XXX,
________, ________, ________, __, XXX,
X
, ________, ________, ___, XXX,
XX
, ________, ________, _, XXXXX,
XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXX
,
XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXX
,
XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXXXX, XXXXXX

};

GUI_CONST_STORAGE GUI_BITMAP bmconvert1 = {
38, /* XSize /
25, /
YSize /
5, /
BytesPerLine /
1, /
BitsPerPixel /
acconvert1, /
Pointer to picture data (indices) /
&Palconvert1 /
Pointer to palette */
};

可以看到BytesPerLine 是5,大小是38 * 25 这都是没问题的。
如果直接将BMP图片放入2进制位图,可以看到:
在这里插入图片描述数据 bmp是以 42 4D 开头的。前面的62个字节 是图片数据。后面的200的字节是位图数据。

这时候就有个问题了。
用emwin的图片转化器形成的数据大小是: 5 * 25 = 125 的字节
可是window7的数据字节确实: 200!

那丢失的75个数据去哪里了呢????
究竟数据发生了什么填补?

{BMP如果未经过emwin的转换软件的在windows会用0补齐。补齐的方式是2的次方形式。
2 4 8 16 32 64 128
}

然后擅自改动位图的BytesPerLine 是否会影响内存的显示呢?
实验证明是不影响的,也见证了emwin的强大之处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值