mirror of
https://github.com/lltcggie/waifu2x-caffe.git
synced 2025-06-26 13:42:48 +00:00
GUIで縦横サイズ指定追加
This commit is contained in:
parent
a9b91ad9f9
commit
c04ba8fd6c
@ -26,6 +26,7 @@
|
||||
"IDC_RADIO_SCALE_RATIO":"Set rate",
|
||||
"IDC_RADIO_SCALE_WIDTH":"Set trans width",
|
||||
"IDC_RADIO_SCALE_HEIGHT":"Set trans height",
|
||||
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"Set trans width and height",
|
||||
"IDC_STATIC_MODEL":"Model",
|
||||
"IDC_RADIO_MODEL_RGB":"2-D illust (RGB Model)",
|
||||
"IDC_RADIO_MODEL_PHOTO":"Photography, Anime",
|
||||
|
@ -26,6 +26,7 @@
|
||||
"IDC_RADIO_SCALE_RATIO":"拡大率で指定",
|
||||
"IDC_RADIO_SCALE_WIDTH":"変換後の横幅で指定",
|
||||
"IDC_RADIO_SCALE_HEIGHT":"変換後の縦幅で指定",
|
||||
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"変換後の縦横幅で指定",
|
||||
"IDC_STATIC_MODEL":"モデル",
|
||||
"IDC_RADIO_MODEL_RGB":"2次元イラスト (RGBモデル)",
|
||||
"IDC_RADIO_MODEL_PHOTO":"写真・アニメ (Photoモデル)",
|
||||
|
@ -633,6 +633,20 @@ void stImage::Postprocess(const int input_plane, const double scale, const int d
|
||||
AlphaCleanImage(mEndImage);
|
||||
}
|
||||
|
||||
void stImage::Postprocess(const int input_plane, const int width, const int height, const int depth)
|
||||
{
|
||||
DeconvertFromNetFormat(input_plane);
|
||||
ShrinkImage(width, height);
|
||||
|
||||
// 値を0~1にクリッピング
|
||||
cv::threshold(mEndImage, mEndImage, 1.0, 1.0, cv::THRESH_TRUNC);
|
||||
cv::threshold(mEndImage, mEndImage, 0.0, 0.0, cv::THRESH_TOZERO);
|
||||
|
||||
mEndImage = DeconvertFromFloat(mEndImage, depth);
|
||||
|
||||
AlphaCleanImage(mEndImage);
|
||||
}
|
||||
|
||||
void stImage::DeconvertFromNetFormat(const int input_plane)
|
||||
{
|
||||
if (input_plane == 1) // Yモデル
|
||||
@ -748,6 +762,19 @@ void stImage::ShrinkImage(const double scale)
|
||||
}
|
||||
}
|
||||
|
||||
void stImage::ShrinkImage(const int width, const int height)
|
||||
{
|
||||
// TODO: scale = 1.0 でも悪影響を及ぼさないか調べる
|
||||
|
||||
const cv::Size_<int> ns(width, height);
|
||||
if (mEndImage.size().width != ns.width || mEndImage.size().height != ns.height)
|
||||
{
|
||||
int argo = cv::INTER_CUBIC;
|
||||
|
||||
cv::resize(mEndImage, mEndImage, ns, 0.0, 0.0, argo);
|
||||
}
|
||||
}
|
||||
|
||||
cv::Mat stImage::DeconvertFromFloat(const cv::Mat &im, const int depth)
|
||||
{
|
||||
const int cv_depth = DepthBitToCVDepth(depth);
|
||||
|
@ -69,6 +69,7 @@ private:
|
||||
|
||||
void DeconvertFromNetFormat(const int input_plane);
|
||||
void ShrinkImage(const double scale);
|
||||
void ShrinkImage(const int width, const int height);
|
||||
|
||||
static int DepthBitToCVDepth(const int depth_bit);
|
||||
static double GetValumeMaxFromCVDepth(const int cv_depth);
|
||||
@ -125,6 +126,7 @@ public:
|
||||
void SetReconstructedA(cv::Mat &im, const cv::Size_<int> &size, const int inner_scale);
|
||||
|
||||
void Postprocess(const int input_plane, const double scale, const int depth);
|
||||
void Postprocess(const int input_plane, const int width, const int height, const int depth);
|
||||
|
||||
cv::Mat GetEndImage() const;
|
||||
|
||||
|
@ -779,7 +779,10 @@ Waifu2x::eWaifu2xError Waifu2x::waifu2x(const boost::filesystem::path &input_fil
|
||||
if (ret != Waifu2x::eWaifu2xError_OK)
|
||||
return ret;
|
||||
|
||||
image.Postprocess(mInputPlane, Factor, output_depth);
|
||||
if(!scale_width || !scale_height)
|
||||
image.Postprocess(mInputPlane, Factor, output_depth);
|
||||
else
|
||||
image.Postprocess(mInputPlane, *scale_width, *scale_height, output_depth);
|
||||
|
||||
ret = image.Save(output_file, output_quality);
|
||||
if (ret != Waifu2x::eWaifu2xError_OK)
|
||||
@ -857,6 +860,14 @@ double Waifu2x::CalcScaleRatio(const boost::optional<double> scale_ratio, const
|
||||
if (scale_ratio)
|
||||
return *scale_ratio;
|
||||
|
||||
if (scale_width && scale_height)
|
||||
{
|
||||
const auto d1 = image.GetScaleFromWidth(*scale_width);
|
||||
const auto d2 = image.GetScaleFromWidth(*scale_height);
|
||||
|
||||
return d1 >= d2 ? d1 : d2;
|
||||
}
|
||||
|
||||
if (scale_width)
|
||||
return image.GetScaleFromWidth(*scale_width);
|
||||
|
||||
|
@ -171,8 +171,10 @@ tstring DialogEvent::AddName() const
|
||||
addstr += TEXT("(x") + to_tstring(scale_ratio) + TEXT(")");
|
||||
else if (scaleType == eScaleTypeWidth)
|
||||
addstr += TEXT("(width ") + to_tstring(scale_width) + TEXT(")");
|
||||
else
|
||||
else if (scaleType == eScaleTypeHeight)
|
||||
addstr += TEXT("(height ") + to_tstring(scale_height) + TEXT(")");
|
||||
else
|
||||
addstr += TEXT("(") + to_tstring(scale_width) + TEXT("x") + to_tstring(scale_height) + TEXT(")");
|
||||
}
|
||||
|
||||
if (output_depth != 8)
|
||||
@ -236,8 +238,10 @@ bool DialogEvent::SyncMember(const bool NotSyncCropSize, const bool silent)
|
||||
scaleType = eScaleTypeRatio;
|
||||
else if (SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH), BM_GETCHECK, 0, 0))
|
||||
scaleType = eScaleTypeWidth;
|
||||
else
|
||||
else if (SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_HEIGHT), BM_GETCHECK, 0, 0))
|
||||
scaleType = eScaleTypeHeight;
|
||||
else
|
||||
scaleType = eScaleTypeWidthHeight;
|
||||
|
||||
{
|
||||
TCHAR buf[AR_PATH_MAX] = TEXT("");
|
||||
@ -295,13 +299,75 @@ bool DialogEvent::SyncMember(const bool NotSyncCropSize, const bool silent)
|
||||
ret = false;
|
||||
|
||||
if (!silent)
|
||||
MessageBox(dh, langStringList.GetString(L"MessageScaleHeightCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR);
|
||||
MessageBox(dh, langStringList.GetString(L"MessageScaleWidthCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR);
|
||||
}
|
||||
}
|
||||
else
|
||||
scale_height = l;
|
||||
}
|
||||
|
||||
if (scaleType == eScaleTypeWidthHeight)
|
||||
{
|
||||
TCHAR buf[AR_PATH_MAX] = TEXT("");
|
||||
GetWindowText(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), buf, _countof(buf));
|
||||
buf[_countof(buf) - 1] = TEXT('\0');
|
||||
|
||||
std::vector<const TCHAR *> v;
|
||||
TCHAR *p = buf;
|
||||
TCHAR *context= nullptr;
|
||||
for (;;)
|
||||
{
|
||||
const auto str = _tcstok_s(p, TEXT(" x"), &context);
|
||||
if (!str)
|
||||
break;
|
||||
p = nullptr;
|
||||
|
||||
v.push_back(str);
|
||||
}
|
||||
|
||||
if (v.size() == 2)
|
||||
{
|
||||
TCHAR *ptr = nullptr;
|
||||
long l = 0;
|
||||
|
||||
l = _tcstol(v[0], &ptr, 10);
|
||||
if (!ptr || *ptr != TEXT('\0') || l <= 0)
|
||||
{
|
||||
ret = false;
|
||||
|
||||
if (!silent)
|
||||
MessageBox(dh, langStringList.GetString(L"MessageScaleWidthCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
scale_width = l;
|
||||
}
|
||||
|
||||
if (ret)
|
||||
{
|
||||
l = _tcstol(v[1], &ptr, 10);
|
||||
if (!ptr || *ptr != TEXT('\0') || l <= 0)
|
||||
{
|
||||
ret = false;
|
||||
|
||||
if (!silent)
|
||||
MessageBox(dh, langStringList.GetString(L"MessageScaleWidthCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
scale_height = l;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = false;
|
||||
|
||||
if (!silent)
|
||||
MessageBox(dh, langStringList.GetString(L"MessageScaleWidthCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
const int cur = SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_GETCURSEL, 0, 0);
|
||||
switch (cur)
|
||||
@ -743,7 +809,11 @@ void DialogEvent::ProcessWaifu2x()
|
||||
case eScaleTypeWidth:
|
||||
ScaleWidth = scale_width;
|
||||
break;
|
||||
case eScaleTypeHeight:
|
||||
ScaleWidth = scale_height;
|
||||
break;
|
||||
default:
|
||||
ScaleWidth = scale_width;
|
||||
ScaleHeight = scale_height;
|
||||
break;
|
||||
}
|
||||
@ -972,8 +1042,10 @@ void DialogEvent::SaveIni(const bool isSyncMember)
|
||||
tScaleMode = TEXT("Ratio");
|
||||
else if (scaleType == eScaleTypeWidth)
|
||||
tScaleMode = TEXT("Width");
|
||||
else
|
||||
else if (scaleType == eScaleTypeHeight)
|
||||
tScaleMode = TEXT("Height");
|
||||
else
|
||||
tScaleMode = TEXT("WidthHeight");
|
||||
|
||||
WritePrivateProfileString(TEXT("Setting"), TEXT("LastScaleMode"), tScaleMode.c_str(), getTString(SettingFilePath).c_str());
|
||||
|
||||
@ -1481,6 +1553,7 @@ void DialogEvent::SetWindowTextLang()
|
||||
SET_WINDOW_TEXT(IDC_RADIO_SCALE_RATIO);
|
||||
SET_WINDOW_TEXT(IDC_RADIO_SCALE_WIDTH);
|
||||
SET_WINDOW_TEXT(IDC_RADIO_SCALE_HEIGHT);
|
||||
SET_WINDOW_TEXT(IDC_RADIO_SCALE_WIDTH_HEIGHT);
|
||||
SET_WINDOW_TEXT(IDC_STATIC_MODEL);
|
||||
SET_WINDOW_TEXT(IDC_CHECK_TTA);
|
||||
SET_WINDOW_TEXT(IDC_STATIC_PROCESS_SPEED_SETTING);
|
||||
@ -1720,6 +1793,7 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
tstring tScaleRatio;
|
||||
tstring tScaleWidth;
|
||||
tstring tScaleHeight;
|
||||
tstring tScaleWidthHeight;
|
||||
|
||||
tstring tScaleMode;
|
||||
tstring tmode;
|
||||
@ -1823,30 +1897,48 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
}
|
||||
else if (tScaleMode == TEXT("Width"))
|
||||
{
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
}
|
||||
else if (tScaleMode == TEXT("Height"))
|
||||
{
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH_HEIGHT), BM_SETCHECK, BST_CHECKED, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), TRUE);
|
||||
}
|
||||
|
||||
if (noise_level == 0)
|
||||
@ -1888,9 +1980,11 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
}
|
||||
else if (tmode == TEXT("scale"))
|
||||
{
|
||||
@ -1943,6 +2037,7 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_RATIO), tScaleRatio.c_str());
|
||||
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_WIDTH), tScaleWidth.c_str());
|
||||
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_HEIGHT), tScaleHeight.c_str());
|
||||
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_WIDTH_HEIGHT), tScaleWidthHeight.c_str());
|
||||
|
||||
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_INPUT_EXT_LIST), inputFileExt.c_str());
|
||||
|
||||
@ -2034,6 +2129,9 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
TCLAP::ValueArg<int> cmdScaleHeight(L"h", L"scale_height",
|
||||
L"custom scale height", false, 0, L"double", cmd);
|
||||
|
||||
TCLAP::ValueArg<int> cmdScaleWidthHeight(L"", L"scale_width_height",
|
||||
L"custom scale width and height", false, 0, L"double", cmd);
|
||||
|
||||
std::vector<std::wstring> cmdProcessConstraintV;
|
||||
cmdProcessConstraintV.push_back(L"cpu");
|
||||
cmdProcessConstraintV.push_back(L"gpu");
|
||||
@ -2205,10 +2303,12 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
|
||||
SetWindowText(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), to_tstring(cmdScaleWidth.getValue()).c_str());
|
||||
|
||||
@ -2219,10 +2319,12 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), TRUE);
|
||||
|
||||
SetWindowText(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), to_tstring(cmdScaleHeight.getValue()).c_str());
|
||||
|
||||
@ -2233,15 +2335,33 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
|
||||
SetWindowText(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), to_tstring(cmdScaleRatio.getValue()).c_str());
|
||||
|
||||
isSetParam = true;
|
||||
}
|
||||
else if (cmdScaleWidthHeight.isSet())
|
||||
{
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH_HEIGHT), BM_SETCHECK, BST_CHECKED, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), TRUE);
|
||||
|
||||
SetWindowText(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), to_tstring(cmdScaleWidthHeight.getValue()).c_str());
|
||||
|
||||
isSetParam = true;
|
||||
}
|
||||
|
||||
if (cmdProcess.isSet())
|
||||
{
|
||||
@ -2436,6 +2556,7 @@ void DialogEvent::OnModeChange(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID l
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_RATIO), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_HEIGHT), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH_HEIGHT), TRUE);
|
||||
|
||||
ScaleRadio(NULL, NULL, NULL, NULL); // ‚±‚±‚ÅReplaceAddString()‚â‚é‚©‚çreturn
|
||||
return;
|
||||
@ -2445,10 +2566,12 @@ void DialogEvent::OnModeChange(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID l
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
}
|
||||
|
||||
ReplaceAddString();
|
||||
@ -2461,18 +2584,28 @@ void DialogEvent::ScaleRadio(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpD
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
}
|
||||
else if (SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH), BM_GETCHECK, 0, 0))
|
||||
{
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
}
|
||||
else if (SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_HEIGHT), BM_GETCHECK, 0, 0))
|
||||
{
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), TRUE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE);
|
||||
EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH_HEIGHT), TRUE);
|
||||
}
|
||||
|
||||
ReplaceAddString();
|
||||
|
@ -79,6 +79,7 @@ private:
|
||||
eScaleTypeRatio,
|
||||
eScaleTypeWidth,
|
||||
eScaleTypeHeight,
|
||||
eScaleTypeWidthHeight,
|
||||
eScaleTypeEnd,
|
||||
};
|
||||
|
||||
|
Binary file not shown.
@ -37,6 +37,7 @@ int WINAPI WinMain(HINSTANCE hInstance,
|
||||
CControl cControlScaleRatio(IDC_EDIT_SCALE_RATIO);
|
||||
CControl cControlScaleWidth(IDC_EDIT_SCALE_WIDTH);
|
||||
CControl cControlScaleHeight(IDC_EDIT_SCALE_HEIGHT);
|
||||
CControl cControlScaleWidthHeight(IDC_EDIT_SCALE_WIDTH_HEIGHT);
|
||||
|
||||
// 登録する関数がまとめられたクラス
|
||||
// グローバル関数を使えばクラスにまとめる必要はないがこの方法が役立つこともあるはず
|
||||
@ -51,6 +52,7 @@ int WINAPI WinMain(HINSTANCE hInstance,
|
||||
cControlScaleRatio.SetEventCallBack(SetClassCustomFunc(DialogEvent::TextInput, &cDialogEvent), NULL, WM_CHAR);
|
||||
cControlScaleWidth.SetEventCallBack(SetClassCustomFunc(DialogEvent::TextInput, &cDialogEvent), NULL, WM_CHAR);
|
||||
cControlScaleHeight.SetEventCallBack(SetClassCustomFunc(DialogEvent::TextInput, &cDialogEvent), NULL, WM_CHAR);
|
||||
cControlScaleWidthHeight.SetEventCallBack(SetClassCustomFunc(DialogEvent::TextInput, &cDialogEvent), NULL, WM_CHAR);
|
||||
|
||||
// コントロールのサブクラスを登録
|
||||
cDialog.AddControl(&cControlInput);
|
||||
@ -58,6 +60,7 @@ int WINAPI WinMain(HINSTANCE hInstance,
|
||||
cDialog.AddControl(&cControlScaleRatio);
|
||||
cDialog.AddControl(&cControlScaleWidth);
|
||||
cDialog.AddControl(&cControlScaleHeight);
|
||||
cDialog.AddControl(&cControlScaleWidthHeight);
|
||||
|
||||
// 各コントロールのイベントで実行する関数の登録
|
||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::Exec, &cDialogEvent), NULL, IDC_BUTTON_EXEC);
|
||||
@ -71,6 +74,7 @@ int WINAPI WinMain(HINSTANCE hInstance,
|
||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::OnModeChange, &cDialogEvent), NULL, IDC_RADIO_MODE_SCALE);
|
||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::OnModeChange, &cDialogEvent), NULL, IDC_RADIO_MODE_NOISE_SCALE);
|
||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::OnModeChange, &cDialogEvent), NULL, IDC_RADIO_AUTO_SCALE);
|
||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::OnModeChange, &cDialogEvent), NULL, IDC_RADIO_SCALE_WIDTH_HEIGHT);
|
||||
|
||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL0);
|
||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL1);
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user