dib.h

来自「一个非常全的vc编程的原程序代码是关于图像处理的!」· C头文件 代码 · 共 160 行

H
160
字号
// Dib.h: interface for the CDib class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DIB_H__C8D53620_91A3_11D4_9263_000021C9B3C5__INCLUDED_)
#define AFX_DIB_H__C8D53620_91A3_11D4_9263_000021C9B3C5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "MACRO.h"

class CDib	: public CObject  
{
protected:
	DECLARE_SERIAL(CDib)
public:
	CDib();
	virtual ~CDib();
	//{{AFX_VIRTUAL(CViewDIBDoc)
	public:
	virtual void Serialize(CArchive& ar);
	//}}AFX_VIRTUAL
//public member function
public:
	BOOL Create(DWORD dwWidth,DWORD dwHeight);
	BOOL Create(DWORD dwWidth,DWORD dwHeight,WORD wBitCount);
	BOOL Create(LPBYTE lpDib);
	BOOL Create(LPBYTE lpDib,WORD wBitCount);
	BOOL Create(HBITMAP hBitmap);
	BOOL Create(HBITMAP hBitmap,WORD wBitCount);
	BOOL Create(HBITMAP hBitmap,HPALETTE hPalette);
	BOOL Create(HBITMAP hBitmap,HPALETTE hPalette,WORD wBitCount);
	BOOL Create(CRect rcScreen);
	BOOL Create(HWND hWnd,WORD fPrintArea);
	BOOL Create(HWND hWnd,CRect rcClientArea);
	//attach handle
	BOOL Attach(HDIB hDib);
	//load/save;
	BOOL Load(UINT uIds,LPCTSTR lpszDibType);
	BOOL Load(LPCTSTR lpszDibRes,LPCTSTR lpszDibType);
	BOOL Load(LPCTSTR lpszDibFile);
	BOOL Save(LPCTSTR lpszDibFile);
	BOOL Read(CFile * pFile);
	BOOL Write(CFile * pFile);
	//destroy 
	void Destroy();
	HDIB DeTach();
	//display
	BOOL Display(CDC * pDC,int xDest,int yDest,int nWidthDest,
		int nHeightDest,int xScr,int yScr,DWORD dwRop=SRCCOPY);
	BOOL Display(CDC * pDC,int xDest,int yDest,int nWidthDest,
		int nHeightDest,int xScr,int yScr,int nWidthScr,int nHeightScr,
		DWORD dwRop=SRCCOPY);
	BOOL Display(CDC * pDC,int x,int y,DWORD dwRop=SRCCOPY);
	BOOL Display(CDC * pDC,CRect rcDest,CRect rcSrc,DWORD dwRop=SRCCOPY);
	BOOL DisplayPal(CDC * pDC,CRect rc);
	//DC for modify dib
	CDC * BeginPaint(CDC * pDC);
	void EndPaint();
	//ddb and palette
	BOOL BuildBitmap();
	BOOL BuildPalette();
	//attributes;
	BOOL IsEmpty();
	DWORD GetCompression();
	WORD GetBitCount();
	LONG GetWidth();
	LONG GetHeight();
	long GetXPelsPerMeter();
	long GetYPelsPerMeter();
	LONG GetWidthBytes();
	WORD GetColorNumber();
	WORD GetPaletteSize();
	CBitmap* GetBitmap();
	CPalette* GetPalette();
	HANDLE GetHandle();
	LPBYTE GetBitsPtr();
	COLORREF GetPixel(LONG x,LONG y);
	LONG GetPixelOffset(LONG x,LONG y);
	BOOL ConvertFormat(WORD wBitCount);


	//private member function;
private:
	BOOL UpdateInternal();

	//public member data;
public:
	BOOL HoughCircleDetect(int cirnum);
	BOOL HoughLineDetect(int linenum);
	BOOL IDCT(CString FileName);
	BOOL DCT(CString FileName);
	BOOL ModifyWH();
	BOOL DFTPhase();
	BOOL DFTMagnitude();
	BOOL GeometricCorrect(POINT point1,POINT point2,POINT point3,POINT point4);
	BOOL PerspectiveTrans(int r,int theta,int fai,int f);
	BOOL CannyEdgeDetect();
	BOOL ZoomOut();
	BOOL ZoomIn();
	BOOL Or(CString FileName);
	BOOL Add(CString FileName);
	BOOL Diff(CString FileName);
	BOOL Skeletonize();
	BOOL Thinning();
	BOOL EdgeDetect();
	BOOL SUSANEdgeDetect();
	BOOL Create();
	BOOL IsBinary();
	BOOL Close();
	BOOL Open();
	BOOL Dilation();
	BOOL Erosion();
	BOOL MedianFilter();
	BOOL ChangeCanvasSize(int nWidth,int nHeight,int nPosition);
	BOOL Affine(int a,int b,int c,int theta,int mode);
	BOOL Blur();
	BOOL SobelEdgeDetect(int);
	BOOL LaplaceEdgeDetect(int);
	BOOL EdgeEnhance2(int);
	BOOL EdgeEnhance1(int);
	BOOL HighPass3();
	BOOL HighPass2();
	BOOL HighPass1();
	BOOL LowPass3();
	BOOL LowPass2();
	BOOL LowPass1();
	BOOL Octonary();
	BOOL Quartic();
	BOOL LogTrans();
	BOOL LnTrans();
	BOOL ChangeContrast(double);
	BOOL ChangeBrightness(int);
	BOOL PseudoColor();
	BOOL HistoEquivalize();
	BOOL AutoBinary();
	BOOL RotateCertainAngle(int);
	BOOL ColorToGray();
	BOOL RevertColor();
	BOOL SelfDiff();
	BOOL FlipVert();
	BOOL FlipHorz();
	BOOL Rotate270();
	BOOL Rotate90();
	BOOL Rotate180();
	HDIB m_hDib;
	HBITMAP m_hBitmap;		//DIBSECTION
	CPalette* m_pPalette;
	CBitmap* m_pBitmap;
	//private member data;
private:
	CDC* m_pMemDC;
	CBitmap* m_pBitmapTmp;
	CPalette* m_pPaletteTmp;
};

#endif // !defined(AFX_DIB_H__C8D53620_91A3_11D4_9263_000021C9B3C5__INCLUDED_)

⌨️ 快捷键说明

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