MF32BSP_XerolySkinner
2.0.0
C++版本的驱动库
载入中...
搜索中...
未找到
bsp_Device
bsp_math
bsp_BMP.cpp
浏览该文件的文档.
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
34
//----------------------------------------------------------------------------------------------------
35
// 头文件
36
#include "
bsp_BMP.h
"
38
//----------------------------------------------------------------------------------------------------
39
// 类函数
45
void
bsp_BMP::pels
(
u32
x,
u32
y) {
46
bsp_BMP::BITMAPINFO
.
bmiHeader
.
biXPelsPerMeter
= x;
47
bsp_BMP::BITMAPINFO
.
bmiHeader
.
biYPelsPerMeter
= y;}
52
u32
bsp_BMP::giveData
(
void
) {
53
free(
dat
);
54
dat
= (
u8
*)malloc(
Size
);
55
return
(
u32
)
dat
;}
59
void
bsp_BMP::delData
(
void
) {
60
free(
dat
);}
68
void
bsp_BMP::ColorsSet
(
u8
R,
u8
G,
u8
B,
u32
i) {
69
BITMAPINFO
.
bmiColors
[i].
rgbBlue
= B;
70
BITMAPINFO
.
bmiColors
[i].
rgbGreen
= G;
71
BITMAPINFO
.
bmiColors
[i].
rgbRed
= R;
72
BITMAPINFO
.
bmiColors
[i].
rgbReserved
= 0;}
78
void
bsp_BMP::sizeSet
(
u32
x,
u32
y) {
79
free(
dat
);
80
Size
= x * y;
81
BITMAPINFO
.
bmiHeader
.
biWidth
= x;
// 色彩宽度
82
BITMAPINFO
.
bmiHeader
.
biHeight
= y;
// 色彩高度
83
BITMAPINFO
.
bmfHeader
.
bfOffBits
=
84
sizeof
(
_BITMAPINFO
);
// 位图数据偏倚
85
BITMAPINFO
.
bmfHeader
.
bfSize
=
86
x * y +
87
BITMAPINFO
.
bmfHeader
.
bfOffBits
;
// 文件大小
88
}
90
//----------------------------------------------------------------------------------------------------
91
// 构造函数
97
bsp_BMP::bsp_BMP
(
u32
Width,
u32
Height) {
98
bsp_BMP::dat
= NULL;
99
bsp_BMP::Size
= Width * Height;
100
BITMAPINFO
.
bmiHeader
.
biWidth
= Width;
// 色彩宽度
101
BITMAPINFO
.
bmiHeader
.
biHeight
= Height;
// 色彩高度
102
BITMAPINFO
.
bmfHeader
.
bfType
= 0x4D42;
// 恒为保护字
103
BITMAPINFO
.
bmfHeader
.
bfReserved1
= 0;
// 保留字
104
BITMAPINFO
.
bmfHeader
.
bfReserved2
= 0;
// 保留字
105
BITMAPINFO
.
bmiHeader
.
biCompression
= 0;
// 无压缩
106
BITMAPINFO
.
bmiHeader
.
biSizeImage
= 0;
// 无压缩下为0
107
BITMAPINFO
.
bmiHeader
.
biPlanes
= 1;
// 恒为保护字
108
BITMAPINFO
.
bmiHeader
.
biClrUsed
= 0;
// 使用全部颜色
109
BITMAPINFO
.
bmiHeader
.
biClrImportant
= 0;
// 全部颜色都重要
110
BITMAPINFO
.
bmiHeader
.
biXPelsPerMeter
= 0;
// 像素-不太重要
111
BITMAPINFO
.
bmiHeader
.
biYPelsPerMeter
= 0;
// 像素-不太重要
112
BITMAPINFO
.
bmiHeader
.
biSize
= 40;
// 信息头大小
113
BITMAPINFO
.
bmfHeader
.
bfOffBits
=
114
sizeof
(
_BITMAPINFO
);
// 位图数据偏倚
115
BITMAPINFO
.
bmfHeader
.
bfSize
=
116
Width * Height+
117
BITMAPINFO
.
bmfHeader
.
bfOffBits
;
// 文件大小
118
BITMAPINFO
.
bmiHeader
.
biBitCount
= 8;
// 色彩深度
119
}
120
//----------------------------------------------------------------------------------------------------
121
bsp_BMP::~bsp_BMP
(
void
) {
122
free(
dat
);}
bsp_BMP.h
用来构造BMP图片
bsp_BMP::ColorsSet
void ColorsSet(u8 R, u8 G, u8 B, u32 i)
设置调色板
Definition:
bsp_BMP.cpp:68
bsp_BMP::dat
u8 * dat
数据区
Definition:
bsp_BMP.h:109
bsp_BMP::bsp_BMP
bsp_BMP(u32 Width, u32 Height)
构造BMP数据头
Definition:
bsp_BMP.cpp:97
bsp_BMP::pels
void pels(u32 x, u32 y)
设置像素
Definition:
bsp_BMP.cpp:45
bsp_BMP::sizeSet
void sizeSet(u32 x, u32 y)
设置图片大小
Definition:
bsp_BMP.cpp:78
bsp_BMP::~bsp_BMP
~bsp_BMP(void)
Definition:
bsp_BMP.cpp:121
bsp_BMP::BITMAPINFO
_BITMAPINFO BITMAPINFO
文件头
Definition:
bsp_BMP.h:107
bsp_BMP::Size
u32 Size
文件大小
Definition:
bsp_BMP.h:108
bsp_BMP::delData
void delData(void)
释放数据空间
Definition:
bsp_BMP.cpp:59
bsp_BMP::giveData
u32 giveData(void)
给予数据空间
Definition:
bsp_BMP.cpp:52
_BITMAPFILEHEADER::bfSize
u32 bfSize
Definition:
bsp_BMP.h:47
_BITMAPFILEHEADER::bfReserved2
u16 bfReserved2
Definition:
bsp_BMP.h:49
_BITMAPFILEHEADER::bfType
u16 bfType
Definition:
bsp_BMP.h:46
_BITMAPFILEHEADER::bfReserved1
u16 bfReserved1
Definition:
bsp_BMP.h:48
_BITMAPFILEHEADER::bfOffBits
u32 bfOffBits
Definition:
bsp_BMP.h:50
_BITMAPINFOHEADER::biYPelsPerMeter
u32 biYPelsPerMeter
Definition:
bsp_BMP.h:68
_BITMAPINFOHEADER::biSizeImage
u32 biSizeImage
Definition:
bsp_BMP.h:66
_BITMAPINFOHEADER::biClrUsed
u32 biClrUsed
Definition:
bsp_BMP.h:69
_BITMAPINFOHEADER::biWidth
u32 biWidth
Definition:
bsp_BMP.h:57
_BITMAPINFOHEADER::biPlanes
u16 biPlanes
Definition:
bsp_BMP.h:59
_BITMAPINFOHEADER::biClrImportant
u32 biClrImportant
Definition:
bsp_BMP.h:70
_BITMAPINFOHEADER::biXPelsPerMeter
u32 biXPelsPerMeter
Definition:
bsp_BMP.h:67
_BITMAPINFOHEADER::biSize
u32 biSize
Definition:
bsp_BMP.h:56
_BITMAPINFOHEADER::biBitCount
u16 biBitCount
Definition:
bsp_BMP.h:60
_BITMAPINFOHEADER::biHeight
u32 biHeight
Definition:
bsp_BMP.h:58
_BITMAPINFOHEADER::biCompression
u32 biCompression
Definition:
bsp_BMP.h:61
_BITMAPINFO
BMP文件头
Definition:
bsp_BMP.h:84
_BITMAPINFO::bmfHeader
_BITMAPFILEHEADER bmfHeader
Definition:
bsp_BMP.h:85
_BITMAPINFO::bmiHeader
_BITMAPINFOHEADER bmiHeader
Definition:
bsp_BMP.h:86
_BITMAPINFO::bmiColors
_RGBQUAD bmiColors[256]
Definition:
bsp_BMP.h:87
_RGBQUAD::rgbGreen
u8 rgbGreen
Definition:
bsp_BMP.h:77
_RGBQUAD::rgbReserved
u8 rgbReserved
Definition:
bsp_BMP.h:79
_RGBQUAD::rgbRed
u8 rgbRed
Definition:
bsp_BMP.h:78
_RGBQUAD::rgbBlue
u8 rgbBlue
Definition:
bsp_BMP.h:76
u8
uint8_t u8
8位无符号数类型
Definition:
varint.h:40
u32
uint32_t u32
32位无符号数类型
Definition:
varint.h:42
制作者
1.9.5