📄 lsbanalysisdoc.h
字号:
// LSBAnalysisDoc.h : interface of the CLSBAnalysisDoc class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_LSBANALYSISDOC_H__713ABF1D_8974_4779_9EDD_4FFF16BA5E95__INCLUDED_)
#define AFX_LSBANALYSISDOC_H__713ABF1D_8974_4779_9EDD_4FFF16BA5E95__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define WM_USER_NEWIMAGE WM_USER+1
#define PRN_FILE "E:\\PRN_DATA.dat.dat"
class CxImage;
class CLSBAnalysisDoc : public CDocument
{
protected: // create from serialization only
CLSBAnalysisDoc();
DECLARE_DYNCREATE(CLSBAnalysisDoc)
// Attributes
public:
BOOL m_bModified; //图像修改标志
int nImgType; //图像后缀名所属的类型
CString m_strPathName; //读取图像的文件名
// Operations
public:
inline CxImage *GetImage() { return image; }
CString FindExtension(const CString& name);
int FindType(const CString& ext);
BYTE* ReadPRNData(DWORD dwCount); //读取秘密消息
BYTE* ReadPRNData2(DWORD dwCount); //读取秘密消息
void LSBMatchEmbed(BYTE* pImg, BYTE* pData, int* pImgPerm, DWORD dwImgSize, float ratio); //随机LSB Match
void LSBMatchEmbed2(BYTE* pImg, BYTE* pData, DWORD dwImgSize, float ratio); //序贯LSB Match
void LSBReplaceEmbed(BYTE* pImg, BYTE* pData, int* pImgPerm, DWORD dwImgSize, float ratio); //随机LSB Replace
void LSBReplaceEmbed2(BYTE* pImg, BYTE* pData, DWORD dwImgSize, float ratio); //序贯LSB Replace
BYTE* LSBMatchExtract(BYTE* pImg, int* pImgPerm, DWORD dwImgSize, float ratio);
BYTE* LSBMatchExtract2(BYTE* pImg, DWORD dwImgSize, float ratio);
//产生a-b之间的double型随机数
double uniform(double a,double b,long* seed);
//N点数据的置乱
void Rand_Perm(int rp[], int N);
//快速排序算法
void Sort_Qck(int p[], int index[], int N);
void QUICKSORT(int R[], int index[], int s1, int t1);
int PARTITION(int R[], int index[], int l, int h);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CLSBAnalysisDoc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
virtual BOOL DoSave(LPCTSTR pszPathName, BOOL bReplace =TRUE);
//}}AFX_VIRTUAL
// Implementation
public:
CxImage* image;
virtual ~CLSBAnalysisDoc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CLSBAnalysisDoc)
afx_msg void OnEmbedLsbmatch();
afx_msg void OnEmbedLsbmatch2();
afx_msg void OnExtractLsbmatch();
afx_msg void OnExtractLsbmatch2();
afx_msg void OnEmbedLsbmatch3();
afx_msg void OnEmbedLsbmatch4();
afx_msg void OnEmbedLsbreplace();
afx_msg void OnEmbedLsbreplace2();
afx_msg void OnDetectHmm();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_LSBANALYSISDOC_H__713ABF1D_8974_4779_9EDD_4FFF16BA5E95__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -