打开点阵字库写到bmp文件中绘图(最强理解)

这篇博客介绍了如何将点阵字库写入BMP文件,详细解析了BMP文件的存储格式,特别是前52个字节的含义,并提供了代码示例。同时,提到了通过16*16的方格存储字库信息,以及获取字库文件的链接。最后,作者简要提及了处理英文字符的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

80*16大小的bmp格式图片
我们先来看看在Windows下bmp的存储格式到底是怎样的。大家可以下载一个UltraEdit软件和一个notepad++来进行打开二进制文件和编程。
ps:代码有点长,但是帮助理解,因为没有时间去写面对对象的了。大家将就看一下

1. bmp的存储格式,前面52个字节都是固定的了如下图:bmp存储格式
2. 我打开的是一张800*480的全白色图片,自行在画图工具去画。然后看到前面52个字节都代表着不一样的信息。而我们写入bmp文件的时候就应该注意,一定要写52个字节。其次就是bmp的rgb了。
3. 刚才跑去弄驱动了
4. 如下代码就是那52个字节数据

typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long int uint64_t;

typedef struct {
    //uint16_t bfType;            //文件类型,必须为BM
    uint32_t bfSize;            //文件大小
    uint16_t bfReserved1;       //文件保留字
    uint16_t bfReserved2;       //文件保留字
    uint32_t bfOffBits;         //文件头的偏移量
} BMPFILESTRUCT;

typedef struct {
    uint32_t biSize;            //从这里开始到结构体结束总共的字节数
    uint32_t biWidth;           //BM的宽度
    uint32_t biHeight;          //BM的高度
    uint16_t biPlanes;          //目标设备的级别,必须为1
    uint16_t biBitCount;        //每个像素的位数.
                                //1(双色,8个像素占1个字节),4(16色,2个像素占1个字节),8(256色,1个像素占1个字节),16(高彩色),24(真彩色,1个像素占3个字节,按顺序分别为B,G,R;)
    uint32_t biCompression;     //BM压缩类型,0(不压缩),1(BI_RLE8压缩类型),2(BI_RLE4压缩类型)
    uint32_t biSizeImage;       //BM的大小,其中包括为了补齐行数是4的倍数而添加的空字节
    uint32_t biXPelsPerMeter;   //BM水平分辨率,每米像素值
    uint32_t biYPelsPerMeter;   //BM垂直分辨率,每米像素值
    uint32_t biClrUsed;         //BM实际使用的颜色表中的颜色数
    uint32_t biClrImportant;    //BM显示过程中重要的颜色数
    
} BMPINFOSTRUCT;

**接下来就可以打开一个文件然后写到文件里面去了
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值