亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? watermarkxview.cpp

?? 一篇有關數字水印的程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
// WaterMarkView.cpp : implementation of the CWaterMarkxView class
//

#include "stdafx.h"
#include "WaterMarkx.h"

#include "WaterMarkxDoc.h"
#include "WaterMarkxView.h"
#include "FirstWindow.h"


#include "stdlib.h"
#include "libmatlb.hpp"
#include "libmwsglm.hpp"
//#include "C_imwrite.hpp"
//#include "subplot.hpp"
//#include "imshow.hpp" 
//#include "imread.hpp"
//#include "title.hpp"
#include "dct2.hpp"
#include "idct2.hpp"
//#include "isrgb.hpp"
//#include "rgb2gray.hpp"
//#include "clf.hpp"
//#include "imagesc.hpp"
#include "dibapi.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


//標準文件框的文件名過濾器
static char BASED_CODE szFilter[]="BMP Files (*.bmp)|*.bmp|TIFF Files (*.tif)|*.tif|All Files(*.*)|*.*||";

/////////////////////////////////////////////////////////////////////////////
// CWaterMarkxView

  //	  %定義中頻系數
	int midband[8][8]={ {0,0,0,0,1,1,1,0},\
						{0,0,0,0,1,1,1,0},\
				 		{0,0,0,1,1,1,0,0},\
						{0,0,0,1,1,1,0,0},\
						{0,0,1,1,1,0,0,0},\
						{0,0,1,1,1,0,0,0},\
						{1,1,1,0,0,0,0,0},\
						{1,1,1,0,0,0,0,0}};	 

IMPLEMENT_DYNCREATE(CWaterMarkxView, CFormView)

BEGIN_MESSAGE_MAP(CWaterMarkxView, CFormView)
	//{{AFX_MSG_MAP(CWaterMarkxView)
	ON_WM_DESTROY()
	ON_WM_TIMER()
	ON_WM_CTLCOLOR()
	ON_WM_PAINT()
	ON_WM_CLOSE()
	ON_COMMAND(ID_WATER_INSERT, OnWaterInsert)
	ON_COMMAND(ID_WATER_DISTILL, OnWaterDistill)
	ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
	ON_COMMAND(ID_FILE_OPEN_WATER, OnFileOpenWater)
	ON_COMMAND(ID_DISTILL_OPEN, OnDistillOpen)
	ON_WM_CREATE()
	ON_UPDATE_COMMAND_UI(ID_FILE_OPEN, OnUpdateFileOpen)
	ON_UPDATE_COMMAND_UI(ID_FILE_OPEN_WATER, OnUpdateFileOpenWater)
	ON_UPDATE_COMMAND_UI(ID_WATER_INSERT, OnUpdateWaterInsert)
	ON_UPDATE_COMMAND_UI(ID_WATER_DISTILL, OnUpdateWaterDistill)
	ON_UPDATE_COMMAND_UI(ID_DISTILL_OPEN, OnUpdateDistillOpen)
	ON_COMMAND(ID_FILE_SAVEQIANRU, OnFileSaveqianru)
	ON_UPDATE_COMMAND_UI(ID_FILE_SAVEQIANRU, OnUpdateFileSaveqianru)
	ON_COMMAND(ID_FILE_SAVESHUIYIN, OnFileSaveshuiyin)
	ON_UPDATE_COMMAND_UI(ID_FILE_SAVESHUIYIN, OnUpdateFileSaveshuiyin)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)
	ON_BN_CLICKED(IDC_BUTTON1, OnAssaultTest)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CWaterMarkxView construction/destruction

CWaterMarkxView::CWaterMarkxView()
	: CFormView(CWaterMarkxView::IDD)
{
	//{{AFX_DATA_INIT(CWaterMarkxView)
		// NOTE: the ClassWizard will add member initialization here
	 A=5;              //         %0的嵌入強度因子
	 B=3;              //         %1的嵌入強度因子
	 G=3;               //         %嵌入強度因子
	 blocksize=8;           //    %原始圖像分塊系數大小
	 watersize=4;           //    %水印分塊系數大小
	 Filename=_T("");     //包含路徑
	 Filetype=_T("");
	 bWait=-1;
	 bfont=0;
	 bshow=0;
	 bdishow=0;
	 binsert=0;
	 bcheck=0;
	 bsave_I=0;
	 bsave_C=0;
	 i_Mc=0;
	 i_Nc=0;
	 i_Mw=0;
	 i_Nw=0;
     water_block=0;
	 i_max_message=0; 

	//}}AFX_DATA_INIT
	// TODO: add construction code here

	 m_OriginHDIB=NULL;
	 m_SuiyinHDIB=NULL;
	 m_QianruHDIB=NULL;
	 m_TiquHDIB=NULL;

	 m_OriginpalDIB=NULL;
	 m_SuiyinpalDIB=NULL;

	 m_OriginImageSize=0;
	 m_SuiyinImageSize=0;
}

CWaterMarkxView::~CWaterMarkxView()
{
}

void CWaterMarkxView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CWaterMarkxView)
	DDX_Control(pDX, IDC_SIM, m_sim);
	DDX_Control(pDX, IDC_PSNR, m_psnr);
	DDX_Control(pDX, IDC_TIME, m_time);
	DDX_Control(pDX, IDC_CQ, m_cq);
	DDX_Control(pDX, IDC_TITLE, m_title);
	DDX_Control(pDX, IDC_NC, m_nc);
	//}}AFX_DATA_MAP
}

BOOL CWaterMarkxView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs	

	return CFormView::PreCreateWindow(cs);
}

void CWaterMarkxView::OnInitialUpdate()
{
	static int Counter = 0;	
	const char *p = "lib"; int argc = 1; 
  	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
  

	//libmmfileInitialize(); 
	//libmwsglmInitialize(); 
	//mlfHGInitialize(  &argc, &p);//初始化
	//InitializeModule_imshow();	//imshow 函數初始化
	//InitializeModule_imagesc();
	//InitializeModule_C_imwrite();	//	   C_imwrite函數初始化

     //CreatFigDlg();	
	 m_cq.SetCaption("");
	 m_psnr.SetCaption("");
	 m_sim.SetCaption("");

	if (!Counter)
	{
		CFirstWindow dlg;
		if(dlg.DoModal()==IDOK)	
		{	  		 
		   Counter++; 	 
		   
		}				 

	}  

}

/////////////////////////////////////////////////////////////////////////////
// CWaterMarkxView printing

BOOL CWaterMarkxView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CWaterMarkxView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CWaterMarkxView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

void CWaterMarkxView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
	// TODO: add customized printing code here
}

/////////////////////////////////////////////////////////////////////////////
// CWaterMarkxView diagnostics

#ifdef _DEBUG
void CWaterMarkxView::AssertValid() const
{
	CFormView::AssertValid();
}

void CWaterMarkxView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CWaterMarkxDoc* CWaterMarkxView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CWaterMarkxDoc)));
	return (CWaterMarkxDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CWaterMarkxView message handlers

void CWaterMarkxView::OnDraw(CDC* pDC) 
{
	// TODO: Add your specialized code here and/or call the base class
	CRect rectClient; 
	CBrush brushBkColor; 
	GetClientRect(rectClient); 
	brushBkColor.CreateSolidBrush(RGB(128,128,128));  // 64 128 128
	pDC->DPtoLP(rectClient); 
	pDC->FillRect(rectClient,&brushBkColor);

	
}

void CWaterMarkxView::OnDestroy() 
{
	CFormView::OnDestroy();
	
	// TODO: Add your message handler code here
	if(~h_a.IsEmpty())
		h_a.Clear();
	if(~h_fig.IsEmpty())
		h_fig.Clear();

	
	KillTimer(1);
	KillTimer(2); 
	KillTimer(3);

	//close(mwArray("all"));
	//TerminateModule_imshow(); //結束imshow函數
	//TerminateModule_C_imwrite();

}

void CWaterMarkxView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	char strMsg[50];

	if(bWait==0)
	{
		DCTWater();
		bWait=-1;
		busydlg.OnOK();
		KillTimer(1);
	}
	if(bWait==1)
	{
		DCTCheck();
		bWait=-1;
		busydlg.OnOK();
		KillTimer(2);
	}	
	if(bfont==1)
	{
		m_title.SetForeColor(255);	 //顯示紅色
		m_title.SetBorderColor(16711680);  //顯示藍色
		bfont+=1;
	}
	else if(bfont==2)
	{
		m_title.SetForeColor(16711680);
		m_title.SetBorderColor(65535); 	  //顯示黃色
		bfont-=2;
	}
	else 
	{
 		m_title.SetForeColor(65535);
		m_title.SetBorderColor(255);	 
		bfont+=1;	
	}

 	//得到指向狀態條窗口的指針
	CStatusBar *pStatus=(CStatusBar*)AfxGetApp()->m_pMainWnd->GetDescendantWindow(AFX_IDW_STATUS_BAR);
	CTime time=CTime::GetCurrentTime();//返回系統當前時間
	sprintf(strMsg,"%02d:%02d:%02d",time.GetHour(),time.GetMinute(),time.GetSecond());
	pStatus->SetPaneText(3,strMsg);//在第四個指示器中顯示當前時間
	CFormView::OnTimer(nIDEvent);
}

HBRUSH CWaterMarkxView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here

	 //MessageBox("1354");
	CBrush brush;
	brush.CreateStockObject(HOLLOW_BRUSH);
	/*if (pWnd->GetDlgCtrlID()==IDC_STATIC1||pWnd->GetDlgCtrlID()==IDC_STATIC2
	    ||pWnd->GetDlgCtrlID()==IDC_STATIC3||pWnd->GetDlgCtrlID()==IDC_STATIC4
        ||pWnd->GetDlgCtrlID()==IDC_STATIC5||pWnd->GetDlgCtrlID()==IDC_STATIC6
	   ||pWnd->GetDlgCtrlID()==IDC_STATIC7||pWnd->GetDlgCtrlID()==IDC_STATIC8
	||pWnd->GetDlgCtrlID()==IDC_STATIC9||pWnd->GetDlgCtrlID()==IDC_COMRATIOTAB)
	{
		pDC->SetTextColor(RGB(255,255,0));
		pDC->SetBkColor(0x00808040);
		return HBRUSH(brush);
	}*/
	if(nCtlColor==CTLCOLOR_STATIC)
	{pDC->SetTextColor(RGB(255,255,255));
		pDC->SetBkColor(RGB(153,153,153));
		return HBRUSH(brush);
	}


	// TODO: Return a different brush if the default is not desired
	return hbr;
}

void CWaterMarkxView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	int nImageWidth,nImageHeight;
	// TODO: Add your message handler code here
	CRect rectClient; 
	CBrush brushBkColor; 
	GetClientRect(rectClient); 
	brushBkColor.CreateSolidBrush(RGB(128,128,128)); 
	dc.DPtoLP(rectClient); 
	dc.FillRect(rectClient,&brushBkColor);

	
	
	if(m_OriginHDIB!=NULL)
	{
		LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) m_OriginHDIB);
		// 圖象寬度
		nImageWidth=::DIBWidth(lpDIB);
		// 圖象高度
		nImageHeight=::DIBHeight(lpDIB);
		CRect Rcdib;
		Rcdib.top = Rcdib.left = 0;
		Rcdib.right = nImageWidth;
		Rcdib.bottom = nImageHeight;
		::GlobalUnlock((HGLOBAL)  m_OriginHDIB);
		::PaintDIB(dc.m_hDC, &m_rectInitImage, m_OriginHDIB,
			&Rcdib,m_OriginpalDIB);
	}

	if(m_SuiyinHDIB!=NULL)
	{
		LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) m_SuiyinHDIB);
		// 圖象寬度
		nImageWidth=::DIBWidth(lpDIB);
		// 圖象高度
		nImageHeight=::DIBHeight(lpDIB);
		CRect Rcdib;
		Rcdib.top = Rcdib.left = 0;
		Rcdib.right = nImageWidth;
		Rcdib.bottom = nImageHeight;
		::GlobalUnlock((HGLOBAL)  m_SuiyinHDIB);
		::PaintDIB(dc.m_hDC, &m_rectSuiyin, m_SuiyinHDIB,
			&Rcdib,m_SuiyinpalDIB);
	}

	if(m_QianruHDIB!=NULL)
	{
		LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) m_QianruHDIB);
		// 圖象寬度
		nImageWidth=::DIBWidth(lpDIB);
		// 圖象高度
		nImageHeight=::DIBHeight(lpDIB);
		CRect Rcdib;
		Rcdib.top = Rcdib.left = 0;
		Rcdib.right = nImageWidth;
		Rcdib.bottom = nImageHeight;
		::GlobalUnlock((HGLOBAL)  m_QianruHDIB);
		::PaintDIB(dc.m_hDC, &m_rectQianruSuiyin, m_QianruHDIB,
			&Rcdib,m_OriginpalDIB);
	}

	if(m_TiquHDIB!=NULL)
	{
		LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) m_TiquHDIB);
		// 圖象寬度
		nImageWidth=::DIBWidth(lpDIB);
		// 圖象高度
		nImageHeight=::DIBHeight(lpDIB);
		CRect Rcdib;
		Rcdib.top = Rcdib.left = 0;
		Rcdib.right = nImageWidth;
		Rcdib.bottom = nImageHeight;
		::GlobalUnlock((HGLOBAL)  m_TiquHDIB);
		::PaintDIB(dc.m_hDC, &m_rectTiquSuiyin, m_TiquHDIB,
			&Rcdib,m_SuiyinpalDIB);
	}
	// Do not call CFormView::OnPaint() for painting messages
}

BOOL CWaterMarkxView::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class

	mlfHGTerminate(); 
	libmwsglmTerminate(); 
	libmmfileTerminate();


	return CFormView::DestroyWindow();
}

void CWaterMarkxView::CreatFigDlg()
{
 	// TODO: Add your control notification handler code here  
 	// 若還沒有創建坐標系則創建坐標系
 	if(tobool(isempty(h_a)))
	{
 		char FigName[] ="fff"; //"_Figure_";
 		double BKColor[] = {0.306,0.433,0.746};	  //0.306,0.433,0.746
 		char strVisible[] = "Off";
 
 		mwArray mwFigName(FigName);
 		mwArray mwBKColor(1,3,BKColor);
 		mwArray mwVisible(strVisible);
 		
 		h_a = Get_h(mwFigName,mwBKColor,mwVisible);
 
 		// 查找Figure窗口
 		HWND hFig = ::FindWindow(NULL,FigName);
 		if(hFig == NULL)
 		{
 			AfxMessageBox("未能產生Figure窗口,圖形繪制失敗!");
 			return;
 		}
 
 		// 去掉Figure窗口的標題欄和邊框

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av影视在线观看| 午夜精品影院在线观看| 国产一级精品在线| 久久九九99视频| 国产精品一区二区三区99| 久久亚洲一区二区三区明星换脸| 国产一区二区免费在线| 日本一区二区免费在线观看视频| 国产成人在线视频免费播放| 中文字幕高清不卡| 91欧美一区二区| 午夜精品久久久久久不卡8050| 91精品国产综合久久久久| 久久91精品国产91久久小草 | 日产精品久久久久久久性色| 欧美一卡二卡三卡四卡| 精品一区二区在线播放| 亚洲国产精品精华液2区45| 波多野结衣中文字幕一区| 亚洲综合自拍偷拍| 欧美一区二区三级| 国产99久久久国产精品| 亚洲天堂成人网| 91精品国产色综合久久不卡电影 | 国产91露脸合集magnet| 亚洲三级在线观看| 欧美一卡二卡三卡| 99免费精品视频| 日本欧美在线观看| 国产精品无遮挡| 在线电影一区二区三区| 国产黄人亚洲片| 亚洲成人av福利| 国产精品私人影院| 欧美妇女性影城| 成人视屏免费看| 日韩精品成人一区二区在线| 国产亚洲综合在线| 欧美在线看片a免费观看| 国产一区二区三区在线看麻豆| 亚洲一区二区三区四区在线观看 | 欧美国产日本韩| 欧美一级夜夜爽| 91蜜桃在线免费视频| 老司机午夜精品| 亚洲成人免费视频| 中文字幕亚洲区| 久久亚洲二区三区| 91精品在线麻豆| 欧美在线free| 白白色 亚洲乱淫| 国产一区二区在线看| 午夜欧美在线一二页| 中文字幕制服丝袜一区二区三区| 91精品国产综合久久久久久 | 日本欧美一区二区在线观看| 中文字幕一区二区三区在线观看 | 亚洲一区二区三区四区在线观看| 久久精品视频网| 欧美xingq一区二区| 欧美日韩和欧美的一区二区| av高清久久久| 成人激情动漫在线观看| 激情偷乱视频一区二区三区| 免费在线观看成人| 丝瓜av网站精品一区二区 | 99久久精品国产一区| 国产高清无密码一区二区三区| 免费成人美女在线观看| 天堂资源在线中文精品| 亚洲一区在线视频| 夜夜嗨av一区二区三区中文字幕 | 精品一区二区日韩| 久久精品国产免费看久久精品| 日韩高清在线一区| 亚洲成人自拍一区| 午夜一区二区三区在线观看| 亚洲国产一区视频| 亚洲一区二区在线免费观看视频| 亚洲人成7777| 亚洲一区在线观看视频| 亚洲影视资源网| 日韩av中文字幕一区二区三区| 亚洲成av人片一区二区| 天天亚洲美女在线视频| 美女视频第一区二区三区免费观看网站| 亚洲国产精品影院| 日韩精品91亚洲二区在线观看| 免费久久99精品国产| 久88久久88久久久| 国产91丝袜在线播放九色| 成人午夜视频福利| 91蜜桃传媒精品久久久一区二区| 91视视频在线观看入口直接观看www | 欧美自拍偷拍午夜视频| 在线观看免费成人| 欧美精品久久久久久久久老牛影院| 在线观看91视频| 91麻豆精品国产综合久久久久久| 欧美大黄免费观看| 国产日产欧美一区| 亚洲欧洲av在线| 亚洲综合在线免费观看| 日本中文一区二区三区| 久久不见久久见免费视频1| 国产精品 日产精品 欧美精品| 成人av资源下载| 欧美日本在线一区| 国产午夜亚洲精品理论片色戒 | 婷婷激情综合网| 激情综合五月婷婷| av中文字幕一区| 欧美嫩在线观看| 久久久国际精品| 亚洲色图色小说| 青青草97国产精品免费观看| 国产一区二区91| 在线观看日韩毛片| 久久久不卡影院| 亚洲国产一区二区三区青草影视| 国产一区二区在线免费观看| 色综合久久九月婷婷色综合| 日韩欧美视频一区| 亚洲精品欧美综合四区| 毛片一区二区三区| 91久久线看在观草草青青| 精品乱人伦一区二区三区| 亚洲精品日产精品乱码不卡| 国内精品国产成人国产三级粉色| 色综合天天综合网天天看片| 日韩一区二区三区视频在线| 中文字幕一区视频| 国产一区高清在线| 56国语精品自产拍在线观看| 国产精品久久久99| 久久国产精品无码网站| 在线观看日韩精品| 中文字幕中文字幕中文字幕亚洲无线 | 91精品在线免费| 又紧又大又爽精品一区二区| 国产成人精品1024| 精品国产乱码久久久久久老虎| 亚洲免费av高清| 风间由美性色一区二区三区| 日韩欧美激情四射| 亚洲国产欧美在线| 91亚洲精品一区二区乱码| 久久亚洲春色中文字幕久久久| 日韩电影免费在线看| 日本高清无吗v一区| 国产精品嫩草影院com| 国内成人精品2018免费看| 在线播放91灌醉迷j高跟美女 | 日日夜夜一区二区| 在线观看成人小视频| 中文字幕一区在线观看视频| 国产露脸91国语对白| 精品捆绑美女sm三区| 免费看日韩a级影片| 欧美色偷偷大香| 亚洲一级二级在线| 91久久精品一区二区二区| 亚洲精品国产高清久久伦理二区| 成人黄色软件下载| 国产精品国产三级国产aⅴ中文 | 一卡二卡三卡日韩欧美| 色国产综合视频| 亚洲综合精品久久| 欧美色偷偷大香| 日韩国产高清影视| 精品精品国产高清a毛片牛牛| 奇米色777欧美一区二区| 欧美一区二区美女| 日本91福利区| 日韩一区二区高清| 麻豆成人综合网| 久久久久国产精品厨房| 国产不卡高清在线观看视频| 久久精品一区二区三区av | 色综合久久久久网| 亚洲国产中文字幕在线视频综合 | 亚洲愉拍自拍另类高清精品| 欧洲中文字幕精品| 免费的国产精品| 精品88久久久久88久久久| 国产成人小视频| 最新久久zyz资源站| 欧亚一区二区三区| 日本不卡一二三区黄网| 精品美女被调教视频大全网站| 国产九色sp调教91| 综合久久给合久久狠狠狠97色| 欧美在线视频全部完| 麻豆精品蜜桃视频网站| 久久久久久夜精品精品免费| 99久久精品免费看| 日韩高清在线一区| 中国色在线观看另类| 在线观看日韩毛片| 国产一区二区精品久久99|