⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bmp.h

📁 SD卡调试所用的资料
💻 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 + -