📄 rotatedlg.cpp
字号:
// RotateDlg.cpp : implementation file
//
#include "stdafx.h"
#include "RSIP.h"
#include "RotateDlg.h"
#include "RSImage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRotateDlg dialog
CRotateDlg::CRotateDlg(CWnd* pParent /*=NULL*/)
: CDialog(CRotateDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRotateDlg)
m_fDegree = 0.0f;
m_nDirection = 0;
//}}AFX_DATA_INIT
}
void CRotateDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRotateDlg)
DDX_Text(pDX, IDC_EDIT1, m_fDegree);
DDV_MinMaxFloat(pDX, m_fDegree, 0.f, 360.f);
DDX_Radio(pDX, IDC_RADIO1, m_nDirection);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRotateDlg, CDialog)
//{{AFX_MSG_MAP(CRotateDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRotateDlg message handlers
/////////////////////////////////////////////////////////////////////////////
// CResampleDlg dialog
CResampleDlg::CResampleDlg(CWnd* pParent /*=NULL*/)
: CDialog(CResampleDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CResampleDlg)
m_nResultWidth = 0;
m_nResultHeight = 0;
m_nOriginWidth = 0;
m_nOriginHeight = 0;
m_nMethod = 0;
//}}AFX_DATA_INIT
}
void CResampleDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CResampleDlg)
DDX_Text(pDX, IDC_RESULTWIDTH, m_nResultWidth);
DDV_MinMaxInt(pDX, m_nResultWidth, 0, 32767);
DDX_Text(pDX, IDC_RESULTHEIGHT, m_nResultHeight);
DDV_MinMaxInt(pDX, m_nResultHeight, 0, 32767);
DDX_Text(pDX, IDC_ORIGINWIDTH, m_nOriginWidth);
DDV_MinMaxInt(pDX, m_nOriginWidth, 0, 32767);
DDX_Text(pDX, IDC_ORIGINHEIGHT, m_nOriginHeight);
DDV_MinMaxInt(pDX, m_nOriginHeight, 0, 32767);
DDX_Radio(pDX, IDC_NEARESTPOINT, m_nMethod);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CResampleDlg, CDialog)
//{{AFX_MSG_MAP(CResampleDlg)
ON_EN_KILLFOCUS(IDC_RESULTHEIGHT, OnKillfocusResultheight)
ON_EN_KILLFOCUS(IDC_RESULTWIDTH, OnKillfocusResultwidth)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CResampleDlg message handlers
void CResampleDlg::OnKillfocusResultheight()
{
if(IsDlgButtonChecked(IDC_CHECK1))
{
int width,height;
float ratio;
height = GetDlgItemInt(IDC_RESULTHEIGHT);
ratio = (float)height/m_nOriginHeight;
width = int(m_nOriginWidth*ratio);
SetDlgItemInt(IDC_RESULTWIDTH,width);
}
}
void CResampleDlg::OnKillfocusResultwidth()
{
if(IsDlgButtonChecked(IDC_CHECK1))
{
int width,height;
float ratio;
width = GetDlgItemInt(IDC_RESULTWIDTH);
ratio = (float)width/m_nOriginWidth;
height = int(m_nOriginHeight*ratio);
SetDlgItemInt(IDC_RESULTHEIGHT,height);
}
}
/////////////////////////////////////////////////////////////////////////////
// CImgCombineDlg dialog
CImgCombineDlg::CImgCombineDlg(CWnd* pParent /*=NULL*/)
: CDialog(CImgCombineDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CImgCombineDlg)
m_szBlueBand = _T("");
m_szGreenBand = _T("");
m_szRedBand = _T("");
m_nImgHeight = 0;
m_nImgWidth = 0;
m_nMethod = 0;
m_szBand1 = _T("R:");
m_szBand2 = _T("G:");
m_szBand3 = _T("B:");
//}}AFX_DATA_INIT
}
void CImgCombineDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CImgCombineDlg)
DDX_Text(pDX, IDC_BLUEBAND, m_szBlueBand);
DDX_Text(pDX, IDC_GREENBAND, m_szGreenBand);
DDX_Text(pDX, IDC_REDBAND, m_szRedBand);
DDX_Text(pDX, IDC_IMAGEHEIGHT, m_nImgHeight);
DDX_Text(pDX, IDC_IMAGEWIDTH, m_nImgWidth);
DDX_Radio(pDX, IDC_RGB_RADIO, m_nMethod);
DDX_Text(pDX, IDC_STATIC1, m_szBand1);
DDX_Text(pDX, IDC_STATIC2, m_szBand2);
DDX_Text(pDX, IDC_STATIC3, m_szBand3);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CImgCombineDlg, CDialog)
//{{AFX_MSG_MAP(CImgCombineDlg)
ON_BN_CLICKED(IDC_GREENBANDDIR, OnGreenbanddir)
ON_BN_CLICKED(IDC_BLUEBANDDIR, OnBluebanddir)
ON_BN_CLICKED(IDC_REDBANDDIR, OnRedbanddir)
ON_BN_CLICKED(IDC_IHS_RADIO, OnIhsRadio)
ON_BN_CLICKED(IDC_RGB_RADIO, OnRgbRadio)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImgCombineDlg message handlers
void CImgCombineDlg::OnGreenbanddir()
{
CFileDialog dlg(TRUE,"dat",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Image Files(*.dat)|*.dat||",NULL);
if(dlg.DoModal() == IDOK)
{
m_szGreenBand = dlg.GetPathName();
m_szGreenBand.TrimLeft();
m_szGreenBand.TrimRight();
int length = m_szGreenBand.GetLength();
CString infFileName = m_szGreenBand.Left(length - 4)+".inf";
CFile infFile;
if(0 != infFile.Open(infFileName,CFile::modeRead))
{
CRSImage RSImage;
RSImage.LoadRsInfo(&infFile);
infFile.Close();
if(RSImage.m_nImgType != IMAGE_SINGLEBAND)
{
AfxMessageBox("该图象不是单波段图象。\n\n请选择单波段图象进行图象合成!");
return;
}
if(m_nImgHeight==0 && m_nImgWidth==0)
{
m_nImgHeight = RSImage.m_nImgHeight;
m_nImgWidth = RSImage.m_nImgWidth;
}
else
{
if(m_nImgHeight-RSImage.m_nImgHeight!=0 ||
m_nImgWidth-RSImage.m_nImgWidth!=0)
{
AfxMessageBox("该波段图象与其他波段图象尺寸不符合!");
return;
}
}
}
else
{
AfxMessageBox("找不到该波段图象的信息文件!");
return;
}
}
UpdateData(FALSE);
}
void CImgCombineDlg::OnBluebanddir()
{
CFileDialog dlg(TRUE,"dat",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Image Files(*.dat)|*.dat||",NULL);
if(dlg.DoModal() == IDOK)
{
m_szBlueBand = dlg.GetPathName();
m_szBlueBand.TrimLeft();
m_szBlueBand.TrimRight();
int length = m_szBlueBand.GetLength();
CString infFileName = m_szBlueBand.Left(length - 4)+".inf";
CFile infFile;
if(0 != infFile.Open(infFileName,CFile::modeRead))
{
CRSImage RSImage;
RSImage.LoadRsInfo(&infFile);
infFile.Close();
if(RSImage.m_nImgType != IMAGE_SINGLEBAND)
{
AfxMessageBox("该图象不是单波段图象。\n\n请选择单波段图象进行图象合成!");
return;
}
if(m_nImgHeight==0 && m_nImgWidth==0)
{
m_nImgHeight = RSImage.m_nImgHeight;
m_nImgWidth = RSImage.m_nImgWidth;
}
else
{
if(m_nImgHeight-RSImage.m_nImgHeight!=0 ||
m_nImgWidth-RSImage.m_nImgWidth!=0)
{
AfxMessageBox("该波段图象与其他波段图象尺寸不符合!");
return;
}
}
}
else
{
AfxMessageBox("找不到该波段图象的信息文件!");
return;
}
}
UpdateData(FALSE);
}
void CImgCombineDlg::OnRedbanddir()
{
CFileDialog dlg(TRUE,"dat",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Image Files(*.dat)|*.dat||",NULL);
if(dlg.DoModal() == IDOK)
{
m_szRedBand = dlg.GetPathName();
m_szRedBand.TrimLeft();
m_szRedBand.TrimRight();
int length = m_szRedBand.GetLength();
CString infFileName = m_szRedBand.Left(length - 4)+".inf";
CFile infFile;
if(0 != infFile.Open(infFileName,CFile::modeRead))
{
CRSImage RSImage;
RSImage.LoadRsInfo(&infFile);
infFile.Close();
if(RSImage.m_nImgType != IMAGE_SINGLEBAND)
{
AfxMessageBox("该图象不是单波段图象。\n\n请选择单波段图象进行图象合成!");
return;
}
if(m_nImgHeight==0 && m_nImgWidth==0)
{
m_nImgHeight = RSImage.m_nImgHeight;
m_nImgWidth = RSImage.m_nImgWidth;
}
else
{
if(m_nImgHeight-RSImage.m_nImgHeight!=0 ||
m_nImgWidth-RSImage.m_nImgWidth!=0)
{
AfxMessageBox("该波段图象与其他波段图象尺寸不符合!");
return;
}
}
}
else
{
AfxMessageBox("找不到该波段图象的信息文件!");
return;
}
}
UpdateData(FALSE);
}
void CImgCombineDlg::OnOK()
{
UpdateData(TRUE);
if(m_szRedBand==_T("") ||
m_szBlueBand==_T("") ||
m_szGreenBand==_T(""))
{
AfxMessageBox("参加图象合成的波段不足三个!");
return;
}
CDialog::OnOK();
}
void CImgCombineDlg::OnIhsRadio()
{
if(m_nMethod == 0)
m_nMethod = 1;
else
return;
m_szBand1 = _T("I:");
m_szBand2 = _T("H:");
m_szBand3 = _T("S:");
UpdateData(FALSE);
}
void CImgCombineDlg::OnRgbRadio()
{
if(m_nMethod == 1)
m_nMethod = 0;
else
return;
m_szBand1 = _T("R:");
m_szBand2 = _T("G:");
m_szBand3 = _T("B:");
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -