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

📄 cdibimage.h

📁 程序在visual c++环境下实现了图像按照输入参数进行平移旋转和在水平垂直方向上的镜像功能。
💻 H
字号:
//
//  CImage.h
//
//
//  Dicription:  
//  Author :
//  Date:
//  
///////////////////////////////////////////////////
#ifndef AFX_CIMG_H_00001
#define AFX_CIMG_H_00001
#include <afxwin.h>

// 常数π
#define PI 3.1415926535
//角度到弧度转化的宏
#define RADIAN(angle) ((angle)*PI/180.0)


class CDibImage
{
public:
	CDibImage();
	virtual ~CDibImage();	
	// copy construct
	CDibImage(CDibImage &CImg);
	//
	void ImgCpy( BYTE* pSourceBmp, DWORD dwHeight, DWORD dwWidth);


	// +
	void Add(BYTE* pDestImg, BYTE* pSourceImg);
	// -
	void Subtract(BYTE* pDestImg, BYTE* pSourceImg);
	// * 
	void Multiply(BYTE* pDestImg, BYTE* pSourceImg);
	// 卷积
//操作图像对象的函数
public:
	// 根据lpFileName读取相应的位图文件
	bool LoadBmp( LPCTSTR lpFileName);
	//函数的存储
	void SaveBmp( LPCTSTR lpFileName);

	//
    
	//显示已经读取的图像信息
    void  Draw2DC(CDC *dc);
	//按照用户指定的度数旋转图像
    void  RotateAngle(double dAngle);
	//按照给定的偏移大小移动图像
	void  Translation( DWORD dwXOffset, DWORD dwYOffset); 
	//图像镜像
	void  Mirror(bool bDrcHorV);
    //获取指定范围内的像素
	void  GetImgRect( RECT& rectDest, BYTE*& pRect);
	BYTE* GetImgRect( RECT& rectDest );

	//恢复图像中像素所存储的位数
	BYTE* GetBackBitbuf( BYTE*& pRenewData, DWORD dwRealWidth);

public:
	//获取图像属性信息
	//判断pBitbuf是否指向有效的缓冲区
    bool  IsBufferValid();
	DWORD GetWidth();
	DWORD GetHeight();
	WORD  GetBPP();
private:
	//私有成员函数
	void  ImgCpy( BYTE*& pDestBmp, BYTE* pSourceBmp, DWORD dwHeight, DWORD dwWidth,WORD wbPP);
//图像的变量信息
private:
	//图像的位数
	WORD  m_wBPP;
    //图像缓冲区
    BYTE* m_pBitbuf;
    //位图的高
	DWORD m_dwHeight;
	//位图的宽
	DWORD m_dwWidth;
};

#endif
// AFX_CIMG_H

⌨️ 快捷键说明

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