|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD> ImageInsert.h
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2005-12-07
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include ".\pointnamerect.h"
|
|
|
|
|
|
#include ".\curveex.h"
|
|
|
|
|
|
#include "..\DrawImage\ImageBase.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define IMAGE_CALIBRATE2 0x00000010 //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
#define IMAGE_CALIBRATE4 0x00000020 //<2F>ĵ<EFBFBD>У<EFBFBD><D0A3>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
#define IMAGE_CALIBRATE_H 0x00000040 //ˮƽֱ<C6BD><D6B1>У<EFBFBD><D0A3>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
#define IMAGE_CALIBRATE_V 0x00000080 //<2F><>ֱֱ<D6B1><D6B1>У<EFBFBD><D0A3>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
|
|
|
|
|
|
//ͼ<><CDBC><EFBFBD>е<EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>һ<EFBFBD><D2BB>
|
|
|
|
|
|
#define IMAGE_TRANSPARENT_AND 0x00020000 //λͼ<CDBC><CDB8><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٱ<EFBFBD>֤<EFBFBD>˶<EFBFBD><CBB6><EFBFBD>ǰͼ<C7B0><CDBC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
|
#define IMAGE_TRANSPARENT_ALPHA 0x00004000 //λͼ<CDBC><CDB8><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD>ͬ<EFBFBD><CDAC>ɫ<EFBFBD>IJ<EFBFBD>ͬ<CDAC><CDB8><EFBFBD>ȣ<EFBFBD>Ϊ<EFBFBD>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD>CMesh<73>е<EFBFBD><D0B5><EFBFBD>ͬ
|
|
|
|
|
|
#define IMAGE_TRANSPARENT_COLOR 0x00008000 //λͼ<CDBC><CDB8><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>ȫ<C8AB><CDB8>
|
|
|
|
|
|
#define IMAGE_TRANSPARENT_ALL (IMAGE_TRANSPARENT_AND | IMAGE_TRANSPARENT_ALPHA | IMAGE_TRANSPARENT_COLOR)
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CImageInsert : public CPointNameRect
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CImageInsert(void);
|
|
|
|
|
|
virtual ~CImageInsert(void);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
BOOL BeforeWrite();
|
|
|
|
|
|
void ClearImage(void);
|
|
|
|
|
|
int ReadBitmap(CFile& fr);
|
|
|
|
|
|
void Serialize(CArchive& ar, const short &ver) override;
|
|
|
|
|
|
virtual int Read(CFile& fr, const short& ver);
|
|
|
|
|
|
int ReadOld(CFile& fr, const short& ver);
|
|
|
|
|
|
virtual void Write(CFile& fw, const short& ver);
|
|
|
|
|
|
virtual void Clear(void);
|
|
|
|
|
|
// typeΪУ<CEAA><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Уλ<D0A3><CEBB><EFBFBD>ĵ<EFBFBD>Уλ<D0A3><CEBB>ֱ<EFBFBD><D6B1>Уλ<D0A3><CEBB>;pValueΪ<65><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC>CCalibrate2<65><32>CCalibrate4<65><34>
|
|
|
|
|
|
virtual void Calibrate(int type, void* pValue);
|
|
|
|
|
|
virtual void ExchangeXY(void* pProjection); //ת<><D7AA><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>,CPrljectio* pProjection
|
|
|
|
|
|
virtual void Rotate(double xs, double ys, double angle);
|
|
|
|
|
|
virtual void ScaleProperty(double sx, double sy);
|
|
|
|
|
|
|
|
|
|
|
|
void WriteElementDML(BYTE*& outBuffer, int& destLen);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void WriteDML(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual int ReadDML(CFile &fr, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void WritePCG(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual int ReadPCG(CFile &fr, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
virtual int ReadPCG2(CFile &fr, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL CutOut(CCurveEx* pCurve); //<2F><><EFBFBD><EFBFBD>ͼƬ
|
|
|
|
|
|
BOOL CutIn(CCurveEx* pCurve,COLORREF bkColor=RGB(255,255,255)); //<2F><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊָ<CEAA><D6B8><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
CImageInsert* GetImage(int i_left, int j_top, int i_right, int j_bottom); //<2F>ӵ<EFBFBD>ǰͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
|
|
|
|
|
|
|
|
|
|
|
|
BOOL Draw(CDC& hDestDC, CRect8& rectDest, CRect* clientRect);
|
|
|
|
|
|
void operator=(CImageInsert& ii);
|
|
|
|
|
|
BOOL LoadImage(CString strImageName);
|
|
|
|
|
|
BOOL SaveAs(LPCTSTR lpszImageName);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL PastFromClipboard(void); //<2F>Ӽ<EFBFBD><D3BC>а<EFBFBD><D0B0><EFBFBD>ճ<EFBFBD><D5B3>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
BOOL CopyToClipboard(HWND hWnd=NULL);
|
|
|
|
|
|
|
|
|
|
|
|
int BackupImage(void);
|
|
|
|
|
|
void RestoreImage(void);
|
|
|
|
|
|
|
|
|
|
|
|
int ProcessImageColor(int nColorType);
|
|
|
|
|
|
int ProcessImage(CImageBase* pi, int nColorType);
|
|
|
|
|
|
int GrayColor(void); //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD>Ҷ<EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
int TowColor(int NoBegin, int NoEnd);
|
|
|
|
|
|
int PseudoColor(int nMode); //α<><CEB1>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>,1=ҽѧ<D2BD><D1A7>2,3=ң<><D2A3>
|
|
|
|
|
|
int RotateLeft90(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת90<39><30>
|
|
|
|
|
|
int RotateRight90(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת90<39><30>
|
|
|
|
|
|
|
|
|
|
|
|
bool IsBrightProcess(void); //<2F><><EFBFBD><EFBFBD>Gamma<6D><61>Light
|
|
|
|
|
|
bool Gamma(int gamma); //-100<30><30>+100,0Ϊ<30><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool Light(long brightness, long contrast=0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Աȶ<D4B1>
|
|
|
|
|
|
|
|
|
|
|
|
CImageBase* GetImage(void);
|
|
|
|
|
|
void SetImage(CImageBase* pImage);
|
|
|
|
|
|
|
|
|
|
|
|
CPoint RealToImagePoint(double x, double y);
|
|
|
|
|
|
CPoint2D RealToImagePoint2D(double x, double y);
|
|
|
|
|
|
CPoint2D ImagePointToReal(int x, int y);
|
|
|
|
|
|
void RealToImagePoint(CPoint& pt, double x, double y);
|
|
|
|
|
|
void RealToImagePoint2D(CPoint2D& pt, double x, double y);
|
|
|
|
|
|
void ImagePointToReal(CPoint2D& pt, int x, int y);
|
|
|
|
|
|
|
|
|
|
|
|
DWORD GetCalibratedMode(void); //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
void SetCalibratedMode(DWORD nMode); //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
|
|
|
|
|
|
void SetFlags(DWORD dwFlags);
|
|
|
|
|
|
DWORD GetFlags(void);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL IsTransparent(void); //<2F>Ƿ<EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
|
void SetTransparentMode(DWORD nMode); //<2F><><EFBFBD><EFBFBD><EFBFBD><CDB8>ģʽ
|
|
|
|
|
|
DWORD GetTransparentMode(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><CDB8>ģʽ
|
|
|
|
|
|
void SetTransparentColor(COLORREF col);//<2F><><EFBFBD><EFBFBD><EFBFBD><CDB8>ɫ
|
|
|
|
|
|
COLORREF GetTransparentColor(void);
|
|
|
|
|
|
|
|
|
|
|
|
bool SetAlpha(BYTE level); //<2F><><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD>ȣ<EFBFBD>0-255<35><35>
|
|
|
|
|
|
void RemoveAlpha(void);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD>˶Աȶ<D4B1><C8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
long m_brightness;
|
|
|
|
|
|
long m_contrast;
|
|
|
|
|
|
|
|
|
|
|
|
CImageBase* m_pImage;
|
|
|
|
|
|
|
|
|
|
|
|
dfPoint Original4P[4], Real4P[4];
|
|
|
|
|
|
CRect8 Original2P;
|
|
|
|
|
|
CRect8 Real2P;
|
|
|
|
|
|
BOOL bSaveCalibrateBitmap;
|
|
|
|
|
|
BOOL bSaveFlag,bCancelRead;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int CalibrateOther(int type, void* pValue);
|
|
|
|
|
|
void CalibrateLine(int type, void* pValue);
|
|
|
|
|
|
BOOL LoadImageAuto(LPCTSTR strImageName); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>õ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
DWORD m_nFlags;//У<><D0A3>λͼ<CEBB><CDBC>ʽ,<2C>Ƿ<EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD>ʾ,....
|
|
|
|
|
|
COLORREF m_colTransparent; //<><CDB8>ɫ,ȱʡΪ<CAA1><CEAA>ɫ
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
CWinThread* m_pProcessImageThread;
|
|
|
|
|
|
int m_pImageBakType;
|
|
|
|
|
|
CImageBase* m_pBakImage;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual int ReadPCG(void *pxp, const short &ver);
|
|
|
|
|
|
virtual int ReadPCG2(void *pxp, const short &ver);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CImageBase* CImageInsert::GetImage(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_pImage;
|
|
|
|
|
|
}
|
|
|
|
|
|
|