From 2b3b8682c873784a172edbf2eea1898607022667 Mon Sep 17 00:00:00 2001 From: "Tau-er\\Bobbster" Date: Sun, 10 Oct 2021 03:44:13 +0200 Subject: [PATCH 1/4] Attempting to add a satruation adjustment command. Modified KeyMap accordingly (and corrected a grammar mistake). Needs testing. --- JPEGView/Config/KeyMap.txt | 10 +++++++--- JPEGView/Config/KeyMap_ru.txt | 20 ++++++++++++-------- JPEGView/MainDlg.cpp | 11 +++++++++++ JPEGView/MainDlg.h | 1 + 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/JPEGView/Config/KeyMap.txt b/JPEGView/Config/KeyMap.txt index 66a58a7e..00ec809e 100644 --- a/JPEGView/Config/KeyMap.txt +++ b/JPEGView/Config/KeyMap.txt @@ -1,5 +1,5 @@ // This file defines the key mapping for JPEGView -// Make sure not to corrupt it - else no keys are working anymore! +// Make sure not to corrupt it or else no keys will work anymore! // It is possible to map multiple keys to the same command but not multiple commands to the same key // This section contains the definitions of the available JPEGView commands - do not modify! @@ -110,6 +110,8 @@ #define IDM_PAN_LEFT 15203 // pan left #define IDM_SHARPEN_INC 15300 // increase sharpness #define IDM_SHARPEN_DEC 15301 // decrease sharpness +#define IDM_SATURATION_INC 15400 // increase saturation +#define IDM_SATURATION_DEC 15401 // decrease saturation #define IDM_CONTEXT_MENU 16000 // display context menu // This section contains the key map. A small number of keys is predefined and cannot be changed: @@ -142,13 +144,15 @@ Ctrl+Shift+Plus IDM_CONTRAST_CORRECTION_INC Ctrl+Alt+Plus IDM_COLOR_CORRECTION_INC Ctrl+Plus IDM_CONTRAST_INC Shift+Plus IDM_GAMMA_INC -Alt+Plus IDM_SHARPEN_INC +Alt+Plus IDM_SATURATION_INC +Ctrl+Alt+Plus IDM_SHARPEN_INC Minus IDM_ZOOM_DEC Ctrl+Shift+Minus IDM_CONTRAST_CORRECTION_DEC Ctrl+Alt+Minus IDM_COLOR_CORRECTION_DEC Ctrl+Minus IDM_CONTRAST_DEC Shift+Minus IDM_GAMMA_DEC -Alt+Minus IDM_SHARPEN_DEC +Alt+Minus IDM_SATURATION_DEC +Ctrl+Alt+Minus IDM_SHARPEN_DEC F2 IDM_SHOW_FILEINFO Ctrl+F2 IDM_SHOW_FILENAME F3 IDM_TOGGLE_RESAMPLING_QUALITY diff --git a/JPEGView/Config/KeyMap_ru.txt b/JPEGView/Config/KeyMap_ru.txt index 35b7f244..7ca4c20d 100644 --- a/JPEGView/Config/KeyMap_ru.txt +++ b/JPEGView/Config/KeyMap_ru.txt @@ -117,6 +117,8 @@ #define IDM_PAN_LEFT 15203 // переместить картинку влево #define IDM_SHARPEN_INC 15300 // усилить резкость #define IDM_SHARPEN_DEC 15301 // ослабить резкость +#define IDM_SATURATION_INC 15400 // усилить насыщенность +#define IDM_SATURATION_DEC 15401 // ослабить насыщенность #define IDM_CONTEXT_MENU 16000 // показать контекстное меню // Раздел ниже содержит назначения клавиш. @@ -152,14 +154,16 @@ Plus IDM_ZOOM_INC Ctrl+Shift+Plus IDM_CONTRAST_CORRECTION_INC Ctrl+Alt+Plus IDM_COLOR_CORRECTION_INC Ctrl+Plus IDM_CONTRAST_INC -Shift+Plus IDM_GAMMA_INC -Alt+Plus IDM_SHARPEN_INC -Minus IDM_ZOOM_DEC -Ctrl+Shift+Minus IDM_CONTRAST_CORRECTION_DEC -Ctrl+Alt+Minus IDM_COLOR_CORRECTION_DEC -Ctrl+Minus IDM_CONTRAST_DEC -Shift+Minus IDM_GAMMA_DEC -Alt+Minus IDM_SHARPEN_DEC +Shift+Plus IDM_GAMMA_INC +Alt+Plus IDM_SATURATION_INC +Ctrl+Alt+Plus IDM_SHARPEN_INC +Minus IDM_ZOOM_DEC +Ctrl+Shift+Minus IDM_CONTRAST_CORRECTION_DEC +Ctrl+Alt+Minus IDM_COLOR_CORRECTION_DEC +Ctrl+Minus IDM_CONTRAST_DEC +Shift+Minus IDM_GAMMA_DEC +Alt+Minus IDM_SATURATION_DEC +Ctrl+Alt+Minus IDM_SHARPEN_DEC F2 IDM_SHOW_FILEINFO Ctrl+F2 IDM_SHOW_FILENAME F3 IDM_TOGGLE_RESAMPLING_QUALITY diff --git a/JPEGView/MainDlg.cpp b/JPEGView/MainDlg.cpp index 1e3fe643..18c73823 100644 --- a/JPEGView/MainDlg.cpp +++ b/JPEGView/MainDlg.cpp @@ -62,6 +62,7 @@ static const int MIN_WND_HEIGHT = 240; static const double GAMMA_FACTOR = 1.02; // multiplicator for gamma value static const double CONTRAST_INC = 0.03; // increment for contrast value +static const double SATURATION_INC = 0.03; // increment for saturation value static const double SHARPEN_INC = 0.05; // increment for sharpen value static const double LDC_INC = 0.1; // increment for LDC (lighten shadows and darken highlights) static const int NUM_THREADS = 1; // number of readahead threads to use @@ -1928,6 +1929,10 @@ void CMainDlg::ExecuteCommand(int nCommand) { case IDM_GAMMA_DEC: AdjustGamma((nCommand == IDM_GAMMA_INC)? 1.0/GAMMA_FACTOR : GAMMA_FACTOR); break; + case IDM_SATURATION_INC: + case IDM_SATURATION_DEC: + AdjustSaturation((nCommand == IDM_SATURATION_INC)? SATURATION_INC : -SATURATION_INC); + break; case IDM_LDC_SHADOWS_INC: case IDM_LDC_SHADOWS_DEC: case IDM_LDC_HIGHLIGHTS_INC: @@ -2413,6 +2418,12 @@ void CMainDlg::AdjustGamma(double dFactor) { this->Invalidate(FALSE); } +void CMainDlg::AdjustSaturation(double dInc) { + m_pImageProcParams->Saturation += dInc; + m_pImageProcParams->Saturation = min(0.0, max(2.0, m_pImageProcParams->Saturation)); + this->Invalidate(FALSE); +} + void CMainDlg::AdjustContrast(double dInc) { m_pImageProcParams->Contrast += dInc; m_pImageProcParams->Contrast = min(0.5, max(-0.5, m_pImageProcParams->Contrast)); diff --git a/JPEGView/MainDlg.h b/JPEGView/MainDlg.h index d262b2ae..261206dd 100644 --- a/JPEGView/MainDlg.h +++ b/JPEGView/MainDlg.h @@ -334,6 +334,7 @@ class CMainDlg : public CDialogImpl void AdjustLDC(int nMode, double dInc); void AdjustGamma(double dFactor); void AdjustContrast(double dInc); + void AdjustSaturation(double dInc); void AdjustSharpen(double dInc); void PerformZoom(double dValue, bool bExponent, bool bZoomToMouse, bool bAdjustWindowToImage); void ZoomToSelection(); From cc1dbda760146e8761f7daa684244f80e643ed66 Mon Sep 17 00:00:00 2001 From: "Tau-er\\Bobbster" Date: Sun, 10 Oct 2021 12:32:25 +0200 Subject: [PATCH 2/4] Quick fix: I forgot to define the IDM_SATURATION_INC and IDM_SATURATION_DEC in the resource header. --- JPEGView/resource.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/JPEGView/resource.h b/JPEGView/resource.h index 1b853041..fe6ffb85 100644 --- a/JPEGView/resource.h +++ b/JPEGView/resource.h @@ -279,6 +279,8 @@ #define IDM_PAN_LEFT 15203 #define IDM_SHARPEN_INC 15300 #define IDM_SHARPEN_DEC 15301 +#define IDM_SATURATION_INC 15400 +#define IDM_SATURATION_DEC 15401 #define IDM_CONTEXT_MENU 16000 #define IDM_CROP_SEL 20000 From 61067cd78e739093ffcac9d7fafae5a75e8e502b Mon Sep 17 00:00:00 2001 From: "Tau-er\\Bobbster" Date: Tue, 12 Oct 2021 23:22:21 +0200 Subject: [PATCH 3/4] Bug fix: the minimum and maximum for the AdjustSaturation command were inversed. Also, tweaked saturation and contrast adjustment increment by 0.01: this brings it in line with the gamma adjustment increment and guarantees the user can always recenter the adjustments using hotkeys alone (since it was an odd valued increment before, this was not always the case). --- JPEGView/MainDlg.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/JPEGView/MainDlg.cpp b/JPEGView/MainDlg.cpp index 18c73823..7f4a5c36 100644 --- a/JPEGView/MainDlg.cpp +++ b/JPEGView/MainDlg.cpp @@ -61,8 +61,8 @@ static const int MIN_WND_WIDTH = 320; static const int MIN_WND_HEIGHT = 240; static const double GAMMA_FACTOR = 1.02; // multiplicator for gamma value -static const double CONTRAST_INC = 0.03; // increment for contrast value -static const double SATURATION_INC = 0.03; // increment for saturation value +static const double CONTRAST_INC = 0.02; // increment for contrast value +static const double SATURATION_INC = 0.02; // increment for saturation value static const double SHARPEN_INC = 0.05; // increment for sharpen value static const double LDC_INC = 0.1; // increment for LDC (lighten shadows and darken highlights) static const int NUM_THREADS = 1; // number of readahead threads to use @@ -2420,7 +2420,7 @@ void CMainDlg::AdjustGamma(double dFactor) { void CMainDlg::AdjustSaturation(double dInc) { m_pImageProcParams->Saturation += dInc; - m_pImageProcParams->Saturation = min(0.0, max(2.0, m_pImageProcParams->Saturation)); + m_pImageProcParams->Saturation = min(2.0, max(0.0, m_pImageProcParams->Saturation)); this->Invalidate(FALSE); } From 821f8d3ca8cb7442586f5374560bac9b47ddd0eb Mon Sep 17 00:00:00 2001 From: "Tau-er\\Bobbster" Date: Mon, 25 Oct 2021 00:56:07 +0200 Subject: [PATCH 4/4] Fixed a shortcut conflict I created when I remapped the Sharpen increase/decrease shortcut. --- JPEGView/Config/KeyMap.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/JPEGView/Config/KeyMap.txt b/JPEGView/Config/KeyMap.txt index 00ec809e..84dc896c 100644 --- a/JPEGView/Config/KeyMap.txt +++ b/JPEGView/Config/KeyMap.txt @@ -145,14 +145,14 @@ Ctrl+Alt+Plus IDM_COLOR_CORRECTION_INC Ctrl+Plus IDM_CONTRAST_INC Shift+Plus IDM_GAMMA_INC Alt+Plus IDM_SATURATION_INC -Ctrl+Alt+Plus IDM_SHARPEN_INC +Ctrl+Alt+Shift+Plus IDM_SHARPEN_INC Minus IDM_ZOOM_DEC Ctrl+Shift+Minus IDM_CONTRAST_CORRECTION_DEC Ctrl+Alt+Minus IDM_COLOR_CORRECTION_DEC Ctrl+Minus IDM_CONTRAST_DEC Shift+Minus IDM_GAMMA_DEC Alt+Minus IDM_SATURATION_DEC -Ctrl+Alt+Minus IDM_SHARPEN_DEC +Ctrl+Alt+Shift+Minus IDM_SHARPEN_DEC F2 IDM_SHOW_FILEINFO Ctrl+F2 IDM_SHOW_FILENAME F3 IDM_TOGGLE_RESAMPLING_QUALITY