压缩位图行程编码格式的方法
关于位图行程编码格式压缩 ---Window中的位图支持行程编码压缩方式,通常位图的象素使用4比特或者8比特来表示,即BITMAPINFOHEADER结构中的biCompression的BI_RLE8和BI_RLE4 1.8位位图的压缩 ---在这种情况下BITMAPINFOHEADER结构中的biCompression设置为BI_RLE8,. 使用256色位图行程编码格式将位图进行压缩。这种压缩方式包括绝对方式和编码方式。 编码方式 ---在此方式下每两个字节组成一个信息单元。第一个字节给出其后面相连的象素的个数。 第二个字节给出这些象素使用的颜色索引表中的索引。 例如:信息单元03 04,03表示其后的象素个数是3个,04表示这些象素使用的是颜色索引表中的第五项的值。 压缩数据展开后就是04 04 04 .同理04 05 可以展开为05 05 05 05. 信息单元的第一个字节也可以是00, 这种情况下信息单元并不表示数据单元,而是表示一些特殊的含义。 这些含义通常由信息单元的第二个字节的值来描述。这些值在0x00到0x02之间。 具体含义如下: 第二个字节的值 00 线结束 01 位图结束 02 象素位置增量。表示紧跟在这个字节后面的信息单元里的两个字节中所包含的 无符号值指定了下个象素相对于当前象素的水平和垂直偏移量。 例如:00 02 06 08表示的含义是下一个象素的位值是从当前位置向右移动5个象素, 向下移动8个象素。(不是字节) 绝对方式 ---绝对方式的标志是第一个字节是0,第二个字节是0x03到0xff之间的值。 第二个 字节的值表示跟随其后面的象素的字节数目。每个字节都包含一个象素的颜色索引。 每个行程编码都必须补齐到字的边界。 2. 4位位图压缩 ---这是BITMAPINFOHEADER的biCompression设置为BI_RLE4, 使用16位行程编码格式进行位图压缩。压缩方式也包括编码方式和绝对方式。 编码方式: ---4位压缩的编码方式跟8位的编码的压缩方式没有什么区别。 每个信息单元也是由 两个字节表示,第一个字节表示其后面所跟随的象素的个数。 第二个字节表示象素在 颜色索引表中的索引。 这个字节又分为上下两个部分。第一个象素用上半部分指定的 颜色表中的颜色画出。 第二个象素用下半部分的颜色画出。第三个象素用下一个字节 的上半部分画出。 依次类推。 其余的跟8位位图压缩差不多。