📄 jzimagebmp.h
字号:
// JzImageBmp.h: interface for the CJzImageBmp class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_JZIMAGEBMP_H__4FB9F02A_EDEF_424D_9550_737CA6B42225__INCLUDED_)
#define AFX_JZIMAGEBMP_H__4FB9F02A_EDEF_424D_9550_737CA6B42225__INCLUDED_
#include "JzImage.h"
#include "xiofile.h"
const int RLE_COMMAND = 0;
const int RLE_ENDOFLINE = 0;
const int RLE_ENDOFBITMAP = 1;
const int RLE_DELTA = 2;
#if !defined(BI_RLE8)
#define BI_RLE8 1L
#endif
#if !defined(BI_RLE4)
#define BI_RLE4 2L
#endif
class CJzImageBmp : public CJzImage
{
/*
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
*/
public:
CJzImageBmp();
CJzImageBmp(PSCRINFO pscr):CJzImage(pscr){};
virtual bool Decode(CxFile * hFile);
virtual ~CJzImageBmp();
private:
bool Read4BPPData(unsigned int wBpp);
bool Read32BPPData(unsigned int wBpp,unsigned int *mask);
bool DibReadBitmapInfo(CxFile* fh, BITMAPINFOHEADER *pdib);
BITMAPFILEHEADER bf;
BITMAPINFOHEADER bmpHeader;
DWORD dwCompression;;
DWORD dwBitCount;
bool bIsOldBmp;
bool bTopDownDib;
CxFile *hFile;
DWORD off;
};
#define BFT_ICON 0x4349 /* 'IC' */
#define BFT_BITMAP 0x4d42 /* 'BM' */
#define BFT_CURSOR 0x5450 /* 'PT' */
#ifndef WIDTHBYTES
#define WIDTHBYTES(i) ((unsigned)((i+31)&(~31))/8) /* ULONG aligned ! */
#endif
#define DibWidthBytesN(lpbi, n) (UINT)WIDTHBYTES((UINT)(lpbi)->biWidth * (UINT)(n))
#define DibWidthBytes(lpbi) DibWidthBytesN(lpbi, (lpbi)->biBitCount)
#define DibSizeImage(lpbi) ((lpbi)->biSizeImage == 0 \
? ((DWORD)(UINT)DibWidthBytes(lpbi) * (DWORD)(UINT)(lpbi)->biHeight) \
: (lpbi)->biSizeImage)
#define DibNumColors(lpbi) ((lpbi)->biClrUsed == 0 && (lpbi)->biBitCount <= 8 \
? (int)(1 << (int)(lpbi)->biBitCount) \
: (int)(lpbi)->biClrUsed)
#define FixBitmapInfo(lpbi) if ((lpbi)->biSizeImage == 0) \
(lpbi)->biSizeImage = DibSizeImage(lpbi); \
if ((lpbi)->biClrUsed == 0) \
(lpbi)->biClrUsed = DibNumColors(lpbi);
#endif // !defined(AFX_JZIMAGEBMP_H__4FB9F02A_EDEF_424D_9550_737CA6B42225__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -