📄 bmp.h
字号:
#ifndef __BMP_H__
#define __BMP_H__
#include "main.h"
/// 定义BMP文件头
#pragma pack(2) ///结构紧凑对齐 以2字节对齐
typedef struct
__BMP_File_Header
{
u16 BMP_Type;
u32 BMP_Size;
u16 null_001;
u16 null_002;
u32 BMP_Offet_Bytes;
}_BMP_File_Header;
#pragma pack() ///还原默认对齐方式
/// 定义BMP图信息头
#pragma pack(2)
typedef struct
__BMP_Infor_Header
{
u32 SizeOfHeader;
s32 BMP_Width;
s32 BMP_Height;
u16 BMP_Planes;
u16 BMP_BitCount;
u32 BMP_Compression;
u32 BMP_DataSize;
s32 BMP_XPperMeter;
s32 BMP_YPperMeter;
u32 BMP_ColorCnt;
u32 BMP_ColorImportant;
}_BMP_Infor_Header;
#pragma pack()
/// 定义BMP RGB色彩表
#pragma pack(1)
typedef struct
__BMP_RGB_Table
{
u8 RGB_Blue;
u8 RGB_Green;
u8 RGB_Red;
u8 null_003;
}_BMP_RGB_Table;
#pragma pack()
/// 定义位图信息
#pragma pack(2)
typedef struct
__Bitmap_Infor
{
_BMP_File_Header File_Header;
_BMP_Infor_Header Infor_Header;
_BMP_RGB_Table RGB_Table[1];
}_Bitmap_Infor;
#pragma pack()
#define HeaderCnt (sizeof(_Bitmap_Infor))
typedef union
__BMP_Infor
{
_Bitmap_Infor Infor;
u8 buf[HeaderCnt];
}_BMP_Infor;
typedef struct
__RGB_BMP24
{
u8 B;
u8 G;
u8 R;
}_RGB_BMP24;
typedef union
__RGB_buf24
{
_RGB_BMP24 BMP;
u8 Data[3];
}_RGB_buf24;
#define R24max 0xff
#define G24max 0xff
#define B24max 0xff
#define R16max 0x1f
#define G16max 0x3f
#define B16max 0x1f
extern struct Fat16_FS_Struct* Fat16System;
extern struct Fat16_Dir_Struct* RootDir;
extern struct Fat16_File_Struct* FileData;
extern u8 isDirOpened;
extern u8 isFileOpened;
extern u8 OpenDir(char* Path);
extern void CloseDir(void);
extern u8 OpenFile(u8* filename);
extern void CloseFile(void);
extern u8 BMP_ReadHeader(void);
extern s16 ReadBMPData(u8* buf,s32 addr, u16 len);
extern u16 BMP24_To_BMP16(_RGB_BMP24 RGB24);
extern u8 ShowBMP24(s16 X,s16 Y,u8* filename,u8 isClr);
extern u16 tftBuf[];
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -