256色的BMP文件分为 BMP文件头,BMP信息头,彩色表和位图信息矩阵4部分。【个人收藏】

本文详细介绍了256色BMP文件的结构,包括BITMAPFILEHEADER_,BITMAPINFO_和COLOR_结构体,以及如何在BCB中读取BMP文件并显示。代码示例展示了从文件读取BMP头信息、彩色表,并进行数据转换的过程。
 BMP文件头结构;

struct BITMAPFILEHEADER_
{
    short type;//---------文件类型,一定是‘BM’
    int bfSize;//---------文件大小,字节单位
    short re1,re2;//------保留位
    int Offbits;//--------位图矩阵偏移量,是相对于文件开头的偏移量,字节单位
};

接下来是BMP信息头

struct BITMAPINFO_
{
    long size;//---------------位图大小,不一定有效的。
    long width,height;//-------位图宽度和位图高度,象素单位
    short planes,bitCount;//---平面数,一定为1;色彩深度,可以是1,4,8,16,分别表示单色,16色,256色和16位色。
    long comp,sizeImg;//-------压缩方式,0表示无压缩,1表示RLE压缩,2表示每个象素4比特的RLE压缩。
    long xpels,ypels;//--------水平分辨率和垂直分辨率,象素/米 表示
    long used,important;//-----所实际使用的颜色表中的颜色数,不一定有效;重要的颜色数,也不一定有效
};

彩色表项的结构是
struct COLOR_
{
    unsigned char blue;//--------蓝色亮度
    unsigned char green;//-------绿色亮度
    unsigned char red;//---------红色亮度
    unsigned char re;//----------保留
}

RLE是(Run Length Encoded 游程长度编码)压缩

这里只处理256色无压缩的BMP文件。


下面是BCB中读取BMP文件并在画布中显示出来的代码。

#include <vcl.h>
#pragma hdrstop
#include<stdio.h>
#include "Unit1.h"
#include"File1.h"

#pragma pack(1)
struct BITMAPFILEHEADER_
{
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值