📄 pbmpdec.h
字号:
/******************************************************
Copyright(C)2007,Rockchip Co., Ltd. All Rights Reserved.
File: bmphead_32bits.h
Desc:
Note:
Author: Eddie CF
$Log:
Revision 1.2 2007/01/09 Eddie CF
******************************************************/
#include "..\..\ImageWin\ImageWin.h"
#ifndef BMP_DEC_H
#define BMP_DEC_H
/*********************************************************************
INCLUDE
************************************************************************/
/*********************************************************************
DEFINE
************************************************************************/
#define BMP_TYPE 0x4d42 // 输入文件格式
#define BI_RGB 0 // No compression
#define BI_RLE8 1 // RLE8 compression (256 colors)
#define BI_RLE4 2 // RLE4 compression (16 colors)
#define BI_BITFIELDS 3 // BITFIELDS compression (16 bits and 32 bits)
#define ERROR_MARKER -4
#define ROW_EXCHANGE_ERROR -100
#if 0
#define NEAREST 1
#define BILNEAR 2
#define ROTATE 3
#define PI 3.14159265357
#endif
#define READ_TEMP_LEN 512
#define BMP_READ_MAX_ONCE 10*1024
#define BMP_FILE MY_FILE
#define RGB565_MARK_R 0xF800
#define RGB565_MARK_G 0x07E0
#define RGB565_MARK_B 0x001F
#define RGB555_MARK_R 0x7C00
#define RGB555_MARK_G 0x03E0
#define RGB555_MARK_B 0x001F
#define MIN(x,y) ((x)>(y)?(y):(x))
//#define _DEBUG_
//#define DebugRLE
/*************************************************************************
STRUCT
**************************************************************************/
#ifdef BOARD
typedef __packed struct tagBITMAPINFOHEADER
{
INT32S biSize;
INT32S biWidth;
INT32S biHeight;
INT16S biPlanes;
INT16S biBitCount;
INT32S biCompression;
INT32S biSizeImage;
INT32S biXPelsPerMeter;
INT32S biYPelsPerMeter;
INT32S biClrUsed;
INT32S biClrImportant;
} BITMAPINFOHEADER;
typedef __packed struct tagBITMAPFILEHEADER
{
INT16S bfType;
INT32S bfSize;
INT16S bfReserved1;
INT16S bfReserved2;
INT32S bfOffBits;
} BITMAPFILEHEADER;
#else
#pragma pack(push)
#pragma pack(1)
typedef struct tagBITMAPINFOHEADER
{
INT32S biSize;
INT32S biWidth;
INT32S biHeight;
INT16S biPlanes;
INT16S biBitCount;
INT32S biCompression;
INT32S biSizeImage;
INT32S biXPelsPerMeter;
INT32S biYPelsPerMeter;
INT32S biClrUsed;
INT32S biClrImportant;
} BITMAPINFOHEADER;
#pragma pack(pop)
#pragma pack(push)
#pragma pack(1)
typedef struct tagBITMAPFILEHEADER
{
INT16S bfType;
INT32S bfSize;
INT16S bfReserved1;
INT16S bfReserved2;
INT32S bfOffBits;
} BITMAPFILEHEADER;
#pragma pack(pop)
#endif
typedef struct _RGBQUAD
{
INT8S rgbBlue;
INT8S rgbGreen;
INT8S rgbRed;
INT8S rgbReserved;
} RGBQUAD;
typedef struct tagMARK
{
INT32U BmpReservedMark;
INT32U BmpRedMark;
INT32U BmpGreenMark;
INT32U BmpBlueMark;
}BMPMARK;
typedef struct tagBMP
{
BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER bmih;
RGBQUAD *bmiColors;
INT32U bmnumcolors;
BMPMARK BmpMark;
INT8U *BmpOutBuf;
INT32S bytes_per_line;
INT32U FileOffset;
INT8U *data;
}BMP;
typedef struct tagBMP* pBMP;
typedef struct
{
unsigned int (*read_func)(void *pBuff, unsigned int size, unsigned int cnt, void *Handle);
unsigned int (*seek_func)(void *stream, long offset, int origin);
unsigned int (*write_func)(IM_PIX_INFO out_info);
}BMP_CALLBACKS_DECODE;
typedef struct TagBmpOutFactor
{
BMP_FILE* BmpFile;
unsigned long *ImageWInBuf;
unsigned long *ImageHInBuf;
unsigned char *ImageBufAddr;
}BMPOUTFACTOR;
typedef struct TagBmpFactor
{
INT8U *ReadBuf;
INT32S height;
float BytesPerPixs;
INT32S ReadBufSize;
tpicregion Dst;
unsigned long dstxInt;
unsigned long dstyInt;
double zoomx;
double zoomy;
INT32S x;
INT32S y;
}BMPFACTOR;
/*************************************************************************
LOCAL VARIABLES
**************************************************************************/
extern INT32S BMP_Decode(BMP_CALLBACKS_DECODE BMP_callbacks_decode, BMPOUTFACTOR *BmpOutFactor, BMP *bmp, int ScreenWidth, int ScreenHigh);
extern INT32S BMP_ThumbNail_Decode(BMP_CALLBACKS_DECODE BMP_callbacks_decode, BMPOUTFACTOR *BmpOutFactor, BMP *bmp, int BufWidth, int BufHeight);
extern INT8U BMP_InitHead(BMP_CALLBACKS_DECODE BMP_callbacks_decode, BMP_FILE* BmpFile, BMP *bmp);
extern INT32U BMP_CustomOutput_32BitRGB888(IM_PIX_INFO out_info);
extern unsigned long BMPFunction(unsigned long ulSubFn, unsigned long ulParam1,
unsigned long ulParam2, unsigned long ulParam3,
unsigned long ulParam4);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -