image.h

来自「面向软件工程的Visual C++网络程序开发」· C头文件 代码 · 共 72 行

H
72
字号
// ===== Image.h =======
#ifndef IMAGE_H
#define IMAGE_H


#include "Dib.h"

#define CI_IMAGE		0
#define CI_GRAPH		1

#define SHOW_IMAGE		0
#define SHOW_GRAPH		1
#define SHOW_ADD		2


class AFX_EXT_CLASS CImage {
public:
	CDib*	m_pDib;
	CDib*	m_pMask;
private:
	int		m_nWidth;
	int		m_nHeight;
	int		m_nShowBank;
	CRect	m_rcImage;

	RGBQUAD m_GraphPal[2];
public:
	CImage();
	~CImage();

	BOOL CreateDefImage(int nWidth, int nHeight );

	BOOL Load(LPCTSTR lpszFile);
	BOOL Save(LPCTSTR lpszFile);
	BOOL LoadGraph(LPCTSTR lpszFile);
	BOOL SaveGraph(LPCTSTR lpszFile);
	void Serialize(CArchive& ar);

	BOOL GetImage(CRect& rc, IMAGE& img, int nBank = 0);
	BOOL GetImage(CRect& rc, IMAGE& imgR, IMAGE& imgG, IMAGE& imgB) ;
	BOOL PutImage(CRect& rc, IMAGE& img, int nBank = 0);
	BOOL PutImage(CRect& rc, IMAGE& imgR, IMAGE& imgG, IMAGE& imgB) ;
//	BOOL GetImage(CRect& rc, COLORIMAGE& ci);
//	BOOL PutImage(CRect& rc, COLORIMAGE& ci);

	BOOL Draw(CDC* pDC, int nBank = 0);

	CDib* GetImagePtr();
	CDib* GetGraphPtr();
	int  GetWidth();
	int  GetHeight();
	void GetRect(CRect& rcImage);
	void SetRect(CRect& rcImage);
	int	 GetShowBank();
	void SetShowBank(int nBank = 0);
	BOOL IsEmpty();

	//图形层调色板操作
	CPalette* GetImagePalette();
	CPalette* GetGraphPalette();
	BOOL GetGraphPalette(int i, RGBQUAD& rgb);
	BOOL GetGraphPalette(int i, RGBQUAD* rgb);
	BOOL SetGraphPalette(int i, RGBQUAD& rgb);
	BOOL SetGraphPalette(int i, RGBQUAD* rgb);
public:
	BOOL Undo(int nBank);
private:
	BOOL UpdateGraphPalette();

};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?