⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 image.h

📁 本压缩软件有vc++图象处理编程的源代码
💻 H
字号:
// Image.h: interface for the CImage class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_IMAGE_H__145D9870_D5C8_4FBF_8E23_11380865ED62__INCLUDED_)
#define AFX_IMAGE_H__145D9870_D5C8_4FBF_8E23_11380865ED62__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
typedef DWORD COLOR;
//定义三个基本颜色(红,绿,蓝)
#define COLOR_RED    0x00FF0000
#define COLOR_GREEN  0x0000FF00
#define COLOR_BLUE   0x000000FF
#define COLOR_WHITE  0x00FFFFFF  //定义白色
#define COLOR_BLACK  0x00000000  //定义黑色

// 关于RGB颜色的系统宏的重新定义
#undef RGB
#undef GetRValue
#undef GetGValue
#undef GetBValue

#define RGB(r,g,b)	((((r)<<16)&COLOR_RED) | (((g)<<8)&COLOR_GREEN) | ((b)&COLOR_BLUE))

#define GetRValue(color)	(BYTE)(((color) & COLOR_RED)>>16)
#define GetGValue(color)	(BYTE)(((color) & COLOR_GREEN)>>8)
#define GetBValue(color)	(BYTE)((color) & COLOR_BLUE)

#define IMAGE_HEADER_MARKER ((WORD)('M')<<8 | 'B')	/* 位图标记 */
#define RECTWIDTH(lpRc)  ((lpRc)->right  - (lpRc)->left)
#define RECTHEIGHT(lpRc) ((lpRc)->bottom - (lpRc)->top)
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)		/* 行32位对齐 */

#define pi (double)3.14159265359

typedef struct
{
	double re;
	double im;
}COMPLEX;


class CImage : public CObject  
{
public:
	void OnClose();
	void OnOpen();
	void PengZhang();
	void IFFT(COMPLEX *FD,COMPLEX *TD,int power);
	void FFT(COMPLEX *TD,COMPLEX *FD,int power);
	COMPLEX ComplexMul(COMPLEX c1,COMPLEX c2);
	COMPLEX ComplexSub(COMPLEX c1,COMPLEX c2);
	COMPLEX ComplexAdd(COMPLEX c1,COMPLEX c2);
	void BianYanTiQu();
	void FuShi();
	void HuiDuHua();
	void ErZhi(int value);
	void Four2eight();
	
/*-------------构造函数和构析函数----------------------*/
	CImage();
	virtual ~CImage();
    void Free();
	
/*-------------读写操作函数----------------------------*/
    BOOL	LoadFromFile(LPCTSTR lpszFileName);
	BOOL	Save(LPCTSTR lpszFileName) const;
	CImage&	operator =(const CImage &dibSrc);
/*-------------基本操作函数----------------------------*/

    COLOR	GetPixelColor(LONG x,LONG y) const;
	void	SetPixelColor(LONG x,LONG y,const COLOR color);
    BYTE    GetRedValue(LONG x,LONG y) const;	
	BYTE    GetGreenValue(LONG x,LONG y) const;	
	BYTE    GetBlueValue(LONG x,LONG y) const;	
   

/*-------------显示操作函数---------------------------*/
	BOOL    ShowImage(HDC,LONG x,LONG y);//(x,y)为目标矩形的左上角坐标
/*-------------属性操作函数-----------------------------*/
    BOOL	IsValid() const	{ return m_imageheader != NULL;}
    LONG	GetWidth()const	{ return (IsValid()) ? m_imageheader->bmiHeader.biWidth  : 0;}
	LONG	GetHeight()const{ return (IsValid()) ? m_imageheader->bmiHeader.biHeight : 0;}
	RECT	GetRect()const;
	WORD	NumColors()const;
	BYTE	BitsPerPixel()const{  return (IsValid()) ? m_imageheader->bmiHeader.biBitCount:0;}
	//BitsPerPixel这个函数待定,有一定的问题。
	

private:
	void            FormatImage() ;      //用零来初始化图象
    LPBITMAPINFO	m_imageheader;      //图象信息文件头指针(图象有三部分,一,图象头文件;二,图象信息文件头;三,色彩信息)
	LPBYTE			m_image;           //图象色彩信息存放的首地址
	LONG			m_bytesperline;     //图象每行的字节数
	BYTE			m_bytesperpixel;	//每象素所占用的字节数


};

#endif // !defined(AFX_IMAGE_H__145D9870_D5C8_4FBF_8E23_11380865ED62__INCLUDED_)

⌨️ 快捷键说明

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