位图存储(MSDN)

       位图应保存在文件中,使用与既定的位图文件格式,并分配了一个扩展名为.bmp 三个字符的名称。与既定的位图文件格式包括 BITMAPFILEHEADER 结构 以及紧随其后的BITMAPINFOHEADER、 BITMAPV4HEADER 或 BITMAPV5HEADER 结构。RGBQUAD 结构 (也称为颜色表) 的数组位于位图信息头结构之后。颜色表接着是一个索引颜色表的数组(实际的位图数据)。
在下图中显示的位图文件格式。
         BITMAPFILEHEADER 结构的成员标识文件以字节为单位指定文件的大小 ;并指定从头的第一个字节到位图数据的第一个字节之间的偏移量。BITMAPINFOHEADER、 BITMAPV4HEADER 或 BITMAPV5HEADER 结构的成员 以像素为单位指定位图的 宽度高度 ,位图的 显示设备的颜色格式 (计数的彩色平面和颜色每个像素的位数);存储之前 是否压缩位图数据和使用何种压缩类型 ; 位图数据占用的字节数;创建位图的显示设备的解决方案 ;并表示数据中使用的颜色数量。RGBQUAD 结构指定为每个设备的调色板中的颜色的 RGB 强度值。 
        颜色索引数组将一种颜色以 RGBQUAD 结构的形式与位图中的每个像素相关联。因此, 颜色索引数组所占的位数等于 像素数乘上 编制索引的 RGBQUAD 结构所需的位数。例如,8 x 8 黑白位图颜色索引数组是8 * 8 * 1 = 64 位的,因为索引两种颜色只需要一位。关于位图Redbrick.bmp(微软自带的示例图像),是带 16 色的 32 x 32 位图,其颜色索引数组是 32 * 32 * 4 = 4096 位,因为四bit可以位索引16 色。 
         若要创建一个 自上而下的位图的颜色索引数组,开始在位图中的顶行。最左侧的像素在RGBQUAD中的颜色索引是存在整个颜色索引数组中的前 n 位 (其中 n 是表示该像素的所有的 RGBQUAD 结构所需的位数)。右侧的下一个像素的颜色是下一个 n 位在数组中,依此类推。你到达本行的最右侧的像素后,请继续下面的行中的最左侧像素。再继续,直至完成整个位图。如果是 自下而上的位图,从位图的底线开始,而不是位图的顶线,仍进行从左到右。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值