📄 hdib.h
字号:
// HDib.h: interface for the CDib class.
//
//////////////////////////////////////////////////////////////////////
/////////////////////////////////////
// CDib 1999.12.30 version //
// By HuYu //
/////////////////////////////////////
#if !defined(AFX_HDIB_H__EF233C76_B7AF_11D3_9462_0000000038B2__INCLUDED_)
#define AFX_HDIB_H__EF233C76_B7AF_11D3_9462_0000000038B2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "fstream.h"
#include "stdio.h"
#define PALVERSION 0x300 //调色板版本
#define RECTWIDTH(lpRect) ((lpRect)->right - (lpRect)->left)
#define RECTHEIGHT(lpRect) ((lpRect)->bottom - (lpRect)->top)
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)
/////////////////////////////////////
// CDib 1999.12.30 version //
// By HuYu //
/////////////////////////////////////
class CDib
{
/***********************************/
/***********************************/
/** 成员变量: **/
/***********************************/
/***********************************/
private:
HPALETTE m_hPal; //调色板类Cpalette的句柄;
public:
CString arcFileName; //图像文档名;
BYTE * m_Buffer; //图像备份内存指针;
BYTE * m_Buffer1; //图像备份内存映象指针;
RGBQUAD * m_Quad; //彩色表指针;
DWORD m_BmpLoaded; //取值True或False;
BITMAPFILEHEADER m_BmpFH; //bmp文件头结构;
BITMAPINFO * m_BmpInfo; //bmp信息头指针;
//位图数据:
DWORD Width;//位图宽度(像素);
DWORD Height;//位图高度(像素);
DWORD BPP;//位图色彩深度;
DWORD BufferSize;//位图数据区尺寸(字节);
DWORD Bpl;//位图每一行占据的字节数;
DWORD NumberOfColors;//调色板中颜色数目;
WORD BmpMarker;//位图标识;
/***********************************/
/***********************************/
/** 成员函数: **/
/***********************************/
/***********************************/
private:
BOOL CreatePalette();
DWORD PaletteSize();
void CalBmpData();
public:
BOOL GetRedImg();
BOOL GetGreenImg();
BOOL GetBlueImg();
void restoreimage();
BITMAPINFOHEADER GetImageInfo(LPCTSTR fn, DWORD &w, DWORD &h);
void Sort(DWORD &x0,DWORD &x1);
BOOL Draw(HDC hDC,LPRECT rcDest,LPRECT rcSrc);
void SetBmpMarker(DWORD b='B',DWORD m='M');
BOOL PickBitmapToFile(LPCTSTR fn,DWORD xt,DWORD yt,DWORD xb,DWORD yb);
//根据输入的像素位置提取位图数据:
//根据像素位置获取在内存中的位置;
BYTE * FindPos(DWORD x,DWORD y);
void Resize(int sz);
BYTE * GetBuffer();//获取内存指针;
void Free();//释放所有内存;
BOOL SaveBmp(LPCTSTR fn);
BOOL LoadBmp(LPCTSTR fn);
CDib();
virtual ~CDib();
protected:
};
#endif // !defined(AFX_HDIB_H__EF233C76_B7AF_11D3_9462_0000000038B2__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -