📄 image.h
字号:
// Image.h: interface for the CImage class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_IMAGE_H__9B31145D_E951_4543_B2B0_C646CEAFDF61__INCLUDED_)
#define AFX_IMAGE_H__9B31145D_E951_4543_B2B0_C646CEAFDF61__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <vfw.h>
#include <Afxtempl.h>
#include <vector>
#include <algorithm>
using namespace std;
//定义MarkMap 结构,用来存放等价对
typedef struct tagEqualMark
{ int MarkValue1; //标记值1
int MarkValue2; //标记值2
} EqualMark;
//定义MarkMap 结构,用来存放标记映射关系
typedef struct tagMarkMapping
{ int nOriginalMark; //第一次扫描的标记
int nMappingMark; //等价整理之后对应标记
} MarkMapping;
class CImage
{
public:
long Save8BitBMPFile(HANDLE hDIB, LPCTSTR strFileName);
long Show256DIB_vfw(HDC hdc, HANDLE hDIB, int nXDest , int nYDest );
HANDLE CreateShowMarkHandle();
HANDLE Create256DIB(LPBYTE lp8BitImageData);
void Clear();
long ShowBmpFile( HDC hdc , int nXDest=0 , int nYDest=0 );
long ReadBMPFile(LPCTSTR strFileName);
long MarkImage ( BYTE bObjectGray );
CImage();
virtual ~CImage();
template<typename elemType> void AttachEqualMark(EqualMark &pEqualMark,
elemType num1, elemType num2, int & pEqualNum, CList< EqualMark,EqualMark > & plEqualMark);
LPBYTE m_lpBMPFileData;
BITMAPINFOHEADER m_BmpInfoHeader;
long m_lngWidth; //图像宽
long m_lngWidthBytes; //图像宽所占字节数
long m_lngHeight; //图象高
long m_ulngBitsCount; //图像数据所占bit数
LPBYTE m_lpImgBits; //图像数据区域指针
LPBYTE m_lpImgBitsMove;
int * m_lpnMark; //标记数组指针
int * m_lpnMarkMove; //标记数组移动指针
int m_nMarkNumbers; //标记的区域个数
//以下为显示所用
LPBYTE m_lpShowMark;
};
#endif // !defined(AFX_IMAGE_H__9B31145D_E951_4543_B2B0_C646CEAFDF61__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -