MF32BSP_XerolySkinner 2.0.0
C++版本的驱动库
载入中...
搜索中...
未找到
bsp_BMP.h
浏览该文件的文档.
1/*----------------------------------------------------------------------------------------------------
2 #
3 # Copyright (c) 2022 Yuankang Liang(XerolySkinner)
4 #
5 # 本软件按原样提供,无任何明示或暗示
6 # 在任何情况下,作者都不承担任何损害赔偿责任
7 #
8 # 使用的许可声明:
9 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件.
10 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中.
11 # 并且版权声明和许可声明同时出现.
12 # 3. 你有使用,复制,修改,分发,和销售本软件的许可.
13 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.
14 # 5. 本通知不得从任何来源删除或更改.
15 #
16 # Yuankang Liang(XerolySkinner)
17 # E-mail:zabbcccbbaz@163.com
18 # QQ:2715099320
19 # Mobile Phone:13005636215
20 #
21 # All rights reserved.
22 */
23
33#pragma once
34#ifdef __cplusplus
35#include "varint.h"
36#include <stdlib.h>
38//----------------------------------------------------------------------------------------------------
39// 文件头
40#pragma pack(1)
44typedef struct
45{
46 u16 bfType; //文件标志.固定为'BM',用来识别BMP位图类型
47 u32 bfSize; //文件大小,占四个字节
48 u16 bfReserved1; //保留,总为0
49 u16 bfReserved2; //保留,总为0
50 u32 bfOffBits; //从文件开始到位图数据(bitmap data)开始之间的的偏移量
55typedef struct {
56 u32 biSize; //BITMAPINFOHEADER结构所需要的字数。
57 u32 biWidth; //图象的宽度,以象素为单位
58 u32 biHeight; //图象的高度,以象素为单位
59 u16 biPlanes; //为目标设备说明位面数,其值将总是被设为1
60 u16 biBitCount; //比特数/象素,其值为1、4、8、16、24、或32
61 u32 biCompression; //图象数据压缩的类型。其值可以是下述值之一:
62 //BI_RGB:没有压缩;
63 //BI_RLE8:每个象素8比特的RLE压缩编码,压缩格式由2字节组成(重复象素计数和颜色索引);
64 //BI_RLE4:每个象素4比特的RLE压缩编码,压缩格式由2字节组成
65 //BI_BITFIELDS:每个象素的比特由指定的掩码决定。
66 u32 biSizeImage; //图象的大小,以字节为单位。当用BI_RGB格式时,可设置为0
67 u32 biXPelsPerMeter; //水平分辨率,用象素/米表示
68 u32 biYPelsPerMeter; //垂直分辨率,用象素/米表示
69 u32 biClrUsed; //位图实际使用的彩色表中的颜色索引数
70 u32 biClrImportant; //对图象显示有重要影响的颜色索引的数目,如果是0,表示都重要。
75typedef struct{
76 u8 rgbBlue; //指定蓝色强度
77 u8 rgbGreen; //指定绿色强度
78 u8 rgbRed; //指定红色强度
79 u8 rgbReserved; //保留,设置为0
80 }_RGBQUAD;
84typedef struct{
85 _BITMAPFILEHEADER bmfHeader; //位图文件头
86 _BITMAPINFOHEADER bmiHeader; //位图信息头
87 _RGBQUAD bmiColors[256]; //调色板
89#pragma pack()
91//----------------------------------------------------------------------------------------------------
92// 头文件
96class bsp_BMP {
97 public:
98 bsp_BMP(u32 Width, u32 Height);
99 ~bsp_BMP(void);
100 public:
101 void pels(u32 x, u32 y);
102 u32 giveData(void);
103 void delData(void);
104 void ColorsSet(u8 R, u8 G, u8 B,u32 i);
105 void sizeSet(u32 x, u32 y);
106 public:
110 };
112#endif
构建一个BMP类
Definition: bsp_BMP.h:96
void ColorsSet(u8 R, u8 G, u8 B, u32 i)
设置调色板
Definition: bsp_BMP.cpp:68
u8 * dat
数据区
Definition: bsp_BMP.h:109
void pels(u32 x, u32 y)
设置像素
Definition: bsp_BMP.cpp:45
void sizeSet(u32 x, u32 y)
设置图片大小
Definition: bsp_BMP.cpp:78
~bsp_BMP(void)
Definition: bsp_BMP.cpp:121
_BITMAPINFO BITMAPINFO
文件头
Definition: bsp_BMP.h:107
u32 Size
文件大小
Definition: bsp_BMP.h:108
void delData(void)
释放数据空间
Definition: bsp_BMP.cpp:59
u32 giveData(void)
给予数据空间
Definition: bsp_BMP.cpp:52
位图文件头
Definition: bsp_BMP.h:45
位图信息头
Definition: bsp_BMP.h:55
u32 biYPelsPerMeter
Definition: bsp_BMP.h:68
u32 biClrImportant
Definition: bsp_BMP.h:70
u32 biXPelsPerMeter
Definition: bsp_BMP.h:67
BMP文件头
Definition: bsp_BMP.h:84
_BITMAPFILEHEADER bmfHeader
Definition: bsp_BMP.h:85
_BITMAPINFOHEADER bmiHeader
Definition: bsp_BMP.h:86
调色板
Definition: bsp_BMP.h:75
u8 rgbGreen
Definition: bsp_BMP.h:77
u8 rgbReserved
Definition: bsp_BMP.h:79
u8 rgbRed
Definition: bsp_BMP.h:78
u8 rgbBlue
Definition: bsp_BMP.h:76
全局共用的标准类型表
uint8_t u8
8位无符号数类型
Definition: varint.h:40
uint16_t u16
16位无符号数类型
Definition: varint.h:41
uint32_t u32
32位无符号数类型
Definition: varint.h:42