Merge branch 'dev' into clear-pp3-bug-fix
This commit is contained in:
commit
d3dca005eb
6
.github/workflows/codeql.yml
vendored
6
.github/workflows/codeql.yml
vendored
@ -41,13 +41,13 @@ jobs:
|
||||
echo "Running apt update."
|
||||
sudo apt update
|
||||
echo "Installing dependencies with apt."
|
||||
DEBIAN_FRONTEND=noninteractive sudo apt install -y cmake libgtk-3-dev libgtkmm-3.0-dev liblensfun-dev librsvg2-dev liblcms2-dev libfftw3-dev libiptcdata0-dev libtiff5-dev libcanberra-gtk3-dev liblensfun-bin libexiv2-dev libtcmalloc-minimal4 libhwy0 libhwy-dev
|
||||
DEBIAN_FRONTEND=noninteractive sudo apt install -y cmake libgtk-3-dev libgtkmm-3.0-dev liblensfun-dev librsvg2-dev liblcms2-dev libfftw3-dev libiptcdata0-dev libtiff5-dev libcanberra-gtk3-dev liblensfun-bin libexiv2-dev libtcmalloc-minimal4 libhwy-dev libopenexr-dev libgif-dev
|
||||
|
||||
- name: Install libjxl
|
||||
run: |
|
||||
echo "Downloading and installing libjxl..."
|
||||
VERSION_UBUNTU=22.04
|
||||
VERSION_JXL=0.10.3
|
||||
VERSION_UBUNTU=24.04
|
||||
VERSION_JXL=0.11.1
|
||||
curl -Ss -qgb "" -fLC - --retry 3 --retry-delay 3 -o libjxl-debs.tar.gz \
|
||||
"https://github.com/libjxl/libjxl/releases/download/v${VERSION_JXL}/jxl-debs-amd64-ubuntu-${VERSION_UBUNTU}-v${VERSION_JXL}.tar.gz"
|
||||
tar xf libjxl-debs.tar.gz
|
||||
|
@ -1124,8 +1124,8 @@ HISTORY_MSG_888;Local - Contrast Wavelet Balance Threshold
|
||||
HISTORY_MSG_889;Local - Contrast Wavelet Graduated Strength
|
||||
HISTORY_MSG_890;Local - Contrast Wavelet Graduated angle
|
||||
HISTORY_MSG_891;Local - Contrast Wavelet Graduated
|
||||
HISTORY_MSG_892;Local - Log Encoding Graduated Strength
|
||||
HISTORY_MSG_893;Local - Log Encoding Graduated angle
|
||||
HISTORY_MSG_892;Local - Log encoding Graduated Strength
|
||||
HISTORY_MSG_893;Local - Log encoding Graduated angle
|
||||
HISTORY_MSG_894;Local - SD - ΔE preview color intensity
|
||||
HISTORY_MSG_897;Local - Contrast Wavelet ES strength
|
||||
HISTORY_MSG_898;Local - Contrast Wavelet ES radius
|
||||
@ -1191,7 +1191,7 @@ HISTORY_MSG_957;Local - Denoise mode
|
||||
HISTORY_MSG_958;Local - Show/hide settings
|
||||
HISTORY_MSG_959;Local - Inverse blur
|
||||
HISTORY_MSG_960;Local - Log encoding - cat16
|
||||
HISTORY_MSG_961;Local - Log encoding Ciecam
|
||||
HISTORY_MSG_961;Local - Log encoding CIECAM
|
||||
HISTORY_MSG_962;Local - Log encoding Absolute luminance source
|
||||
HISTORY_MSG_963;Local - Log encoding Absolute luminance target
|
||||
HISTORY_MSG_964;Local - Log encoding Surround
|
||||
@ -1308,9 +1308,9 @@ HISTORY_MSG_1075;Local - CIECAM Surround viewing
|
||||
HISTORY_MSG_1076;Local - CIECAM Scope
|
||||
HISTORY_MSG_1077;Local - CIECAM Mode
|
||||
HISTORY_MSG_1078;Local - Red and skin protection
|
||||
HISTORY_MSG_1079;Local - CIECAM Sigmoid strength J
|
||||
HISTORY_MSG_1080;Local - CIECAM Sigmoid threshold
|
||||
HISTORY_MSG_1081;Local - CIECAM Sigmoid blend
|
||||
HISTORY_MSG_1079;Local - CIECAM Sigmoid Q Contrast
|
||||
HISTORY_MSG_1080;Local - CIECAM Sigmoid Q Skew
|
||||
HISTORY_MSG_1081;Local - CIECAM Sigmoid Q Display white point
|
||||
HISTORY_MSG_1082;Local - CIECAM Auto threshold
|
||||
HISTORY_MSG_1083;Local - CIECAM Hue
|
||||
HISTORY_MSG_1084;Local - Uses Black Ev - White Ev
|
||||
@ -1318,9 +1318,9 @@ HISTORY_MSG_1085;Local - Jz lightness
|
||||
HISTORY_MSG_1086;Local - Jz contrast
|
||||
HISTORY_MSG_1087;Local - Jz chroma
|
||||
HISTORY_MSG_1088;Local - Jz hue
|
||||
HISTORY_MSG_1089;Local - Jz Sigmoid strength
|
||||
HISTORY_MSG_1090;Local - Jz Sigmoid threshold
|
||||
HISTORY_MSG_1091;Local - Jz Sigmoid blend
|
||||
HISTORY_MSG_1089;Local - Jz Sigmoid contrast
|
||||
HISTORY_MSG_1090;Local - Jz Sigmoid skew
|
||||
HISTORY_MSG_1091;Local - Jz Sigmoid Display White point
|
||||
HISTORY_MSG_1092;Local - Jz adaptation
|
||||
HISTORY_MSG_1093;Local - CAM model
|
||||
HISTORY_MSG_1094;Local - Jz highligths
|
||||
@ -1376,9 +1376,9 @@ HISTORY_MSG_1143;Local - Jz blackev
|
||||
HISTORY_MSG_1144;Local - Jz whiteev
|
||||
HISTORY_MSG_1145;Local - Jz Log encoding
|
||||
HISTORY_MSG_1146;Local - Jz Log encoding target gray
|
||||
HISTORY_MSG_1147;Local - Jz BlackEv WhiteEv
|
||||
HISTORY_MSG_1147;Local - Jz Scale Yb scene
|
||||
HISTORY_MSG_1148;Local - Jz Sigmoid
|
||||
HISTORY_MSG_1149;Local - Q Sigmoid
|
||||
HISTORY_MSG_1149;Local - Q Sigmoid & Slope based
|
||||
HISTORY_MSG_1150;Local - Log encoding Q instead Sigmoid Q
|
||||
HISTORY_MSG_BLSHAPE;Blur by level
|
||||
HISTORY_MSG_BLURCWAV;Blur chroma
|
||||
@ -1465,23 +1465,39 @@ HISTORY_MSG_ICM_GAMUT;Gamut control
|
||||
HISTORY_MSG_ICM_GREX;Primaries Green X
|
||||
HISTORY_MSG_ICM_GREY;Primaries Green Y
|
||||
HISTORY_MSG_ICM_MIDTCIE;Midtones
|
||||
HISTORY_MSG_ICM_OFFSTRC;Offset
|
||||
HISTORY_MSG_ICM_OPACITYW;Offset
|
||||
HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries
|
||||
HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D
|
||||
HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type
|
||||
HISTORY_MSG_ICM_PRESER;Preserve neutral
|
||||
HISTORY_MSG_ICM_PYRWAVTRC;Contrast profile
|
||||
HISTORY_MSG_ICM_REDX;Primaries Red X
|
||||
HISTORY_MSG_ICM_REDY;Primaries Red Y
|
||||
HISTORY_MSG_ICM_REFI;Refinement Colors
|
||||
HISTORY_MSG_ICM_RESIDTRC;Residual contrast
|
||||
HISTORY_MSG_ICM_SIGMATRC;Local contrast Attenation response
|
||||
HISTORY_MSG_ICM_SHIFTX;Refinement Colors - Shift x
|
||||
HISTORY_MSG_ICM_SHIFTY;Refinement Colors - Shift y
|
||||
HISTORY_MSG_ICM_SMOOTHCIE;Smooth highlights
|
||||
HISTORY_MSG_ICM_TRCEXP;Abstract Profile
|
||||
HISTORY_MSG_ICM_WAVEXP;Contrast Enhancement
|
||||
HISTORY_MSG_ICM_WORKING_GAMMA;TRC - Gamma
|
||||
HISTORY_MSG_ICM_WORKING_ILLUM_METHOD;Illuminant method
|
||||
HISTORY_MSG_ICM_WORKING_PRIM_METHOD;Primaries method
|
||||
HISTORY_MSG_ICM_WORKING_SLOPE;TRC - Slope
|
||||
HISTORY_MSG_ICM_WORKING_TRC_METHOD;TRC method
|
||||
HISTORY_MSG_ILLUM;CAL - SC - Illuminant
|
||||
HISTORY_MSG_LOCAL_CIE_CONTSIG;Local CIECAM - Sigmoid contrast
|
||||
HISTORY_MSG_LOCAL_CIE_SKEWSIG;Local CIECAM - Sigmoid skew
|
||||
HISTORY_MSG_LOCAL_CIE_SMOOTHTH;Local CIECAM - Attenuation threshold
|
||||
HISTORY_MSG_LOCAL_CIE_SMOOTHLNK;Local CIECAM - Link R G B
|
||||
HISTORY_MSG_LOCAL_CIE_WEVMETHOD11;Local CIECAM - Black Ev White Ev
|
||||
HISTORY_MSG_LOCAL_CIE_WHITSIG;Local CIECAM - Sigmoid Display white point
|
||||
HISTORY_MSG_LOCAL_CIE_SMOOTH_HIGH;Local CIECAM - Highlight Attenuation only
|
||||
HISTORY_MSG_LOCAL_CIE_SMOOTHTRC;Local CIECAM - Gamma based Highlight attenuation
|
||||
HISTORY_MSG_LOCAL_CIE_SMOOTHTRCREL;Local CIECAM - Relative gamma mode
|
||||
HISTORY_MSG_LOCAL_OFFSETWAV;Local Wav offset
|
||||
HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount
|
||||
HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness
|
||||
HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast
|
||||
@ -1516,7 +1532,7 @@ HISTORY_MSG_LOCAL_CIE_GREYL;Local - CIECAM Green Y
|
||||
HISTORY_MSG_LOCAL_CIE_ILL;Local - CIECAM TRC Illuminant
|
||||
HISTORY_MSG_LOCAL_CIE_LOGCIEQ;Local - CIECAM Log encoding Q
|
||||
HISTORY_MSG_LOCAL_CIE_MIDT;Local - CIECAM Mid Tones
|
||||
HISTORY_MSG_LOCAL_CIE_NORM;Local - CIECAM Normalize L
|
||||
HISTORY_MSG_LOCAL_CIE_NORM11;Local - CIECAM Normalize luminance 5.11
|
||||
HISTORY_MSG_LOCAL_CIE_PRIM;Local - CIECAM TRC primaries
|
||||
HISTORY_MSG_LOCAL_CIE_REDXL;Local - CIECAM Red X
|
||||
HISTORY_MSG_LOCAL_CIE_REDYL;Local - CIECAM Red Y
|
||||
@ -1525,10 +1541,11 @@ HISTORY_MSG_LOCAL_CIE_SATCIE;Local - CIECAM Saturation control
|
||||
HISTORY_MSG_LOCAL_CIE_SHIFTXL;Local - CIECAM Shift x
|
||||
HISTORY_MSG_LOCAL_CIE_SHIFTYL;Local - CIECAM Shift y
|
||||
HISTORY_MSG_LOCAL_CIE_SIG;Local - Sigmoid
|
||||
HISTORY_MSG_LOCAL_CIE_SIGADAP;Local - CIECAM Sigmoid adaptability
|
||||
HISTORY_MSG_LOCAL_CIE_SIGMET;Local - CIECAM Sigmoid method
|
||||
HISTORY_MSG_LOCAL_CIE_SIGADAP;Local - CIECAM Sigmoid adaptability 5.11
|
||||
HISTORY_MSG_LOCAL_CIE_SIGMET;Local - CIECAM Tone mapping Q
|
||||
HISTORY_MSG_LOCAL_CIE_SLOP;Local - CIECAM Slope
|
||||
HISTORY_MSG_LOCAL_CIE_SLOPESMO;Local - CIECAM Gray balance
|
||||
HISTORY_MSG_LOCAL_CIE_SLOPESMOQ;Local - CIECAM Gray balance
|
||||
HISTORY_MSG_LOCAL_CIE_SLOPESMOB;Local - CIECAM Blue balance
|
||||
HISTORY_MSG_LOCAL_CIE_SLOPESMOG;Local - CIECAM Green balance
|
||||
HISTORY_MSG_LOCAL_CIE_SLOPESMOR;Local - CIECAM Red balance
|
||||
@ -1554,7 +1571,21 @@ HISTORY_MSG_LOCAL_LOG_BLACKS;Local - Log Blacks distribution
|
||||
HISTORY_MSG_LOCAL_LOG_COMPR;Local - Log Compress brightness
|
||||
HISTORY_MSG_LOCAL_LOG_SAT;Local - Log Saturation control
|
||||
HISTORY_MSG_LOCAL_LOG_WHITES;Local - Log Whites distribution
|
||||
HISTORY_MSG_LOCAL_LOGCIE12;Local - CIECAM - Log encoding
|
||||
HISTORY_MSG_LOCAL_PROCESSWAV;Local - Wavelets - Show modifications
|
||||
HISTORY_MSG_LOCAL_TMO_SATUR;Local Exp Fattal Saturation
|
||||
HISTORY_MSG_LOCAL_QJMETHOD;Local - CIECAM Tone mapping operator Q and J
|
||||
HISTORY_MSG_LOCAL_SIGDACIE;Local - CIECAM Contrast 5.11
|
||||
HISTORY_MSG_LOCAL_SIGTHCIE;Local - CIECAM Threshold 5.11
|
||||
HISTORY_MSG_LOCAL_SIGBLCIE;Local - CIECAM Blend 5.11
|
||||
HISTORY_MSG_LOCAL_SIGQ11;Local - CIECAM Sigmoid Q - deprecated
|
||||
HISTORY_MSG_LOCAL_SIGQ12;Local - CIECAM Sigmoid Q and Slope based
|
||||
HISTORY_MSG_LOCAL_SIGSENSICIE;Local - CIECAM Adaptability 5.11
|
||||
HISTORY_MSG_LOCAL_SIGJZ11;Local - Jz Sigmoid J 5.11
|
||||
HISTORY_MSG_LOCAL_SIGFORCEBW;Local - Jz White Ev and Black Ev 5.11
|
||||
HISTORY_MSG_LOCAL_SIGJZ11CONT;Local - Jz Contrast 5.11
|
||||
HISTORY_MSG_LOCAL_SIGJZ11GRAY;Local - Jz Threshold 5.11
|
||||
HISTORY_MSG_LOCAL_SIGJZ11BL;Local - Jz Blend 5.11
|
||||
HISTORY_MSG_METADATA_MODE;Metadata copy mode
|
||||
HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontrast - Contrast threshold
|
||||
HISTORY_MSG_PDSHARPEN_AUTO_CONTRAST;CS - Auto threshold
|
||||
@ -1968,7 +1999,7 @@ PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction
|
||||
PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic
|
||||
PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic
|
||||
PREFERENCES_CHUNKSIZE_RGB;RGB processing
|
||||
PREFERENCES_CIE;Ciecam
|
||||
PREFERENCES_CIE;CIECAM
|
||||
PREFERENCES_CIEARTIF;Avoid artifacts
|
||||
PREFERENCES_CLIPPINGIND;Clipping Indication
|
||||
PREFERENCES_CLUTSCACHE;HaldCLUT Cache
|
||||
@ -2282,6 +2313,8 @@ SORT_DESCENDING;Descending
|
||||
TC_LOCALLAB_PRIM_SHIFTX;Shift x
|
||||
TC_LOCALLAB_PRIM_SHIFTX_TOOLTIP;In combination with "Refine colors", allows you to:\n 1) for low values, adjust the image purity.\n 2) for higher values, carry out moderate color toning.\nBe careful not to go outside the CIE xy diagram.
|
||||
TC_LOCALLAB_PRIM_SHIFTY;Shift y
|
||||
TP_LOCALLAB_PROCESSWAV;Show modified areas with Wavelets
|
||||
TP_LOCALLAB_PROCESSWAV_TOOLTIP;Wavelet decomposition:\nShows the changes made by the wavelet settings.\n\nYou see the changes made to the decomposed image, factoring in the deltaE and transitions, when you modify the wavelet settings. Note that this is different from Wavelet levels in the Advanced tab in which you always see the results of the decomposition.
|
||||
TC_PRIM_BLUX;Bx
|
||||
TC_PRIM_BLUY;By
|
||||
TC_PRIM_GREX;Gx
|
||||
@ -2418,7 +2451,7 @@ TP_COLORAPP_DEGREOUT_TOOLTIP;CAT02/16 is a chromatic adaptation. It converts the
|
||||
TP_COLORAPP_FREE;Free temp + tint + CAT02/16 +[output]
|
||||
TP_COLORAPP_GAMUT;Use gamut control in L*a*b* mode
|
||||
TP_COLORAPP_GEN;Settings
|
||||
TP_COLORAPP_GEN_TOOLTIP;This module is based on the CIECAM color appearance models, which were designed to better simulate how human vision perceives colors under different lighting conditions, e.g. against different backgrounds. It takes into account the environment of each color and modifies its appearance to get as close as possible to human perception. It also adapts the output to the intended viewing conditions (monitor, TV, projector, printer, etc.) so that the chromatic appearance is preserved across the scene and display environments.
|
||||
TP_COLORAPP_GEN_TOOLTIP;This module is based on the CIECAM Color Appearance models, which were designed to better simulate how human vision perceives colors under different lighting conditions, e.g. against different backgrounds. It takes into account the environment of each color and modifies its appearance to get as close as possible to human perception. It also adapts the output to the intended viewing conditions (monitor, TV, projector, printer, etc.) so that the chromatic appearance is preserved across the scene and display environments.
|
||||
TP_COLORAPP_HUE;Hue (h)
|
||||
TP_COLORAPP_HUE_TOOLTIP;Hue (h) is the degree to which a stimulus can be described as similar to a color described as red, green, blue and yellow.
|
||||
TP_COLORAPP_IL41;D41
|
||||
@ -2816,9 +2849,11 @@ TP_ICM_LABEL;Color Management
|
||||
TP_ICM_LABGRID_CIEXY;R(x)=%1 R(y)=%2\nG(x)=%3 G(y)=%4\nB(x)=%5 B(y)=%6
|
||||
TP_ICM_NEUTRAL;Reset
|
||||
TP_ICM_NOICM;No ICM: sRGB Output
|
||||
TP_ICM_OPACITYWLI;Variable contrast
|
||||
TP_ICM_OUTPUTPROFILE;Output Profile
|
||||
TP_ICM_OUTPUTPROFILE_TOOLTIP;By default all RTv4 or RTv2 profiles are with TRC - sRGB: g=2.4 s=12.92\n\nWith 'ICC Profile Creator' you can generate v4 or v2 profiles with the following choices;\n-Primaries: Aces AP0, Aces AP1, AdobeRGB, Prophoto, Rec2020, sRGB, Widegamut, BestRGB, BetaRGB, BruceRGB, Custom\n-TRC: BT709, sRGB, linear, standard g=2.2, standard g=1.8, Custom\n-Illuminant: D41, D50, D55, D60, D65, D80, stdA 2856K
|
||||
TP_ICM_PRIMBLU_TOOLTIP;Primaries Blue:\nsRGB x=0.15 y=0.06\nAdobe x=0.15 y=0.06\nWidegamut x=0.157 y=0.018\nRec2020 x=0.131 y=0.046\nACES P1 x=0.128 y= 0.044\nACES P0 x=0.0001 y=-0.077\nProphoto x=0.0366 y=0.0001\nBruceRGB x=0.15 y=0.06\nBeta RGB x=0.1265 y=0.0352\nBestRGB x=0.131 y=0.046
|
||||
TP_ICM_PRIMFRAME;Primaries & Illuminant
|
||||
TP_ICM_PRIMGRE_TOOLTIP;Primaries Green:\nsRGB x=0.3 y=0.6\nAdobe x=0.21 y=0.71\nWidegamut x=0.115 y=0.826\nRec2020 x=0.17 y=0.797\nACES P1 x=0.165 y= 0.83\nACES P0 x=0.0 y=1.0\nProphoto x=0.1596 y=0.8404\nBruceRGB x=0.28 y=0.65\nBeta RGB x=0.1986 y=0.7551\nBest RGB x=0.2150 0.7750
|
||||
TP_ICM_PRIMILLUM_TOOLTIP;You can change an image from its original mode ('working profile') to a different mode ('destination primaries'). When you choose a different color mode for an image, you permanently change the color values in the image.\n\nChanging the 'primaries' is quite complex and difficult to use. It requires a lot of experimenting.\n It is capable of making exotic color adjustments as Channel Mixer primaries.\n Allows you to modify the camera calibration with Custom (sliders).
|
||||
TP_ICM_PRIMRED_TOOLTIP;Primaries Red:\nsRGB x=0.64 y=0.33\nAdobe x=0.64 y=0.33\nWidegamut x=0.735 y=0.265\nRec2020 x=0.708 y=0.292\nACES P1 x=0.713 y= 0.293\nACES P0 x=0.7347 y=0.2653\nProphoto x=0.7347 y=0.2653\nBruceRGB x=0.64 y=0.33\nBeta RGB x=0.688 y=0.3112\nBestRGB x=0.7347 y=0.2653
|
||||
@ -2828,11 +2863,14 @@ TP_ICM_SAVEREFERENCE;Save Reference Image
|
||||
TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance
|
||||
TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles.
|
||||
TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile.
|
||||
TP_ICM_SMOOTHFRAME;Highlight attenuation
|
||||
TP_ICM_TONECURVE;Tone curve
|
||||
TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve.
|
||||
TP_ICM_TRCFRAME;Abstract Profile
|
||||
TP_ICM_TRCFRAME_TOOLTIP;Also known as 'synthetic' or 'virtual' profiles, which are applied at the end of the processing pipeline (prior to CIECAM) allowing you to create custom image effects.\nYou can make changes to the:\n 'Tone response curve', which modifies the tones of the image.\n 'Illuminant', which allows you to change the profile primaries to adapt them to the shooting conditions.\n 'Destination primaries', which allows you to change the destination primaries with three main uses - channel mixer, restore image color (saturation), and calibration.\nNote: Abstract profiles take into account the built-in working profiles without modifying them. They do not work with custom working profiles.
|
||||
TP_ICM_TRC_TOOLTIP;Allows you to change the default sRGB 'Tone response curve' in RT (g=2.4 s=12.92).\nThis TRC modifies the tones of the image. The RGB and Lab values, histogram and output (screen, TIF, JPG) are changed:\n-Gamma acts mainly on light tones -Slope acts mainly on dark tones.\nYou can choose any pair of 'gamma and slope' (values >1) and the algorithm will ensure that there is continuity between the linear and parabolic parts of the curve.\nA selection other than 'none' activates the 'Illuminant' and 'Destination primaries' menus.
|
||||
TP_ICM_WAVFRAME;Contrast Enhancement
|
||||
TP_ICM_WAVREFI;Refinement
|
||||
TP_ICM_WORKINGPROFILE;Working Profile
|
||||
TP_ICM_WORKING_CAT;Matrix adaptation
|
||||
TP_ICM_WORKING_CAT_BRAD;Bradford
|
||||
@ -2876,6 +2914,7 @@ TP_ICM_WORKING_PRIM_REC;Rec2020
|
||||
TP_ICM_WORKING_PRIM_SRGB;sRGB
|
||||
TP_ICM_WORKING_PRIM_TOOLTIP;Performs a gamut control. Destination primaries (Advanced) allows you to change the destination primaries to restore or change image color (saturation). The color balance is significantly preserved when the 'Working Profile' and the 'Destination primaries' are similar. 'Working Profile' is not modified.\nWhen 'Custom LA (sliders)' is selected, you can modify the values of the 3 primaries (Red, Green, and Blue) for x and y.
|
||||
TP_ICM_WORKING_PRIM_WID;WideGamut
|
||||
TP_ICM_WORKING_SMOOTH;Highlight attenuation
|
||||
TP_ICM_WORKING_TRC;Tone response curve:
|
||||
TP_ICM_WORKING_TRC_18;Prophoto g=1.8
|
||||
TP_ICM_WORKING_TRC_22;Adobe g=2.2
|
||||
@ -2999,12 +3038,14 @@ TP_LOCALLAB_BUTTON_DUPL;Duplicate
|
||||
TP_LOCALLAB_BUTTON_REN;Rename
|
||||
TP_LOCALLAB_BUTTON_VIS;Show/Hide
|
||||
TP_LOCALLAB_BWEVNONE;None
|
||||
TP_LOCALLAB_BWEVSIG;Activated
|
||||
TP_LOCALLAB_BWEVSIGLOG;Sigmoid & Log-Encoding
|
||||
TP_LOCALLAB_BWEVSIG;Sigmoid
|
||||
TP_LOCALLAB_BWEVSLOP;Slope based
|
||||
TP_LOCALLAB_BWEVNONE11;None
|
||||
TP_LOCALLAB_BWEVSIG11;Activated
|
||||
TP_LOCALLAB_BWFORCE;Uses Black Ev & White Ev
|
||||
TP_LOCALLAB_CAM16PQREMAP;HDR PQ (Peak Luminance)
|
||||
TP_LOCALLAB_CAM16PQREMAP_TOOLTIP;PQ (Perceptual Quantizer) adapted to CAM16 (experimental). Allows you to change the internal PQ function (usually 10000 cd/m2 - default 100 cd/m2 - disabled for 100 cd/m2).\nCan be used to adapt to different devices and images, for example, to match CAM16 processing with the maximum monitor brightness of 400cd/m2.
|
||||
TP_LOCALLAB_CAM16_FRA;Cam16 Image Adjustments
|
||||
TP_LOCALLAB_CAM16_FRA;CAM16 Image Adjustments
|
||||
TP_LOCALLAB_CAMMODE;CAM model
|
||||
TP_LOCALLAB_CAMMODE_CAM16;CAM16
|
||||
TP_LOCALLAB_CAMMODE_JZ;Jz Cz Hz
|
||||
@ -3029,9 +3070,13 @@ TP_LOCALLAB_CHROMASKCOL;Chroma
|
||||
TP_LOCALLAB_CHROMASK_TOOLTIP;Changes the chroma of the mask if one exists (i.e. C(C) or LC(H) is activated).
|
||||
TP_LOCALLAB_CHROML;Chroma (C)
|
||||
TP_LOCALLAB_CHRRT;Chroma
|
||||
TP_LOCALLAB_CIE;Color appearance (Cam16 & JzCzHz)
|
||||
TP_LOCALLAB_CIEC;Use Ciecam environment parameters
|
||||
TP_LOCALLAB_CIECAMLOG_TOOLTIP;This module is based on the CIECAM color appearance model which was designed to better simulate how human vision perceives colors under different lighting conditions.\nThe first Ciecam process 'Scene conditions' is carried out by Log encoding, it also uses 'Absolute luminance' at the time of shooting.\nThe second Ciecam process 'Image adjustments' is simplified and uses only 3 variables (local contrast, contrast J, saturation s).\nThe third Ciecam process 'Viewing conditions' adapts the output to the intended viewing conditions (monitor, TV, projector, printer, etc.) so that the chromatic and contrast appearance is preserved across the display environment.
|
||||
TP_LOCALLAB_CIE;Color Appearance (CAM16 & JzCzHz)
|
||||
TP_LOCALLAB_CIE_SMOOTHFRAME12;Tone Mapping Operators
|
||||
TP_LOCALLAB_CIE_SMOOTH_LEVELS;RGB channel Slope
|
||||
TP_LOCALLAB_CIE_SMOOTH_LEVELSTRC;RGB channel TRC
|
||||
TP_LOCALLAB_CIE_SMOOTH_SIG;Sigmoid based
|
||||
TP_LOCALLAB_CIEC;Use CIECAM environment parameters
|
||||
TP_LOCALLAB_CIECAMLOG_TOOLTIP;This module is based on the CIECAM Color Appearance model which was designed to better simulate how human vision perceives colors under different lighting conditions.\nThe first CIECAM process 'Scene conditions' is carried out by Log encoding, it also uses 'Absolute luminance' at the time of shooting.\nThe second CIECAM process 'Image adjustments' is simplified and uses only 3 variables (local contrast, contrast J, saturation s).\nThe third CIECAM process 'Viewing conditions' adapts the output to the intended viewing conditions (monitor, TV, projector, printer, etc.) so that the chromatic and contrast appearance is preserved across the display environment.
|
||||
TP_LOCALLAB_CIECOLORFRA;Color
|
||||
TP_LOCALLAB_CIECONTFRA;Contrast
|
||||
TP_LOCALLAB_CIELIGHTCONTFRA;Lighting & Contrast
|
||||
@ -3040,7 +3085,7 @@ TP_LOCALLAB_CIEMODE;Change tool position
|
||||
TP_LOCALLAB_CIEMODE_COM;Default
|
||||
TP_LOCALLAB_CIEMODE_DR;Dynamic Range
|
||||
TP_LOCALLAB_CIEMODE_TM;Tone-Mapping
|
||||
TP_LOCALLAB_CIEMODE_TOOLTIP;In Default mode, Ciecam is added at the end of the process. 'Mask and modifications' and 'Recovery based on luminance mask' are available for'Cam16 and JzCzHz' at your disposal .\nYou can also integrate Ciecam into other tools if you wish (TM, Wavelet, Dynamic Range, Log Encoding). The results for these tools will be different to those without Ciecam. In this mode, you can also use 'Mask and modifications' and 'Recovery based on luminance mask'.
|
||||
TP_LOCALLAB_CIEMODE_TOOLTIP;In Default mode, CIECAM is added at the end of the process. 'Mask And Modifications' and 'Recovery Based On Luminance Mask' are available for'CAM16 and JzCzHz' at your disposal .\nYou can also integrate CIECAM into other tools if you wish (TM, Wavelet, Dynamic Range, Log encoding). The results for these tools will be different to those without CIECAM. In this mode, you can also use 'Mask And Modifications' and 'Recovery Based On Luminance Mask'.
|
||||
TP_LOCALLAB_CIEMODE_WAV;Wavelet
|
||||
TP_LOCALLAB_CIETOOLEXP;Curves
|
||||
TP_LOCALLAB_CIE_SMOOTHFRAME;Highlight Attenuation & Levels
|
||||
@ -3049,7 +3094,7 @@ TP_LOCALLAB_CIE_SMOOTH_GAMMA;Slope based
|
||||
TP_LOCALLAB_CIE_SMOOTH_GAMMA ROLLOFF;Gamma based
|
||||
TP_LOCALLAB_CIE_SMOOTH_LEVELS;Levels
|
||||
TP_LOCALLAB_CIE_SMOOTH_NONE;None
|
||||
TP_LOCALLAB_CIE_TOOLNAME;Color appearance (Cam16 & JzCzHz)
|
||||
TP_LOCALLAB_CIE_TOOLNAME;Color Appearance (CAM16 & JzCzHz)
|
||||
TP_LOCALLAB_CIRCRADIUS;Spot size
|
||||
TP_LOCALLAB_CIRCRAD_TOOLTIP;Contains the references of the spot, useful for shape detection (hue, luma, chroma, Sobel).\nLow values may be useful for processing foliage.\nHigh values may be useful for processing skin.
|
||||
TP_LOCALLAB_CLARICRES;Merge chroma
|
||||
@ -3064,9 +3109,9 @@ TP_LOCALLAB_CLARI_TOOLTIP;Levels 0 to 4 (included): 'Sharp mask' is enabled\nLev
|
||||
TP_LOCALLAB_CLIPTM;Clip restored data (gain)
|
||||
TP_LOCALLAB_COFR;Color & Light
|
||||
TP_LOCALLAB_COLORDE;ΔE preview color - intensity
|
||||
TP_LOCALLAB_COLORDEPREV_TOOLTIP;Preview ΔE button in Settings will only work if you have activated 'Sharpening', 'Soft Light and Original Retinex', 'Blur/Grain and Denoise', 'Dehaze and Retinex', or 'Contrast by Detail Levels' in the 'Add tool to current spot' menu.\nFor others tools, the Preview ΔE button is in the tool, which allows previewing ΔE with several tools enabled. Prefer using Mask and modifications.
|
||||
TP_LOCALLAB_COLORDE_TOOLTIP;Show a blue color preview for ΔE selection if negative and green if positive.\n\nMask and modifications (show modified areas without mask): show actual modifications if positive, show enhanced modifications (luminance only) with blue and yellow if negative.
|
||||
TP_LOCALLAB_COLORFRAME;Dominant color
|
||||
TP_LOCALLAB_COLORDEPREV_TOOLTIP;Preview ΔE button in Settings will only work if you have activated 'Sharpening', 'Soft Light and Original Retinex', 'Blur/Grain and Denoise', 'Dehaze and Retinex', or 'Contrast by Detail Levels' in the 'Add tool to current spot' menu.\nFor others tools, the Preview ΔE button is in the tool, which allows previewing ΔE with several tools enabled. Prefer using Mask And Modifications.
|
||||
TP_LOCALLAB_COLORDE_TOOLTIP;Show a blue color preview for ΔE selection if negative and green if positive.\n\nMask And Modifications (show modified areas without mask): show actual modifications if positive, show enhanced modifications (luminance only) with blue and yellow if negative.
|
||||
TP_LOCALLAB_COLORFRAME;Dominant Color
|
||||
TP_LOCALLAB_COLORSCOPE;Scope (color tools)
|
||||
TP_LOCALLAB_COLORSCOPE_TOOLTIP;Common Scope slider for Color and Light, Shadows/Highlights, Vibrance.\nOther tools have their own scope controls.
|
||||
TP_LOCALLAB_COLOR_CIE;Color curve
|
||||
@ -3106,8 +3151,8 @@ TP_LOCALLAB_DEHAZFRAME_TOOLTIP;Removes atmospheric haze. Increases overall satur
|
||||
TP_LOCALLAB_DEHAZ_TOOLTIP;Negative values add haze.
|
||||
TP_LOCALLAB_DELTAD;Delta balance
|
||||
TP_LOCALLAB_DELTAEC;ΔE Image mask
|
||||
TP_LOCALLAB_DENOI1_EXP;Denoise based on luminance mask
|
||||
TP_LOCALLAB_DENOI2_EXP;Recovery based on luminance mask
|
||||
TP_LOCALLAB_DENOI1_EXP;Denoise Based On Luminance Mask
|
||||
TP_LOCALLAB_DENOI2_EXP;Recovery Based On Luminance Mask
|
||||
TP_LOCALLAB_DENOIBILAT_TOOLTIP;Allows you to reduce impulse or 'salt & pepper' noise.
|
||||
TP_LOCALLAB_DENOICHROC_TOOLTIP;Allows you to deal with blotches and packets of noise.
|
||||
TP_LOCALLAB_DENOICHRODET_TOOLTIP;Allows you to recover chrominance detail by progressively applying a Fourier transform (DCT).
|
||||
@ -3128,7 +3173,7 @@ TP_LOCALLAB_DETAIL;Local contrast
|
||||
TP_LOCALLAB_DETAILFRA;Edge detection - DCT
|
||||
TP_LOCALLAB_DETAILSH;Details
|
||||
TP_LOCALLAB_DETAILTHR;Lum/chrom detail threshold
|
||||
TP_LOCALLAB_DISAB_CIECAM;Disable Ciecam or Weak Jz surround
|
||||
TP_LOCALLAB_DISAB_CIECAM;Disable CIECAM or Weak Jz surround
|
||||
TP_LOCALLAB_DIVGR;Gamma
|
||||
TP_LOCALLAB_DUPLSPOTNAME;Copy
|
||||
TP_LOCALLAB_EDGFRA;Edge sharpness
|
||||
@ -3203,7 +3248,7 @@ TP_LOCALLAB_GAM;Gamma
|
||||
TP_LOCALLAB_GAMC;Gamma
|
||||
TP_LOCALLAB_GAMCOL_TOOLTIP;Apply a gamma on Luminance L*a*b* datas.\nIf gamma = 3.0 Luminance 'linear' is used.
|
||||
TP_LOCALLAB_GAMC_TOOLTIP;Apply a gamma on Luminance L*a*b* datas before and after treatment Pyramid 1 and Pyramid 2.\nIf gamma = 3.0 Luminance 'linear' is used.
|
||||
TP_LOCALLAB_GAMFRA;Tone response curve (TRC)
|
||||
TP_LOCALLAB_GAMFRA;Tone Response Curve (TRC)
|
||||
TP_LOCALLAB_GAMM;Gamma
|
||||
TP_LOCALLAB_GAMMASKCOL;Gamma
|
||||
TP_LOCALLAB_GAMMASK_TOOLTIP;Adjusting Gamma and Slope can provide a soft and artifact-free transformation of the mask by progressively modifying 'L' to avoid any discontinuities.
|
||||
@ -3258,6 +3303,7 @@ TP_LOCALLAB_JZ100;Jz reference 100cd/m2
|
||||
TP_LOCALLAB_JZ100_TOOLTIP;Automatically adjusts the reference Jz 100 cd/m2 level (image signal).\nChanges the saturation level and action of 'PU adaptation' (Perceptual Uniform adaptation).
|
||||
TP_LOCALLAB_JZADAP;PU adaptation
|
||||
TP_LOCALLAB_JZCH;Chroma
|
||||
TP_LOCALLAB_JZCH;Chroma
|
||||
TP_LOCALLAB_JZCHROM;Chroma
|
||||
TP_LOCALLAB_JZCLARICRES;Merge chroma Cz
|
||||
TP_LOCALLAB_JZCLARILRES;Merge Jz
|
||||
@ -3267,16 +3313,17 @@ TP_LOCALLAB_JZFORCE_TOOLTIP;Allows you to force the maximum Jz value to 1 for be
|
||||
TP_LOCALLAB_JZFRA;Jz Cz Hz Image Adjustments
|
||||
TP_LOCALLAB_JZHFRA;Curves Hz
|
||||
TP_LOCALLAB_JZHJZFRA;Curve Jz(Hz)
|
||||
TP_LOCALLAB_JZHUECIE;Hue Rotation
|
||||
TP_LOCALLAB_JZHUECIE;Hue rotation
|
||||
TP_LOCALLAB_JZLIGHT;Brightness
|
||||
TP_LOCALLAB_JZLOG;Log encoding Jz
|
||||
TP_LOCALLAB_JZLOGWBS_TOOLTIP;Black Ev and White Ev adjustments can be different depending on whether Log encoding or Sigmoid is used.\nFor Sigmoid, a change (increase in most cases) of White Ev may be necessary to obtain a better rendering of highlights, contrast and saturation.
|
||||
TP_LOCALLAB_JZLOGWB_TOOLTIP;If Auto is enabled, it will calculate and adjust the Ev levels and the 'Mean luminance Yb%' for the spot area. The resulting values will be used by all Jz operations including 'Log Encoding Jz'.\nAlso calculates the absolute luminance at the time of shooting.
|
||||
TP_LOCALLAB_JZLOGYBOUT_TOOLTIP;Yb is the relative luminance of the background, expressed as a percentage of gray. 18% gray corresponds to a background luminance of 50% when expressed in CIE L.\nThe data is based on the mean luminance of the image.\nWhen used with Log Encoding, the mean luminance is used to determine the amount of gain that needs to be applied to the signal prior to the log encoding. Lower values of mean luminance will result in increased gain.
|
||||
TP_LOCALLAB_JZLOGWB_TOOLTIP;If Auto is enabled, it will calculate and adjust the Ev levels and the 'Mean luminance Yb%' for the spot area. The resulting values will be used by all Jz operations including 'Log encoding Jz'.\nAlso calculates the absolute luminance at the time of shooting.
|
||||
TP_LOCALLAB_JZLOGYBOUT_TOOLTIP;Yb is the relative luminance of the background, expressed as a percentage of gray. 18% gray corresponds to a background luminance of 50% when expressed in CIE L.\nThe data is based on the mean luminance of the image.\nWhen used with Log encoding, the mean luminance is used to determine the amount of gain that needs to be applied to the signal prior to the Log encoding. Lower values of mean luminance will result in increased gain.
|
||||
TP_LOCALLAB_JZMODECAM_TOOLTIP;Jz (only in 'Advanced' mode). Only operational if the output device (monitor) is HDR (peak luminance higher than 100 cd/m2 - ideally between 4000 and 10000 cd/m2. Black point luminance inferior to 0.005 cd/m2). This supposes a) the ICC-PCS for the screen uses Jzazbz (or XYZ), b) works in real precision, c) that the monitor is calibrated (if possible with a DCI-P3 or Rec-2020 gamut), d) that the usual gamma (sRGB or BT709) is replaced by a Perceptual Quantiser (PQ) function.
|
||||
TP_LOCALLAB_JZPQFRA;Jz remapping
|
||||
TP_LOCALLAB_JZPQFRA_TOOLTIP;Allows you to adapt the Jz algorithm to an SDR environment or to the characteristics (performance) of an HDR environment as follows:\n a) for luminance values between 0 and 100 cd/m2, the system behaves as if it were in an SDR environment.\n b) for luminance values between 100 and 10000 cd/m2, you can adapt the algorithm to the HDR characteristics of the image and the monitor.\n\nIf 'PQ - Peak luminance' is set to 10000, 'Jz remappping' behaves in the same way as the original Jzazbz algorithm.
|
||||
TP_LOCALLAB_JZPQREMAP;PQ - Peak luminance
|
||||
TP_LOCALLAB_JZPQREMAP;PQ - Peak luminance (cd/m2)
|
||||
TP_LOCALLAB_JZPQREMAP_TOOLTIP;PQ (Perceptual Quantizer) - allows you to change the internal PQ function (usually 10000 cd/m2 - default 120 cd/m2).\nCan be used to adapt to different images, processes and devices.
|
||||
TP_LOCALLAB_JZPQREMAP_TOOLTIP;PQ (Perceptual Quantizer) - allows you to change the internal PQ function (usually 10000 cd/m2 - default 120 cd/m2).\nCan be used to adapt to different images, processes and devices.
|
||||
TP_LOCALLAB_JZQTOJ;Relative luminance
|
||||
TP_LOCALLAB_JZQTOJ_TOOLTIP;Allows you to use 'Relative luminance' instead of 'Absolute luminance' - Brightness becomes Lightness.\nThe changes affect: the Brightness slider, the Contrast slider and the Jz(Jz) curve.
|
||||
@ -3285,7 +3332,7 @@ TP_LOCALLAB_JZSHFRA;Shadows/Highlights Jz
|
||||
TP_LOCALLAB_JZSOFTCIE;Soft radius (GuidedFilter)
|
||||
TP_LOCALLAB_JZSTRSOFTCIE;Strength GuidedFilter
|
||||
TP_LOCALLAB_JZTARGET_EV;Viewing Mean luminance (Yb%)
|
||||
TP_LOCALLAB_JZTHRHCIE;Threshold Chroma for Jz(Hz)
|
||||
TP_LOCALLAB_JZTHRHCIE;Threshold chroma for Jz(Hz)
|
||||
TP_LOCALLAB_JZWAVEXP;Wavelet Jz
|
||||
TP_LOCALLAB_LABBLURM;Blur Mask
|
||||
TP_LOCALLAB_LABEL;Selective Editing
|
||||
@ -3334,8 +3381,8 @@ TP_LOCALLAB_LOGAUTO_TOOLTIP;Pressing this button will calculate the dynamic rang
|
||||
TP_LOCALLAB_LOGBASE_TOOLTIP;Default = 2.\nValues less than 2 reduce the action of the algorithm making the shadows darker and the highlights brighter.\nWith values greater than 2, the shadows are grayer and the highlights become more washed out.
|
||||
TP_LOCALLAB_LOGCATAD_TOOLTIP;Chromatic adaptation allows us to interpret a color according to its spatio-temporal environment.\nUseful when the white balance deviates significantly from the D50 reference.\nAdapts colors to the illuminant of the output device.
|
||||
TP_LOCALLAB_LOGCIE;Log encoding
|
||||
TP_LOCALLAB_LOGCIEQ;Log Encoding Q (with Ciecam)
|
||||
TP_LOCALLAB_LOGCIEQ_TOOLTIP;Activating the checkbox allows you to switch between log encoding based on the 3 RGB channels, and log encoding based solely on Ciecam’s brightness (Q) channel.\nUsing the Q channel instead of the RGB channels helps avoid undesirable edge effects such as hue and saturation shifts.\nHowever, the settings are more difficult to optimise because Q is unbounded and Ciecam alters the data to take into account the surround conditions, simultaneous contrast, etc.\nYou may have to adjust the following:\n Scene conditions: Mean luminance (Yb), Whites & Blacks distribution, Black Ev, White Ev.\n Source Data Adjustments : Brightness compression, Strength.\n\nNote: when using Log Encoding (Q), be careful not to activate the Disable Ciecam option in the Scene Conditions, Surround menu.
|
||||
TP_LOCALLAB_LOGCIEQ;Log encoding Q with CIECAM (deprecated)
|
||||
TP_LOCALLAB_LOGCIEQ_TOOLTIP;Activating the checkbox allows you to switch between Log encoding based on the 3 RGB channels, and Log encoding based solely on CIECAM’s brightness (Q) channel.\nUsing the Q channel instead of the RGB channels helps avoid undesirable edge effects such as hue and saturation shifts.\nHowever, the settings are more difficult to optimise because Q is unbounded and CIECAM alters the data to take into account the surround conditions, simultaneous contrast, etc.\nYou may have to adjust the following:\n Scene conditions: Mean luminance (Yb), Whites & Blacks distribution, Black Ev, White Ev.\n Source Data Adjustments : Brightness compression, Strength.\n\nNote: when using Log encoding (Q), be careful not to activate the Disable CIECAM option in the Scene Conditions, Surround menu.
|
||||
TP_LOCALLAB_LOGCIE_TOOLTIP;Allows you to use Black Ev, White Ev, White and Black distribution, Scene Mean luminance(Yb%) and Viewing Mean luminance(Yb%) for tone-mapping using 'Log encoding' with Brightness compression.
|
||||
TP_LOCALLAB_LOGCOLORFL;Colorfulness (M)
|
||||
TP_LOCALLAB_LOGCOLORF_TOOLTIP;Perceived amount of hue in relation to gray.\nIndicator that a stimulus appears more or less colored.
|
||||
@ -3350,16 +3397,16 @@ TP_LOCALLAB_LOGENCOD_TOOLTIP;Tone Mapping with Logarithmic encoding (ACES).\nUse
|
||||
TP_LOCALLAB_LOGEXP;All tools
|
||||
TP_LOCALLAB_LOGFRA;Scene Conditions
|
||||
TP_LOCALLAB_LOGFRAME_TOOLTIP;Allows you to calculate and adjust the Ev levels and the 'Mean luminance Yb%' (source gray point) for the spot area. The resulting values will be used by all Lab operations and most RGB operations in the pipeline.\nAlso calculates the absolute luminance at the time of shooting.
|
||||
TP_LOCALLAB_LOGIMAGE_TOOLTIP;Takes into account corresponding Ciecam variables: i.e. Contrast (J) and Saturation (s), as well as Contrast (Q), Brightness (Q), Lightness (J) and Colorfulness (M) (in Advanced mode).
|
||||
TP_LOCALLAB_LOGIMAGE_TOOLTIP;Takes into account corresponding CIECAM variables: i.e. Contrast (J) and Saturation (s), as well as Contrast (Q), Brightness (Q), Lightness (J) and Colorfulness (M) (in Advanced mode).
|
||||
TP_LOCALLAB_LOGLIGHTL;Lightness (J)
|
||||
TP_LOCALLAB_LOGLIGHTL_TOOLTIP;Close to lightness (L*a*b*). Takes into account the increase in perceived coloration.
|
||||
TP_LOCALLAB_LOGLIGHTQ;Brightness (Q)
|
||||
TP_LOCALLAB_LOGLIGHTQ_TOOLTIP;Perceived amount of light emanating from a stimulus.\nIndicator that a stimulus appears to be more or less bright, clear.
|
||||
TP_LOCALLAB_LOGLIN;Logarithm mode
|
||||
TP_LOCALLAB_LOGPFRA;Relative Exposure Levels
|
||||
TP_LOCALLAB_LOGPFRA2;Log Encoding settings
|
||||
TP_LOCALLAB_LOGPFRA2;Log Encoding Settings
|
||||
TP_LOCALLAB_LOGREPART;Overall strength
|
||||
TP_LOCALLAB_LOGREPART_TOOLTIP;Allows you to adjust the relative strength of the log-encoded image with respect to the original image.\nDoes not affect the Ciecam component.
|
||||
TP_LOCALLAB_LOGREPART_TOOLTIP;Allows you to adjust the relative strength of the log-encoded image with respect to the original image.\nDoes not affect the CIECAM component.
|
||||
TP_LOCALLAB_LOGSATURL_TOOLTIP;Saturation (s) in CIECAM16 corresponds to the color of a stimulus in relation to its own brightness.\nActs mainly on medium tones and on the highlights.
|
||||
TP_LOCALLAB_LOGSCENE_TOOLTIP;Corresponds to the shooting conditions.
|
||||
TP_LOCALLAB_LOGSURSOUR_TOOLTIP;Changes tones and colors to take into account the Scene conditions.\n\n<b>Average</b>: Average light conditions (standard). The image will not change.\n\n<b>Dim</b>: Dim conditions. The image will become slightly brighter.\n\n<b>Dark</b>: Dark conditions. The image will become more bright.
|
||||
@ -3369,7 +3416,7 @@ TP_LOCALLAB_LUM;LL - CC
|
||||
TP_LOCALLAB_LUM46LABEL;Luma levels 456: Mean=%1 High=%2
|
||||
TP_LOCALLAB_LUMADARKEST;Darkest
|
||||
TP_LOCALLAB_LUMASK;Background color/luma mask
|
||||
TP_LOCALLAB_LUMASK_TOOLTIP;Adjusts the shade of gray or color of the mask background in Show Mask (Mask and modifications).
|
||||
TP_LOCALLAB_LUMASK_TOOLTIP;Adjusts the shade of gray or color of the mask background in Show Mask (Mask And Modifications).
|
||||
TP_LOCALLAB_LUMAWHITESEST;Lightest
|
||||
TP_LOCALLAB_LUMFRA;L*a*b* standard
|
||||
TP_LOCALLAB_LUMLABEL;Luma levels 0123: Mean=%1 High=%2
|
||||
@ -3384,20 +3431,20 @@ TP_LOCALLAB_MASKCURVE_TOOLTIP;The 3 curves are set to 1 (maximum) by default:\nC
|
||||
TP_LOCALLAB_MASKDDECAY;Decay strength
|
||||
TP_LOCALLAB_MASKDECAY_TOOLTIP;Manages the rate of decay for the gray levels in the mask.\n Decay = 1 linear, Decay > 1 sharper parabolic transitions, Decay < 1 more gradual transitions.
|
||||
TP_LOCALLAB_MASKDEINV_TOOLTIP;Reverses the way the algorithm interprets the mask.\nIf checked black and very light areas will be decreased.
|
||||
TP_LOCALLAB_MASKDE_TOOLTIP;Used to target the denoise as a function of the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n If the mask is below the 'dark' threshold, then the Denoise will be applied progressively.\n iIf the mask is above the 'light' threshold, then the Denoise will be applied progressively.\n Between the two, the image settings without the Denoise will be maintained, unless you adjust the sliders 'Gray area luminance denoise' or 'Gray area chrominance denoise'.
|
||||
TP_LOCALLAB_MASKGF_TOOLTIP;Used to target the Guided Filter as a function of the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n If the mask is below the 'dark' threshold, then the GF will be applied progressively.\n If the mask is above the 'light' threshold, then the GF will be applied progressively.\n Between the two, the image settings without the GF will be maintained.
|
||||
TP_LOCALLAB_MASKDE_TOOLTIP;Used to target the denoise as a function of the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n If the mask is below the 'dark' threshold, then the Denoise will be applied progressively.\n iIf the mask is above the 'light' threshold, then the Denoise will be applied progressively.\n Between the two, the image settings without the Denoise will be maintained, unless you adjust the sliders 'Gray area luminance denoise' or 'Gray area chrominance denoise'.
|
||||
TP_LOCALLAB_MASKGF_TOOLTIP;Used to target the Guided Filter as a function of the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n If the mask is below the 'dark' threshold, then the GF will be applied progressively.\n If the mask is above the 'light' threshold, then the GF will be applied progressively.\n Between the two, the image settings without the GF will be maintained.
|
||||
TP_LOCALLAB_MASKH;Hue curve
|
||||
TP_LOCALLAB_MASKHIGTHRESCB_TOOLTIP;Lighter-tone limit above which CBDL (Luminance only) parameters will be restored progressively to their original values prior to being modified by the CBDL settings .\n You can use certain tools in 'Mask and modifications' to change the gray levels:'Smooth radius', Gamma and Slope, 'Contrast curve'.\nUse a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESC_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Color and Light settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Structure mask', 'Blur mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESD_TOOLTIP; The denoise is progressively decreased from 100% at the threshold setting to 0% at the maximum white value (as determined by the mask).\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Structure mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESE_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the 'Dynamic range and Exposure' settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable colorpicker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESL_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Log encoding settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels:'Smooth radius', 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESRETI_TOOLTIP;Lighter-tone limit above which Retinex (Luminance only) parameters will be restored progressively to their original values prior to being modified by the Retinex settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESS_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Shadows Highlights settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESTM_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Tone Mapping settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESVIB_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Vibrance and Warm Cool settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels:'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESWAV_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Local contrast and Wavelet settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRES_TOOLTIP; The Guided Filter is progressively decreased from 100% at the threshold setting to 0% at the maximum white value (as determined by the mask).\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'structure mask', 'Smooth radius', 'Gamma and slope', 'Contrast curve', 'Local contrast wavelet'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESCB_TOOLTIP;Lighter-tone limit above which CBDL (Luminance only) parameters will be restored progressively to their original values prior to being modified by the CBDL settings .\n You can use certain tools in 'Mask and Modifications' to change the gray levels:'Smooth radius', Gamma and Slope, 'Contrast curve'.\nUse a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESC_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Color and Light settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Structure mask', 'Blur mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESD_TOOLTIP; The denoise is progressively decreased from 100% at the threshold setting to 0% at the maximum white value (as determined by the mask).\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Structure mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESE_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the 'Dynamic range and Exposure' settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable colorpicker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESL_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Log encoding settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels:'Smooth radius', 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESRETI_TOOLTIP;Lighter-tone limit above which Retinex (Luminance only) parameters will be restored progressively to their original values prior to being modified by the Retinex settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESS_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Shadows Highlights settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESTM_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Tone Mapping settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESVIB_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Vibrance and Warm Cool settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels:'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRESWAV_TOOLTIP;Lighter-tone limit above which the parameters will be restored progressively to their original values prior to being modified by the Local contrast and Wavelet settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKHIGTHRES_TOOLTIP; The Guided Filter is progressively decreased from 100% at the threshold setting to 0% at the maximum white value (as determined by the mask).\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'structure mask', 'Smooth radius', 'Gamma and slope', 'Contrast curve', 'Local contrast wavelet'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLCTHR;Light area luminance threshold
|
||||
TP_LOCALLAB_MASKLCTHR2;Light area luma threshold
|
||||
TP_LOCALLAB_MASKLCTHRLOW;Dark area luminance threshold
|
||||
@ -3406,29 +3453,29 @@ TP_LOCALLAB_MASKLCTHRMID;Gray area luma denoise
|
||||
TP_LOCALLAB_MASKLCTHRMIDCH;Gray area chroma denoise
|
||||
TP_LOCALLAB_MASKLC_TOOLTIP;Used by wavelet luminance.\nThis allows you to target the denoise based on the image luminance information contained in the L(L) or LC(H) mask (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n 'Dark area luminance threshold'. If 'Reinforce denoise in dark and light areas' > 1 the denoise is progressively increased from 0% at the threshold setting to 100% at the maximum black value (determined by mask).\n 'Light area luminance threshold'. The denoise is progressively decreased from 100% at the threshold setting to 0% at the maximum white value (determined by mask).\n In the area between the two thresholds, the denoise settings are not affected by the mask.
|
||||
TP_LOCALLAB_MASKLNOISELOW;Reinforce dark/light areas
|
||||
TP_LOCALLAB_MASKLOWTHRESCB_TOOLTIP;Dark-tone limit below which the CBDL parameters (Luminance only) will be restored progressively to their original values prior to being modified by the CBDL settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESC_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Color and Light settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Structure mask', 'blur mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESD_TOOLTIP;The denoise is progressively increased from 0% at the threshold setting to 100% at the maximum black value (as determined by the mask).\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Structure mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESE_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the 'Dynamic range and Exposure' settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESL_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Log encoding settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels:'Smooth radius', 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESRETI_TOOLTIP;Dark-tone limit below which the Retinex (Luminance only) parameters will be restored progressively to their original values prior to being modified by the Retinex settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESS_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Shadows Highlights settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESTM_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Tone Mapping settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESVIB_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Vibrance and Warm Cool settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESWAV_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Local contrast and Wavelet settings.\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRES_TOOLTIP;The Guided Filter is progressively increased from 0% at the threshold setting to 100% at the maximum black value (as determined by the mask).\n You can use certain tools in 'Mask and modifications' to change the gray levels: 'Structure mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKRECOL_TOOLTIP;Used to modulate the effect of the Color and Light settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Color and Light settings \n In between these two areas, the full value of the Color and Light settings will be applied.
|
||||
TP_LOCALLAB_MASKLOWTHRESCB_TOOLTIP;Dark-tone limit below which the CBDL parameters (Luminance only) will be restored progressively to their original values prior to being modified by the CBDL settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESC_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Color and Light settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Structure mask', 'blur mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESD_TOOLTIP;The denoise is progressively increased from 0% at the threshold setting to 100% at the maximum black value (as determined by the mask).\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Structure mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESE_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the 'Dynamic range and Exposure' settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESL_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Log encoding settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels:'Smooth radius', 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESRETI_TOOLTIP;Dark-tone limit below which the Retinex (Luminance only) parameters will be restored progressively to their original values prior to being modified by the Retinex settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESS_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Shadows Highlights settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESTM_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Tone Mapping settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESVIB_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Vibrance and Warm Cool settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRESWAV_TOOLTIP;Dark-tone limit below which the parameters will be restored progressively to their original values prior to being modified by the Local contrast and Wavelet settings.\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Smooth radius', Gamma and Slope, 'Contrast curve'.\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKLOWTHRES_TOOLTIP;The Guided Filter is progressively increased from 0% at the threshold setting to 100% at the maximum black value (as determined by the mask).\n You can use certain tools in 'Mask and Modifications' to change the gray levels: 'Structure mask', 'Smooth radius', Gamma and Slope, 'Contrast curve', 'Local contrast' (wavelets).\n Use a 'lockable color picker' on the mask to see which areas will be affected. Make sure you set 'Background color mask' = 0 in Settings.
|
||||
TP_LOCALLAB_MASKRECOL_TOOLTIP;Used to modulate the effect of the Color and Light settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Color and Light settings \n In between these two areas, the full value of the Color and Light settings will be applied.
|
||||
TP_LOCALLAB_MASKRECOTHRES;Recovery threshold
|
||||
TP_LOCALLAB_MASKREEXP_TOOLTIP;Used to modulate the effect of the 'Dynamic range and Exposure' settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the 'Dynamic range and Exposure' settings \n In between these two areas, the full value of the 'Dynamic range and Exposure' settings will be applied.
|
||||
TP_LOCALLAB_MASKRELOG_TOOLTIP;Used to modulate the effect of the Log encoding settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Log encoding settings - can be used to restore highlights reconstructed by Color propagation \n In between these two areas, the full value of the Log encoding settings will be applied.
|
||||
TP_LOCALLAB_MASKRESCB_TOOLTIP;Used to modulate the effect of the CBDL (Luminance only) settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the CBDL settings \n In between these two areas, the full value of the CBDL settings will be applied.
|
||||
TP_LOCALLAB_MASKRESH_TOOLTIP;Used to modulate the effect of the Shadows Highlights settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Shadows Highlights settings \n In between these two areas, the full value of the Shadows Highlights settings will be applied.
|
||||
TP_LOCALLAB_MASKRESRETI_TOOLTIP;Used to modulate the effect of the Retinex (Luminance only) settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Retinex settings \n In between these two areas, the full value of the Retinex settings will be applied.
|
||||
TP_LOCALLAB_MASKRESTM_TOOLTIP;Used to modulate the effect of the Tone Mapping settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Tone Mapping settings \n In between these two areas, the full value of the Tone Mapping settings will be applied.
|
||||
TP_LOCALLAB_MASKRESVIB_TOOLTIP;Used to modulate the effect of the Vibrance and Warm Cool settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Vibrance and Warm Cool settings \n In between these two areas, the full value of the Vibrance and Warm Cool settings will be applied.
|
||||
TP_LOCALLAB_MASKRESWAV_TOOLTIP;Used to modulate the effect of the Local contrast and Wavelet settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Local contrast and Wavelet settings \n In between these two areas, the full value of the Local contrast and Wavelet settings will be applied.
|
||||
TP_LOCALLAB_MASKUNUSABLE;Mask disabled (Enable in Mask & modifications)
|
||||
TP_LOCALLAB_MASKUSABLE;Mask enabled (Mask & modifications)
|
||||
TP_LOCALLAB_MASKREEXP_TOOLTIP;Used to modulate the effect of the 'Dynamic range and Exposure' settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the 'Dynamic range and Exposure' settings \n In between these two areas, the full value of the 'Dynamic range and Exposure' settings will be applied.
|
||||
TP_LOCALLAB_MASKRELOG_TOOLTIP;Used to modulate the effect of the Log encoding settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Log encoding settings - can be used to restore highlights reconstructed by Color propagation \n In between these two areas, the full value of the Log encoding settings will be applied.
|
||||
TP_LOCALLAB_MASKRESCB_TOOLTIP;Used to modulate the effect of the CBDL (Luminance only) settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the CBDL settings \n In between these two areas, the full value of the CBDL settings will be applied.
|
||||
TP_LOCALLAB_MASKRESH_TOOLTIP;Used to modulate the effect of the Shadows Highlights settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Shadows Highlights settings \n In between these two areas, the full value of the Shadows Highlights settings will be applied.
|
||||
TP_LOCALLAB_MASKRESRETI_TOOLTIP;Used to modulate the effect of the Retinex (Luminance only) settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Retinex settings \n In between these two areas, the full value of the Retinex settings will be applied.
|
||||
TP_LOCALLAB_MASKRESTM_TOOLTIP;Used to modulate the effect of the Tone Mapping settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Tone Mapping settings \n In between these two areas, the full value of the Tone Mapping settings will be applied.
|
||||
TP_LOCALLAB_MASKRESVIB_TOOLTIP;Used to modulate the effect of the Vibrance and Warm Cool settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Vibrance and Warm Cool settings \n In between these two areas, the full value of the Vibrance and Warm Cool settings will be applied.
|
||||
TP_LOCALLAB_MASKRESWAV_TOOLTIP;Used to modulate the effect of the Local contrast and Wavelet settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The 'dark' and 'light' areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Local contrast and Wavelet settings \n In between these two areas, the full value of the Local contrast and Wavelet settings will be applied.
|
||||
TP_LOCALLAB_MASKUNUSABLE;Mask disabled (Enable in Mask & Modifications)
|
||||
TP_LOCALLAB_MASKUSABLE;Mask enabled (Mask & Modifications)
|
||||
TP_LOCALLAB_MASK_TOOLTIP;You can enable multiple masks for a tool by activating another tool and using only the mask (set the tool sliders to 0 ).\n\nYou can also duplicate the spot and place it close to the first spot. The small variations in the spot references allow you to make fine adjustments.
|
||||
TP_LOCALLAB_MEDIAN;Median Low
|
||||
TP_LOCALLAB_MEDIANITER_TOOLTIP;The number of successive iterations carried out by the median filter.
|
||||
@ -3515,12 +3562,16 @@ TP_LOCALLAB_PDEFRAME_TOOLTIP;PDE IPOL algorithm adapted for RawTherapee: gives d
|
||||
TP_LOCALLAB_PRECAMGAMUT_TOOLTIP;If checked, ensures a gamut control just after primary conversion to XYZ.
|
||||
TP_LOCALLAB_PRECAMREFIMAIN_TOOLTIP;Allows you to move the white-point in such a way that it approaches the dominant color. This action modifies the purity. In combination with "Shift x" and "Shift y", allows you to carry out moderate color toning.
|
||||
TP_LOCALLAB_PRECAMREFI_TOOLTIP;Allows you to move the white-point in such a way that it approaches the dominant color. This action modifies the purity.
|
||||
TP_LOCALLAB_PRECAM_TOOLTIP;'Source Data Adjustments' modifies the Dynamic Range using Log encoding, the tones of the image and primaries (simplified Abstract Profile), and midtones, just before the Ciecam process. These values are adjustable:\nGamma: Acts mainly on light tones\nSlope: Acts mainly on dark tones. You can choose any pair of gamma and slope (values >1) and the algorithm will ensure that there is continuity between the linear and parabolic parts of the curve.\nDestination primaries: Allows you to change the destination primaries to restore or change image color (saturation). The color balance is significantly preserved when the 'Working Profile' and the 'Destination primaries' are similar. 'Working Profile' is not modified. You can also finely adapt the primaries and the illuminant (white-point). Moving a primary away from the white point reduces saturation and vice versa. Pay attention to the gamut.
|
||||
TP_LOCALLAB_PRECAM_TOOLTIP;'Source Data Adjustments' modifies the Dynamic Range using Log encoding, the tones of the image and primaries (simplified Abstract Profile), and midtones, just before the CIECAM process. These values are adjustable:\nGamma: Acts mainly on light tones\nSlope: Acts mainly on dark tones. You can choose any pair of gamma and slope (values >1) and the algorithm will ensure that there is continuity between the linear and parabolic parts of the curve.\nDestination primaries: Allows you to change the destination primaries to restore or change image color (saturation). The color balance is significantly preserved when the 'Working Profile' and the 'Destination primaries' are similar. 'Working Profile' is not modified. You can also finely adapt the primaries and the illuminant (white-point). Moving a primary away from the white point reduces saturation and vice versa. Pay attention to the gamut.
|
||||
TP_LOCALLAB_PREVHIDE;Hide additional settings
|
||||
TP_LOCALLAB_PREVIEW;Preview ΔE
|
||||
TP_LOCALLAB_PREVSHOW;Show additional settings
|
||||
TP_LOCALLAB_PRIMILLFRAME;Primaries & Illuminant
|
||||
TP_LOCALLAB_PROXI;ΔE decay
|
||||
TP_LOCALLAB_QJMODE;Tone Mapping Operators Q(CAM16) & J(Jz)
|
||||
TP_LOCALLAB_QJMODE_511;5.11 deprecated
|
||||
TP_LOCALLAB_QJMODE_512;5.12
|
||||
TP_LOCALLAB_QJMODE_TOOLTIP;The tone-mapping operators that use brightness data (Q for CAM16 and J for Jz) have been modified in RawTherapee version 5.12. This allows you to select either the current or the deprecated version.
|
||||
TP_LOCALLAB_QUAAGRES;Aggressive
|
||||
TP_LOCALLAB_QUACONSER;Conservative
|
||||
TP_LOCALLAB_QUALCURV_METHOD;Curve type
|
||||
@ -3530,7 +3581,7 @@ TP_LOCALLAB_QUANONEWAV;Non-local means only
|
||||
TP_LOCALLAB_RADIUS;Radius
|
||||
TP_LOCALLAB_RADIUS_TOOLTIP;Uses a Fast Fourier Transform for radius > 30.
|
||||
TP_LOCALLAB_RADMASKCOL;Smooth radius
|
||||
TP_LOCALLAB_RECOTHRES02_TOOLTIP;If the 'Recovery threshold' value is greater than 1, the mask in Mask and Modifications takes into account any previous modifications made to the image but not those made with the current tool (e.g. Color and Light, Wavelet, Cam16, etc.)\nIf the value of the 'Recovery threshold' is less than 1, the mask in Mask and Modifications does not take into account any previous modifications to the image.\n\nIn both cases, the 'Recovery threshold' acts on the masked image as modified by the current tool (Color and Light, Wavelet, Cam16, etc.).
|
||||
TP_LOCALLAB_RECOTHRES02_TOOLTIP;If the 'Recovery threshold' value is greater than 1, the mask in Mask and Modifications takes into account any previous modifications made to the image but not those made with the current tool (e.g. Color and Light, Wavelet, CAM16, etc.)\nIf the value of the 'Recovery threshold' is less than 1, the mask in Mask and Modifications does not take into account any previous modifications to the image.\n\nIn both cases, the 'Recovery threshold' acts on the masked image as modified by the current tool (Color and Light, Wavelet, CAM16, etc.).
|
||||
TP_LOCALLAB_RECT;Rectangle
|
||||
TP_LOCALLAB_RECURS;Recursive references
|
||||
TP_LOCALLAB_RECURS_TOOLTIP;Forces the algorithm to recalculate the references after each tool is applied.\nAlso useful for working with masks.
|
||||
@ -3603,73 +3654,93 @@ TP_LOCALLAB_SHARP_TOOLNAME;Sharpening
|
||||
TP_LOCALLAB_SHARRADIUS;Radius
|
||||
TP_LOCALLAB_SHORTC;Short Curves 'L' Mask
|
||||
TP_LOCALLAB_SHORTCMASK_TOOLTIP;Short circuit the 2 curves L(L) and L(H).\nAllows you to mix the current image with the original image modified by the mask job.\nUsable with masks 2, 3, 4, 6, 7.
|
||||
TP_LOCALLAB_SHOWC;Mask and modifications
|
||||
TP_LOCALLAB_SHOWC;Mask And Modifications
|
||||
TP_LOCALLAB_SHOWC1;Merge file
|
||||
TP_LOCALLAB_SHOWCB;Mask and modifications
|
||||
TP_LOCALLAB_SHOWCB;Mask And Modifications
|
||||
TP_LOCALLAB_SHOWDCT;Show Fourier (ƒ) process
|
||||
TP_LOCALLAB_SHOWE;Mask and modifications
|
||||
TP_LOCALLAB_SHOWE;Mask And Modifications
|
||||
TP_LOCALLAB_SHOWFOURIER;Fourier ƒ(dct)
|
||||
TP_LOCALLAB_SHOWLAPLACE;∆ Laplacian (first)
|
||||
TP_LOCALLAB_SHOWLC;Mask and modifications
|
||||
TP_LOCALLAB_SHOWLC;Mask And Modifications
|
||||
TP_LOCALLAB_SHOWMASK;Show mask
|
||||
TP_LOCALLAB_SHOWMASKCOL_TOOLTIP;Displays masks and modifications.\nBeware, you can only view one tool mask at a time.\nShow modified image: shows the modified image including the effect of any adjustments and masks.\nShow modified areas without mask: shows the modifications before any masks are applied.\nShow modified areas with mask: shows the modifications after a mask has been applied.\nShow mask: shows the aspect of the mask including the effect of any curves and filters.\nShow spot structure: allows you to see the structure-detection mask when the 'Spot structure' cursor is activated (when available).\nNote: The mask is applied before the shape detection algorithm.
|
||||
TP_LOCALLAB_SHOWMASKCOL_TOOLTIP;Displays Masks and Modifications.\nBeware, you can only view one tool mask at a time.\nShow modified image: shows the modified image including the effect of any adjustments and masks.\nShow modified areas without mask: shows the modifications before any masks are applied.\nShow modified areas with mask: shows the modifications after a mask has been applied.\nShow mask: shows the aspect of the mask including the effect of any curves and filters.\nShow spot structure: allows you to see the structure-detection mask when the 'Spot structure' cursor is activated (when available).\nNote: The mask is applied before the shape detection algorithm.
|
||||
TP_LOCALLAB_SHOWMASKSOFT_TOOLTIP;Allows you to visualize the different stages of the Fourier process.\n Laplace - calculates the second derivative of the Laplace transform as a function of the threshold.\nFourier - shows the Laplacian transform with DCT.\nPoisson - shows the solution of the Poisson DCE.\nNo luminance normalization - shows result without any luminance normalization.
|
||||
TP_LOCALLAB_SHOWMASKTYP1;Blur & Noise
|
||||
TP_LOCALLAB_SHOWMASKTYP2;Denoise
|
||||
TP_LOCALLAB_SHOWMASKTYP3;Blur & Noise + Denoise
|
||||
TP_LOCALLAB_SHOWMASKTYP_TOOLTIP;Can be used with 'Mask and modifications'.\nIf 'Blur and noise' is selected, the mask cannot be used for Denoise.\nIf Denoise is selected, the mask cannot be used for 'Blur and noise'.\nIf 'Blur and noise + Denoise' is selected, the mask is shared. Note that in this case, the Scope sliders for both 'Blur and noise' and Denoise will be active so it is advisable to use the option 'Show modifications with mask' when making any adjustments.
|
||||
TP_LOCALLAB_SHOWMASKTYP_TOOLTIP;Can be used with 'Mask And Modifications'.\nIf 'Blur and noise' is selected, the mask cannot be used for Denoise.\nIf Denoise is selected, the mask cannot be used for 'Blur and noise'.\nIf 'Blur and noise + Denoise' is selected, the mask is shared. Note that in this case, the Scope sliders for both 'Blur and noise' and Denoise will be active so it is advisable to use the option 'Show modifications with mask' when making any adjustments.
|
||||
TP_LOCALLAB_SHOWMNONE;Show modified image
|
||||
TP_LOCALLAB_SHOWMODIF;Show modified areas without mask
|
||||
TP_LOCALLAB_SHOWMODIF2;Show modified areas
|
||||
TP_LOCALLAB_SHOWMODIFMASK;Show modified areas with mask
|
||||
TP_LOCALLAB_SHOWNORMAL;No luminance normalization
|
||||
TP_LOCALLAB_SHOWPLUS;Mask and modifications (Blur & Denoise)
|
||||
TP_LOCALLAB_SHOWPLUS;Mask And Modifications (Blur & Denoise)
|
||||
TP_LOCALLAB_SHOWPOISSON;Poisson (pde ƒ)
|
||||
TP_LOCALLAB_SHOWR;Mask and modifications
|
||||
TP_LOCALLAB_SHOWR;Mask And Modifications
|
||||
TP_LOCALLAB_SHOWREF;Preview ΔE
|
||||
TP_LOCALLAB_SHOWS;Mask and modifications
|
||||
TP_LOCALLAB_SHOWS;Mask And Modifications
|
||||
TP_LOCALLAB_SHOWSTRUC;Show spot structure(Advanced)
|
||||
TP_LOCALLAB_SHOWSTRUCEX;Show spot structure(Advanced)
|
||||
TP_LOCALLAB_SHOWT;Mask and modifications
|
||||
TP_LOCALLAB_SHOWVI;Mask and modifications
|
||||
TP_LOCALLAB_SHOWT;Mask And Modifications
|
||||
TP_LOCALLAB_SHOWVI;Mask And Modifications
|
||||
TP_LOCALLAB_SHRESFRA;Shadows/Highlights & TRC
|
||||
TP_LOCALLAB_SHTRC_TOOLTIP;Based on 'working profile' (only those provided), modifies the tones of the image by acting on a TRC (Tone Response Curve).\nGamma acts mainly on light tones.\nSlope acts mainly on dark tones.\nIt is recommended that the TRC of both devices (monitor and output profile) be sRGB (default).
|
||||
TP_LOCALLAB_SH_TOOLNAME;Shadows/Highlights & Tone Equalizer
|
||||
TP_LOCALLAB_SIGBLACKSSCIE;Blacks distribution
|
||||
TP_LOCALLAB_SIGCIE;Sigmoid
|
||||
TP_LOCALLAB_SIGFRA;Sigmoid Q
|
||||
TP_LOCALLAB_SIGFRA;Sigmoid Q & Slope based
|
||||
TP_LOCALLAB_SIGFRA11;Sigmoid Q (deprecated)
|
||||
TP_LOCALLAB_SIGGAMJCIE;Gamma
|
||||
TP_LOCALLAB_SIGJZFRA;Sigmoid Jz
|
||||
TP_LOCALLAB_SIGJZFRA11;Sigmoid Jz (deprecated)
|
||||
TP_LOCALLAB_SIGMAWAV;Attenuation response
|
||||
TP_LOCALLAB_SIGMOID16_TOOLTIP;Allows you to simulate a tone mapping appearance using both 'Ciecam' and 'Sigmoid Q'. Sigmoid Q has three sliders:\na) Contrast acts on the shape of the sigmoid curve and consequently on the strength\nb) Threshold (Gray point) distributes the action according to the luminance\nc) Adaptability weights the action of the sigmoid by action on the internal exponential function.
|
||||
TP_LOCALLAB_SIGMOIDBL;Blend
|
||||
TP_LOCALLAB_SIGMOID16_TOOLTIP;Allows you to simulate a tone mapping appearance using both 'CIECAM' and 'Sigmoid Q' or 'Slope based Q'. Sigmoid Q has three sliders:\na) Contrast acts on the shape of the sigmoid curve and consequently on the strength\nb) Skew (gray point) distributes the action according to the luminance.\nc) Display White point (cd/m2) - mode advanced. \n\nSlope based has only one slider: Gray balance (slope).\n\nThis new version of Sigmoid is incompatible with previous versions 5.11 and earlier. Log encoding inside CIECAM is removed.
|
||||
TP_LOCALLAB_SIGMOIDBL;Display White point (cd/m2)
|
||||
TP_LOCALLAB_SIGMOIDBL11;Blend
|
||||
TP_LOCALLAB_SIGMOIDLAMBDA;Contrast
|
||||
TP_LOCALLAB_SIGMOIDLOGAUTO;Auto threshold
|
||||
TP_LOCALLAB_SIGMOIDLOGEV_TOOLTIP;If the combo box selection 'Black Ev and White Ev' is 'Sigmoid and Log encoding' instead of 'Sigmoid only', the two algorithms 'Log encoding' and 'Sigmoid' are used together.
|
||||
TP_LOCALLAB_SIGMOIDNORMCIE;Normalize Luminance
|
||||
TP_LOCALLAB_SIGMOIDNORMCIE;Scale Yb Scene
|
||||
TP_LOCALLAB_SIGMOIDNORMCIE11;Normalize Luminance
|
||||
TP_LOCALLAB_SIGMOIDNORMCIEBLEND_TOOLTIP;Blend acts on the final aspect of the image, contrast and luminance. Ratio between original and output image.
|
||||
TP_LOCALLAB_SIGMOIDNORMCIE_TOOLTIP;Reconstruct luminance so that the mean and variance of the output image take into account those of the original.\nAll the adjustments acting on J or Q are taken into account, including those which are not relative to Sigmoid Q.
|
||||
TP_LOCALLAB_SIGMOIDQJ;Black Ev & White Ev
|
||||
TP_LOCALLAB_SIGMOIDNORMCIEDISP_TOOLTIP;Allows you to adapt the white point to the peak luminance of the display device. Its position in the processing pipeline is not optimal so use with caution.
|
||||
TP_LOCALLAB_SIGMOIDQJ;Tone mapping Q
|
||||
TP_LOCALLAB_SIGMOIDQJ11;Black Ev & White Ev
|
||||
TP_LOCALLAB_SIGMOIDQJCOMPRCIE_TOOLTIP;When the combo box selection 'Uses Black Ev and White Ev' is 'Sigmoid and Log encoding Q' or 'Log encoding instead of Sigmoid' checked. This algorithm compress the data above the threshold slider value. The last value stands for brightness (Q) and should be close as possible to the value 'Compression threshold' (calculate when 'Auto threshold" checked, often > 1).
|
||||
TP_LOCALLAB_SIGMOIDSENSI;Adaptability
|
||||
TP_LOCALLAB_SIGMOIDTH;Threshold (Gray point)
|
||||
TP_LOCALLAB_SIGMOIDTH;Skew
|
||||
TP_LOCALLAB_SIGMOIDTH11;Threshold (Gray point)
|
||||
TP_LOCALLAB_SIGMOIDWHITESCIE_TOOLTIP;Allows you, in Automatic when the dynamic range of the image is high, to change the distribution of lights in whites and deep blacks.\nCan be used with Log encoding or Sigmoid with Black Ev and White Ev enabled.\n\nThe algorithm does not change the basic data, but acts on the components necessary to calculate the Dynamic range, Black Ev, White Ev and the Gray point.
|
||||
TP_LOCALLAB_SIGMOID_TOOLTIP;Allows you to simulate a tone mapping appearance using both the 'Jz' and 'Sigmoid' function. Three sliders:\na) Contrast acts on the shape of the sigmoid curve and consequently on the strength\nb) Threshold (Gray point) distributes the action according to the luminance\nc)Blend acts on the final aspect of the image, contrast and luminance.
|
||||
TP_LOCALLAB_SIGMOID_TOOLTIP;Allows you to simulate a tone mapping appearance using both the 'Jz' and 'Sigmoid' function. Two sliders:\na) Contrast acts on the shape of the sigmoid curve and consequently on the strength\nb) Skew (Gray point) distributes the action according to the luminance.\n\nThis new version of Sigmoid is incompatible with previous versions 5.11 and earlier.
|
||||
TP_LOCALLAB_SIGSLOPJCIE;Slope
|
||||
TP_LOCALLAB_SIGTRCCIE;Source Data Adjustments
|
||||
TP_LOCALLAB_SIGWHITESCIE;Whites distribution
|
||||
TP_LOCALLAB_SLOMASKCOL;Slope
|
||||
TP_LOCALLAB_SLOMASK_TOOLTIP;Adjusting Gamma and Slope can provide a soft and artifact-free transformation of the mask by progressively modifying 'L' to avoid any discontinuities.
|
||||
TP_LOCALLAB_SLOPESMOOTH;Gray balance (Slope)
|
||||
TP_LOCALLAB_SLOPESMOOTHB;Blue balance (Slope)
|
||||
TP_LOCALLAB_SLOPESMOOTHR;Red Slope
|
||||
TP_LOCALLAB_SLOPESMOOTHG;Green Slope
|
||||
TP_LOCALLAB_SLOPESMOOTHB;Blue Slope
|
||||
TP_LOCALLAB_SLOPESMOOTRCG;Green balance (TRC)
|
||||
TP_LOCALLAB_SLOPESMOOTRCR;Red balance (TRC)
|
||||
TP_LOCALLAB_SLOPESMOOTHG;Green balance (Slope)
|
||||
TP_LOCALLAB_SLOPESMOOTHR;Red balance (Slope)
|
||||
TP_LOCALLAB_SLOPESMOOTRCB;Blue balance (TRC)
|
||||
TP_LOCALLAB_SLOSH;Slope
|
||||
TP_LOCALLAB_SMOOTHCIE;Highlight Attenuation
|
||||
TP_LOCALLAB_SMOOTHCIE;Highlight attenuation
|
||||
TP_LOCALLAB_SMOOTHCIE_LNK;Link R, G, & B
|
||||
TP_LOCALLAB_SMOOTHCIETH;Attenuation threshold
|
||||
TP_LOCALLAB_SMOOTHCIE_HIGH;Highlight attenuation only
|
||||
TP_LOCALLAB_SMOOTHCIE_TRC;Increase gamma-based attenuation
|
||||
TP_LOCALLAB_SMOOTHCIE_TRCREL;Relative gamma mode
|
||||
TP_LOCALLAB_SMOOTHCIE_LUM;Luminosity mode
|
||||
TP_LOCALLAB_SMOOTHCIE_SCA;Scale Yb Scene
|
||||
TP_LOCALLAB_SMOOTHCIE_TOOLTIP;Completes the processing carried out by gamma, slope and midtones by causing a slight lowering of lights. Please note this does not replace Highlight reconstruction.\n\nGamma based and Slope based (Standard and Advanced) allow you to simulate a tone mapping using:\na) Scene conditions: Black-Ev, White-Ev, Mean luminance (Yb%)\nb) Viewing conditions: Mean luminance (Yb%).\n\nScale Yb Scene is function of White-Ev.
|
||||
TP_LOCALLAB_SMOOTHCIE_TOOLTIP;Completes the processing carried out by gamma, slope and midtones by causing a slight lowering of lights. Please note this does not replace Highlight reconstruction.\n\nGamma based and Slope based (Standard and Advanced) allow you to simulate a tone mapping using:\na) Scene conditions: Black-Ev, White-Ev, Mean luminance (Yb%)\nb) Viewing conditions: Mean luminance (Yb%).\n\nScale Yb Scene is function of White-Ev.\n\nSigmoid applies tone mapping with Contrast and Skew and Display White point allows you to adapt the white point to the peak luminance of the display device. Its position in the processing pipeline is not optimal so use with caution.\n\nThis new version of Sigmoid is incompatible with previous versions 5.11 and earlier.
|
||||
TP_LOCALLAB_SMOOTHCIE_YB;Scale Yb Viewing
|
||||
TP_LOCALLAB_SMOOTHCONTSIG;Contrast
|
||||
TP_LOCALLAB_SMOOTHSKEWSIG;Skew
|
||||
TP_LOCALLAB_SMOOTHWHITSIG;Display White point (cd/m2)
|
||||
TP_LOCALLAB_SOFT;Soft Light & Original Retinex
|
||||
TP_LOCALLAB_SOFTM;Soft Light
|
||||
TP_LOCALLAB_SOFTMETHOD_TOOLTIP;Apply a Soft-light blend (identical to the global adjustment). Carry out dodge and burn using the original Retinex algorithm.
|
||||
@ -3677,7 +3748,7 @@ TP_LOCALLAB_SOFTRADIUSCOL;Soft radius
|
||||
TP_LOCALLAB_SOFTRADIUSCOL_TOOLTIP;Applies a guided filter to the output image to reduce possible artifacts.
|
||||
TP_LOCALLAB_SOFTRETI;Reduce ΔE artifacts
|
||||
TP_LOCALLAB_SOFT_TOOLNAME;Soft Light & Original Retinex
|
||||
TP_LOCALLAB_SOURCE_ABS;Absolute luminance
|
||||
TP_LOCALLAB_SOURCE_ABS;Absolute luminance (cd/m2)
|
||||
TP_LOCALLAB_SOURCE_GRAY;Mean luminance (Yb%)
|
||||
TP_LOCALLAB_SPECCASE;Specific cases
|
||||
TP_LOCALLAB_SPECIAL;Special use of RGB curves
|
||||
@ -3696,7 +3767,7 @@ TP_LOCALLAB_STRGRID;Strength
|
||||
TP_LOCALLAB_STRUC;Structure
|
||||
TP_LOCALLAB_STRUCCOL;Spot structure
|
||||
TP_LOCALLAB_STRUCCOL1;Spot structure
|
||||
TP_LOCALLAB_STRUCT_TOOLTIP;Uses the Sobel algorithm to take into account structure for shape detection.\nActivate 'Mask and modifications' > 'Show spot structure' (Advanced mode) to see a preview of the mask (without modifications).\n\nCan be used in conjunction with the Structure Mask, Blur Mask and 'Local contrast' (by wavelet level) to improve edge detection.\n\nEffects of adjustments using Lightness, Contrast, Chrominance, Exposure or other non-mask-related tools visible using either 'Show modified image' or 'Show modified areas with mask'.
|
||||
TP_LOCALLAB_STRUCT_TOOLTIP;Uses the Sobel algorithm to take into account structure for shape detection.\nActivate 'Mask And Modifications' > 'Show spot structure' (Advanced mode) to see a preview of the mask (without modifications).\n\nCan be used in conjunction with the Structure Mask, Blur Mask and 'Local contrast' (by wavelet level) to improve edge detection.\n\nEffects of adjustments using Lightness, Contrast, Chrominance, Exposure or other non-mask-related tools visible using either 'Show modified image' or 'Show modified areas with mask'.
|
||||
TP_LOCALLAB_STRUMASKCOL;Structure mask strength
|
||||
TP_LOCALLAB_STRUMASK_TOOLTIP;Structure mask (slider) with the checkbox 'Structure mask as tool' unchecked: In this case a mask showing the structure will be generated even if none of the 3 curves is activated. Structure masks are available for mask (Blur and denoise') and mask(Color & Light).
|
||||
TP_LOCALLAB_STRUSTRMASK_TOOLTIP;Moderate use of this slider is recommended!
|
||||
@ -4219,8 +4290,9 @@ TP_WAVELET_DAUB4;D4 - standard
|
||||
TP_WAVELET_DAUB6;D6 - standard plus
|
||||
TP_WAVELET_DAUB10;D10 - medium
|
||||
TP_WAVELET_DAUB14;D14 - high
|
||||
TP_WAVELET_DAUB20;D20 - high plus
|
||||
TP_WAVELET_DAUBLOCAL;Wavelet Edge performance
|
||||
TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 = Often best performance, 10% more time-intensive.\n\nAffects edge detection as well as the general quality of the first levels. However the quality is not strictly related to this coefficient and can vary depending on image and use.
|
||||
TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 D20 = Often best performance, 15% more time-intensive.\n\nAffects edge detection as well as the general quality of the first levels. However the quality is not strictly related to this coefficient and can vary depending on image and use.
|
||||
TP_WAVELET_DEN5THR;Guided threshold
|
||||
TP_WAVELET_DENCURV;Curve
|
||||
TP_WAVELET_DENL;Correction structure
|
||||
@ -4294,6 +4366,7 @@ TP_WAVELET_LEVELS_TOOLTIP;Choose the number of wavelet decomposition levels for
|
||||
TP_WAVELET_LEVF;Contrast
|
||||
TP_WAVELET_LEVFOUR;Level 5-6 denoise and guided threshold
|
||||
TP_WAVELET_LEVLABEL;Preview maximum possible levels = %1
|
||||
TP_WAVELET_LEVLOCLABEL;Increase the preview window size
|
||||
TP_WAVELET_LEVONE;Level 2
|
||||
TP_WAVELET_LEVTHRE;Level 4
|
||||
TP_WAVELET_LEVTWO;Level 3
|
||||
@ -4323,6 +4396,7 @@ TP_WAVELET_NPNONE;None
|
||||
TP_WAVELET_NPTYPE;Neighboring pixels
|
||||
TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced.
|
||||
TP_WAVELET_OFFSET_TOOLTIP;Offset modifies the balance between low contrast and high contrast details.\nHigh values will amplify contrast changes to the higher contrast details, whereas low values will amplify contrast changes to low contrast details.\nBy using a low Attenuation response value you can select which contrast values will be enhanced.
|
||||
TP_WAVELET_OFFSFIN;Offset
|
||||
TP_WAVELET_OLDSH;Algorithm using negatives values
|
||||
TP_WAVELET_OPACITY;Opacity blue-yellow
|
||||
TP_WAVELET_OPACITYW;Contrast balance d/v-h curve
|
||||
@ -4331,6 +4405,11 @@ TP_WAVELET_OPACITYWL_TOOLTIP;Modify the final local contrast at the end of the w
|
||||
TP_WAVELET_PASTEL;Pastel chroma
|
||||
TP_WAVELET_PROC;Process
|
||||
TP_WAVELET_PROTAB;Protection
|
||||
TP_WAVELET_PYRWAVTRC;Contrast profile
|
||||
TP_WAVELET_PYRWAVTRC_TOOLTIP;A series of presets defining the strength of the contrast adjustment at different detail levels. Lower presets only affect fine details while higher presets affect both fine and coarse details.\n\nNote: The effect on coarse details may not be visible in the preview if the preview is too small.
|
||||
TP_WAVELET_PYRWAVTRC_CURVE_TOOLTIP;The left end of the horizontal axis corresponds to close to zero contrast, while the right end corresponds to the strongest contrast in the image. The midpoint of the horizontal axis corresponds to the predominant contrast strength across all detail levels.\n\nThe effect of this curve is reduced for higher Contrast profile presets.\n\nTo avoid harsh contrast and halos, refrain from increasing the right half of the curve.
|
||||
TP_WAVELET_PYRWAVTRC_RESID_TOOLTIP;Adjusts the contrast for all detail levels larger than those covered by the selected Contrast profile.
|
||||
TP_WAVELET_PYRWAVTRC_SIGMA_TOOLTIP;Stretches the width of the "Variable contrast" curve. A value of 1 means no stretching.
|
||||
TP_WAVELET_QUAAGRES;Aggressive
|
||||
TP_WAVELET_QUACONSER;Conservative
|
||||
TP_WAVELET_RADIUS;Radius shadows - highlight
|
||||
@ -4345,6 +4424,7 @@ TP_WAVELET_RESCHRO;Strength
|
||||
TP_WAVELET_RESCON;Shadows
|
||||
TP_WAVELET_RESCONH;Highlights
|
||||
TP_WAVELET_RESID;Residual Image
|
||||
TP_WAVELET_RESIDTRC;Residual contrast
|
||||
TP_WAVELET_SAT;Saturated chroma
|
||||
TP_WAVELET_SETTINGS;Wavelet Settings
|
||||
TP_WAVELET_SHA;Sharp mask
|
||||
|
@ -16,6 +16,8 @@
|
||||
*
|
||||
* 2010 Ilya Popov <ilia_popov@rambler.ru>
|
||||
* 2012 Emil Martinec <ejmartin@uchicago.edu>
|
||||
* 2024 Jacques Desmis <jdesmis@gmail.com>
|
||||
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -170,14 +172,14 @@ wavelet_decomposition::wavelet_decomposition(
|
||||
//n=0 lopass, n=1 hipass
|
||||
}
|
||||
}
|
||||
/* } else if(wavfilt_len == 22) {
|
||||
} else if(wavfilt_len == 22) {
|
||||
for (int n = 0; n < 2; n++) {
|
||||
for (int i = 0; i < wavfilt_len; i++) {
|
||||
wavfilt_anal[wavfilt_len * (n) + i] = Daub4_anal22[n][i];
|
||||
wavfilt_synth[wavfilt_len * (n) + i] = Daub4_anal22[n][wavfilt_len - 1 - i];
|
||||
//n=0 lopass, n=1 hipass
|
||||
}
|
||||
} */
|
||||
}
|
||||
} else if(wavfilt_len == 4) {
|
||||
for (int n = 0; n < 2; n++) {
|
||||
for (int i = 0; i < wavfilt_len; i++) {
|
||||
|
@ -15,7 +15,7 @@
|
||||
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* 2012 Emil Martinec <ejmartin@uchicago.edu>
|
||||
* 2014 Jacques Desmis <jdesmis@gmail.com>
|
||||
* 2014 - 2024 Jacques Desmis <jdesmis@gmail.com>
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -49,13 +49,13 @@ const float Daub4_anal16[2][16] ALIGNED16 = {//Daub 14
|
||||
{ -0.0002501134f, -0.0012739524f, -0.0003037575f, 0.008874895f, 0.01171997f , -0.026891225f, -0.057001725f, 0.05042335f, 0.158417505f, -0.10175691f, -0.33218624f, 0.515574245f, -0.28039564f, 0.055049715f, 0.f, 0.f}
|
||||
};
|
||||
|
||||
const float Daub4_anal22[2][22] ALIGNED16 = {//Daub 20
|
||||
const float Daub4_anal22[2][22] ALIGNED16 = {//Daub 20 - verified good 6 - 2024
|
||||
{0.f, 0.f, 0.01885858f, 0.13306109f, 0.37278535f, 0.48681406f, 0.19881887f, -0.1766681f, -0.13855494f, 0.09006372f, 0.0658015f, -0.05048328f, -0.02082962f,
|
||||
0.0234849f, 0.002550218f, -0.0075895f, 0.0009866627f, 0.001408843f, -0.000484973f, -0.0000823545f, 0.0000661271f, -0.00000939f},
|
||||
{0.00000939f, -0.0000661271f, 0.0000823545f, 0.000484973f, -0.001408843f, -0.0009866627f, 0.0075895f, -0.002550218f, -0.0234849f,
|
||||
0.02082962f, 0.05048328f, -0.0658015f, -0.09006372f, 0.13855494f, 0.1766681f, -0.19881887f, -0.48681406f, -0.37278535f, -0.13306109f, -0.01885858f, 0.f, 0.f}
|
||||
{0.00000939f, 0.0000661271f, 0.0000823545f, -0.000484973f, -0.001408843f, 0.0009866627f, 0.0075895f, 0.002550218f, -0.0234849f,
|
||||
-0.02082962f, 0.05048328f, 0.0658015f, -0.09006372f, -0.13855494f, 0.1766681f, 0.19881887f, -0.48681406f, 0.37278535f, -0.13306109f, 0.01885858f, 0.f, 0.f}
|
||||
|
||||
};
|
||||
|
||||
// if necessary ?? we can add D20 !!
|
||||
}
|
||||
|
||||
|
@ -1091,7 +1091,8 @@ void Crop::update(int todo)
|
||||
float Lhighresi46 = 0.f;
|
||||
float Lnresi46 = 0.f;
|
||||
float contsig = params.locallab.spots.at(sp).contsigqcie;
|
||||
|
||||
float slopeg = 1.f;
|
||||
bool linkrgb = true;
|
||||
float lightsig = params.locallab.spots.at(sp).lightsigqcie;
|
||||
/* huerefp[sp] = huere;
|
||||
chromarefp[sp] = chromare;
|
||||
@ -1163,7 +1164,7 @@ void Crop::update(int todo)
|
||||
parent->previewDeltaE, parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallvibMask, parent->localllcMask, parent->locallsharMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask,
|
||||
parent->localllogMask, parent->locall_Mask, parent->locallcieMask, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
||||
meantme, stdtme, meanretie, stdretie, fab, maxicam,rdx, rdy, grx, gry, blx, bly, meanx, meany, meanxe, meanye, prim, ill, contsig, lightsig,
|
||||
highresi, nresi, highresi46, nresi46, Lhighresi, Lnresi, Lhighresi46, Lnresi46);
|
||||
highresi, nresi, highresi46, nresi46, Lhighresi, Lnresi, Lhighresi46, Lnresi46, slopeg, linkrgb);
|
||||
|
||||
LocallabListener::locallabDenoiseLC denoiselc;
|
||||
denoiselc.highres = highresi;
|
||||
@ -1276,7 +1277,7 @@ void Crop::update(int todo)
|
||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
||||
meantme, stdtme, meanretie, stdretie, fab, maxicam, rdx, rdy, grx, gry, blx, bly, meanx, meany, meanxe, meanye, prim, ill, contsig, lightsig,
|
||||
highresi, nresi, highresi46, nresi46, Lhighresi, Lnresi, Lhighresi46, Lnresi46);
|
||||
highresi, nresi, highresi46, nresi46, Lhighresi, Lnresi, Lhighresi46, Lnresi46, slopeg, linkrgb);
|
||||
}
|
||||
|
||||
|
||||
@ -1449,7 +1450,6 @@ void Crop::update(int todo)
|
||||
WavOpacityCurveBY waOpacityCurveBY;
|
||||
WavOpacityCurveW waOpacityCurveW;
|
||||
WavOpacityCurveWL waOpacityCurveWL;
|
||||
|
||||
LUTf wavclCurve;
|
||||
|
||||
params.wavelet.getCurves(wavCLVCurve, wavdenoise, wavdenoiseh, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL);
|
||||
@ -1628,6 +1628,23 @@ void Crop::update(int todo)
|
||||
if (params.icm.workingTRC != ColorManagementParams::WorkingTrc::NONE && params.icm.trcExp) {
|
||||
const int GW = labnCrop->W;
|
||||
const int GH = labnCrop->H;
|
||||
if(params.icm.trcExp) {//local contrast
|
||||
int level_hr = 7;
|
||||
int maxlevpo = 9;
|
||||
bool wavcurvecont = false;
|
||||
WaveletParams WaveParams = params.wavelet;
|
||||
ColorManagementParams Colparams = params.icm;
|
||||
WavOpacityCurveWL icmOpacityCurveWL;
|
||||
Colparams.getCurves(icmOpacityCurveWL);
|
||||
parent->ipf.complete_local_contrast(labnCrop, labnCrop, WaveParams, Colparams, icmOpacityCurveWL, skip, level_hr, maxlevpo, wavcurvecont);
|
||||
bool enall = false;
|
||||
enall = wavcurvecont && Colparams.wavExp;//enable message only if curve enable and Expander on
|
||||
if (parent->primListener) {
|
||||
parent->primListener->wavlocChanged(float (maxlevpo), float (level_hr), enall);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
std::unique_ptr<LabImage> provis;
|
||||
const float pres = 0.01f * params.icm.preser;
|
||||
if (pres > 0.f && params.icm.wprim != ColorManagementParams::Primaries::DEFAULT) {
|
||||
@ -1639,8 +1656,8 @@ void Crop::update(int todo)
|
||||
|
||||
parent->ipf.lab2rgb(*labnCrop, *tmpImage1, params.icm.workingProfile);
|
||||
|
||||
const float gamtone = parent->params->icm.workingTRCGamma;
|
||||
const float slotone = parent->params->icm.workingTRCSlope;
|
||||
const float gamtone = parent->params->icm.wGamma;
|
||||
const float slotone = parent->params->icm.wSlope;
|
||||
|
||||
int illum = rtengine::toUnderlying(params.icm.will);
|
||||
const int prim = rtengine::toUnderlying(params.icm.wprim);
|
||||
|
@ -1402,7 +1402,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
if(params->locallab.spots.at(sp).complexcie == 2) {
|
||||
params->locallab.spots.at(sp).primMethod = prof;//in Basic mode set to Working profile
|
||||
}
|
||||
|
||||
float slopeg = 1.f;
|
||||
bool linkrgb = true;
|
||||
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv.get(), savenormtm.get(), savenormreti.get(), lastorigimp.get(), fw, fh, 0, 0, pW, pH, scale, locRETgainCurve, locRETtransCurve,
|
||||
lllocalcurve, locallutili,
|
||||
cllocalcurve, localclutili,
|
||||
@ -1458,7 +1459,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
||||
meantm, stdtm, meanreti, stdreti, fab, maxicam, rdx, rdy, grx, gry, blx, bly, meanx, meany, meanxe, meanye, prim, ill, contsig, lightsig,
|
||||
highresi, nresi, highresi46, nresi46, Lhighresi, Lnresi, Lhighresi46, Lnresi46);
|
||||
highresi, nresi, highresi46, nresi46, Lhighresi, Lnresi, Lhighresi46, Lnresi46, slopeg, linkrgb);
|
||||
|
||||
|
||||
fabrefp[sp] = fab;
|
||||
@ -1561,6 +1562,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
loccielc.meanylc = meany;
|
||||
loccielc.meanxelc = meanxe;
|
||||
loccielc.meanyelc = meanye;
|
||||
loccielc.slopeglc = slopeg;
|
||||
loccielc.linkrgblc = linkrgb;
|
||||
locallcielc.push_back(loccielc);
|
||||
|
||||
LocallabListener::locallabcieSIG locciesig;
|
||||
@ -2080,6 +2083,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
const int GH = nprevl->H;
|
||||
std::unique_ptr<LabImage> provis;
|
||||
const float pres = 0.01f * params->icm.preser;
|
||||
if(params->icm.trcExp) {//local contrast
|
||||
int level_hr = 7;
|
||||
int maxlevpo = 9;
|
||||
bool wavcurvecont = false;
|
||||
WaveletParams WaveParams = params->wavelet;
|
||||
ColorManagementParams Colparams = params->icm;
|
||||
Colparams.getCurves(icmOpacityCurveWL);
|
||||
ipf.complete_local_contrast(nprevl, nprevl, WaveParams,Colparams, icmOpacityCurveWL, scale, level_hr, maxlevpo, wavcurvecont);
|
||||
}
|
||||
|
||||
if (pres > 0.f && params->icm.wprim != ColorManagementParams::Primaries::DEFAULT) {
|
||||
provis.reset(new LabImage(GW, GH));
|
||||
@ -2090,8 +2102,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
|
||||
ipf.lab2rgb(*nprevl, *tmpImage1, params->icm.workingProfile);
|
||||
|
||||
const float gamtone = params->icm.workingTRCGamma;
|
||||
const float slotone = params->icm.workingTRCSlope;
|
||||
const float gamtone = params->icm.wGamma;
|
||||
const float slotone = params->icm.wSlope;
|
||||
int illum = toUnderlying(params->icm.will);
|
||||
const int prim = toUnderlying(params->icm.wprim);
|
||||
|
||||
|
@ -160,6 +160,7 @@ protected:
|
||||
WavOpacityCurveBY waOpacityCurveBY;
|
||||
WavOpacityCurveW waOpacityCurveW;
|
||||
WavOpacityCurveWL waOpacityCurveWL;
|
||||
WavOpacityCurveWL icmOpacityCurveWL;
|
||||
RetinextransmissionCurve dehatransmissionCurve;
|
||||
RetinexgaintransmissionCurve dehagaintransmissionCurve;
|
||||
|
||||
|
@ -1228,9 +1228,11 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
|
||||
Qpro = (Qpro == 0.f ? epsil : Qpro); // avoid division by zero
|
||||
spro = 100.0f * sqrtf(Mpro / Qpro);
|
||||
|
||||
if(settings->autocielab) {//avoid artifacts
|
||||
if (Jpro > 99.9f) {
|
||||
Jpro = 99.9f;
|
||||
}
|
||||
}
|
||||
|
||||
Jpro = CAMBrightCurveJ[(float)(Jpro * 327.68f)]; //lightness CIECAM02 + contrast
|
||||
float Sp = spro / 100.0f;
|
||||
|
@ -389,11 +389,19 @@ enum class BlurType {
|
||||
bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, int lllogMask, int ll_Mask, int llcieMask,
|
||||
float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax,
|
||||
float& meantm, float& stdtm, float& meanreti, float& stdreti, float &fab, float &maxicam, float &rdx, float &rdy, float &grx, float &gry, float &blx, float &bly, float &meanx, float &meany, float &meanxe, float &meanye, int &prim, int &ill, float &contsig, float &lightsig,
|
||||
float &highresi, float &nresi, float &highresi46, float &nresi46, float &Lhighresi, float &Lnresi, float &Lhighresi46, float &Lnresi46);
|
||||
float &highresi, float &nresi, float &highresi46, float &nresi46, float &Lhighresi, float &Lnresi, float &Lhighresi46, float &Lnresi46, float &slopeg, bool &linkrgb);
|
||||
|
||||
void tone_eqcam2(ImProcFunctions *ipf, Imagefloat *rgb, int whits, int blacks, const Glib::ustring &workingProfile, double scale, bool multithread);
|
||||
void tone_eqdehaz(ImProcFunctions *ipf, Imagefloat *rgb, int whits, int blacks, const Glib::ustring &workingProfile, double scale, bool multithread);
|
||||
void tone_eqcam(ImProcFunctions *ipf, Imagefloat *rgb, int midtone, const Glib::ustring &workingProfile, double scale, bool multithread);
|
||||
void tonemapFreeman(float target_slope, float target_sloper, float target_slopeg , float target_slopeb, float white_point, float black_point, float mid_gray_scene, float mid_gray_view, bool rolloff, float smooththreshold, bool limslope, LUTf& lut, LUTf& lutr, LUTf& lutg, LUTf& lutb, int mode, bool scale, bool takeyb);
|
||||
void tonemapFreemanQ(float Q, float &Qout, float target_slope, float white_point, float black_point, float mid_gray_scene, float mid_gray_view, bool rolloff, bool takeyb);
|
||||
|
||||
float get_freeman_parameters(float x, bool rolloff_, float mid_gray_scene, float gamma, float slopelim, float dr, float b, float c, float kmid);
|
||||
float rolloff_freeman_function(float x, float dr, float b, float c, float kmid);
|
||||
float scene_referred_contrast(float x, float mid_gray_scene, float gamma);
|
||||
void sigmoid_main(float r, float g, float b, float &rout, float &gout, float &bout, float middle_grey_contrast, float contrast_skewness, /* float white_point,*/ float middle_grey, float black_point, float white_point_disp);
|
||||
void sigmoid_QJ(float Q, float &Qout, float middle_grey_contrast, float contrast_skewness, float middle_grey, float black_point, float white_point_disp);
|
||||
|
||||
void addGaNoise(LabImage *lab, LabImage *dst, const float mean, const float variance, const int sk);
|
||||
void BlurNoise_Localold(int call, const struct local_params& lp, LabImage* original, LabImage* transformed, const LabImage* const tmp1, int cx, int cy);
|
||||
@ -417,7 +425,7 @@ enum class BlurType {
|
||||
const LocwavCurve & loccomprewavCurve, bool loccomprewavutili,
|
||||
float radlevblur, int process, float chromablu, float thres, float sigmadc, float deltad);
|
||||
|
||||
void wavlc(wavelet_decomposition& wdspot, int level_bl, int level_hl, int maxlvl, int level_hr, int level_br, float ahigh, float bhigh, float alow, float blow, float sigmalc, float strength, const LocwavCurve & locwavCurve, int numThreads);
|
||||
void wavlc(wavelet_decomposition& wdspot, int level_bl, int level_hl, int maxlvl, int level_hr, int level_br, float ahigh, float bhigh, float alow, float blow, float sigmalc, float offslc, float strength, const LocwavCurve & locwavCurve, int numThreads);
|
||||
|
||||
void wavcbd(wavelet_decomposition &wdspot, int level_bl, int maxlvl,
|
||||
const LocwavCurve& locconwavCurve, bool locconwavutili, float sigm, float offs, float chromalev, int sk);
|
||||
@ -463,6 +471,7 @@ enum class BlurType {
|
||||
int W_ab, int H_ab, const bool useChannelA, float *meanab, float *sigmaab);
|
||||
void Evaluate2(const wavelet_decomposition &WaveletCoeffs_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN, int numThreads);
|
||||
void Eval2(const float* const* WavCoeffs_L, int level, int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN, int numThreads);
|
||||
void complete_local_contrast (LabImage * lab, LabImage * dst, const procparams::WaveletParams & waparams, const procparams::ColorManagementParams & cmparams, const WavOpacityCurveWL & cmOpacityCurveWL, int skip, int &level_hr, int &maxlevpo, bool &wavcurvecont);
|
||||
|
||||
void calceffect(int level, float *mean, float *sigma, float *mea, float effect, float offs);
|
||||
std::unique_ptr<LUTf> buildMeaLut(const float inVals[11], const float mea[10], float& lutFactor);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -17,7 +17,7 @@
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
// * 2014 - 2019 2020 - Jacques Desmis <jdesmis@gmail.com>
|
||||
// * 2014 - 2019 2020 2024 - Jacques Desmis <jdesmis@gmail.com>
|
||||
// * 2014 Ingo Weyrich <heckflosse@i-weyrich.de>
|
||||
|
||||
//
|
||||
@ -396,7 +396,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const
|
||||
constexpr float atten123 = 0.90f;
|
||||
|
||||
//int DaubLen = settings->daubech ? 8 : 6;
|
||||
int DaubLen;
|
||||
int DaubLen = 6;
|
||||
|
||||
if (params->wavelet.daubcoeffmethod == "2_") {
|
||||
DaubLen = 4;
|
||||
@ -406,8 +406,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const
|
||||
DaubLen = 8;
|
||||
} else if (params->wavelet.daubcoeffmethod == "10_") {
|
||||
DaubLen = 12;
|
||||
} else { /* if (params->wavelet.daubcoeffmethod == "14_") */
|
||||
} else if (params->wavelet.daubcoeffmethod == "14_") {
|
||||
DaubLen = 16;
|
||||
} else if (params->wavelet.daubcoeffmethod == "20_"){
|
||||
DaubLen = 22;
|
||||
}
|
||||
|
||||
cp.CHSLmet = 1;
|
||||
@ -2951,6 +2953,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float *
|
||||
calceffect(lvl, mean, sigma, mea, effect, offs);
|
||||
float lutFactor;
|
||||
const float inVals[] = {0.05f, 0.2f, 0.7f, 1.f, 1.f, 0.8f, 0.6f, 0.4f, 0.2f, 0.1f, 0.01f};
|
||||
|
||||
const auto meaLut = buildMeaLut(inVals, mea, lutFactor);
|
||||
if (!aft.get()) {
|
||||
aft.reset(new float[Wlvl_L * Hlvl_L]);
|
||||
@ -3400,6 +3403,343 @@ void ImProcFunctions::calckoe (const float* WavCoeffs, float gradw, float tloww,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Copyright 6-2024 - Jacques Desmis <jdesmis@gmail.com>
|
||||
void ImProcFunctions::complete_local_contrast (LabImage * lab, LabImage * dst, const procparams::WaveletParams & waparams, const procparams::ColorManagementParams & cmparams, const WavOpacityCurveWL & cmOpacityCurveWL, int skip, int &level_hr, int &maxlevpo, bool &wavcurvecont)
|
||||
{
|
||||
wavcurvecont = false;
|
||||
if (cmOpacityCurveWL) {//activate only if one value not equal to 0.5
|
||||
for (int i = 0; i < 500; i++) {
|
||||
if (cmOpacityCurveWL[i] != 0.5f) {
|
||||
wavcurvecont = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(wavcurvecont && cmparams.wavExp) {//enable curve and expander
|
||||
#ifdef _OPENMP
|
||||
const int numThreads = omp_get_max_threads();
|
||||
#else
|
||||
const int numThreads = 1;
|
||||
|
||||
#endif
|
||||
int width = lab->W;
|
||||
int height = lab->H;
|
||||
int wavelet_lev = 7;//default
|
||||
int DaubLen = 4;//type of wave
|
||||
if (waparams.daubcoeffmethod == "2_") {
|
||||
DaubLen = 4;
|
||||
} else if (waparams.daubcoeffmethod == "4_") {
|
||||
DaubLen = 6;//default
|
||||
} else if (waparams.daubcoeffmethod == "6_") {
|
||||
DaubLen = 8;
|
||||
} else if (waparams.daubcoeffmethod == "10_") {
|
||||
DaubLen = 12;
|
||||
} else if (params->wavelet.daubcoeffmethod == "14_") {
|
||||
DaubLen = 16;
|
||||
} else if (params->wavelet.daubcoeffmethod == "20_") {
|
||||
DaubLen = 22;
|
||||
}
|
||||
float sigmafin = cmparams.sigmatrc;//attenuation response signal
|
||||
int pyrwav = cmparams.pyrwavtrc;//levels contrast profiles
|
||||
float offset = cmparams.offstrc;//offset signal
|
||||
int level_bl = 0;//adapted to each levels profile
|
||||
int level_hl = 1;//adapted to each levels profile
|
||||
int level_br = wavelet_lev;
|
||||
level_hr = wavelet_lev;//to adapt if necessary
|
||||
|
||||
//6 contrast profiles to change range levels and rolloff for high contrast positive and negative - of course we can add anothers
|
||||
//I change only values for LUT for high contrast values and not for low levels, but we can...
|
||||
float inva5 = 0.8f;
|
||||
float inva6 = 0.7f;
|
||||
float inva7 = 0.5f;
|
||||
float inva8 = 0.4f;
|
||||
float inva9 = 0.3f;
|
||||
float inva10 = 0.1f;
|
||||
|
||||
if(pyrwav == 1) {//low contrast
|
||||
level_bl = 0;//0
|
||||
level_hl = 1;//1
|
||||
level_br = wavelet_lev - 3;//-3
|
||||
level_hr = wavelet_lev - 2;//-2
|
||||
} else if(pyrwav == 2) {
|
||||
level_bl = 0;//0
|
||||
level_hl = 0;//1
|
||||
level_br = wavelet_lev - 3;//-2
|
||||
level_hr = wavelet_lev - 1;//-1
|
||||
if(!cmparams.wsmoothcie) {
|
||||
inva5 = 1.f;
|
||||
inva6 = 0.8f;
|
||||
inva7 = 0.65f;
|
||||
inva8 = 0.5f;
|
||||
inva9 = 0.3f;
|
||||
inva10 = 0.2f;
|
||||
}
|
||||
} else if( pyrwav == 3) {//default
|
||||
level_bl = 0;
|
||||
level_hl = 0;
|
||||
level_br = wavelet_lev - 2;//-1
|
||||
level_hr = wavelet_lev;//0
|
||||
if(!cmparams.wsmoothcie) {
|
||||
inva5 = 1.f; //1
|
||||
inva6 = 0.9f;//0.9
|
||||
inva7 = 0.7f;//0.7
|
||||
inva8 = 0.6f;//0.6
|
||||
inva9 = 0.4f;//0.4
|
||||
inva10 = 0.2f;//0.2
|
||||
}
|
||||
} else if( pyrwav == 4) {
|
||||
level_bl = 0;
|
||||
level_hl = 0;
|
||||
level_br = wavelet_lev -1;//0
|
||||
level_hr = wavelet_lev +1;//0
|
||||
if(!cmparams.wsmoothcie) {
|
||||
inva5 = 0.9f;
|
||||
inva6 = 0.8f;
|
||||
inva7 = 0.6f;
|
||||
inva8 = 0.5f;
|
||||
inva9 = 0.3f;
|
||||
inva10 = 0.1f;
|
||||
}
|
||||
} else if( pyrwav == 5) {
|
||||
level_bl = 0;
|
||||
level_hl = 0;
|
||||
level_br = wavelet_lev - 1;//-1
|
||||
level_hr = wavelet_lev + 2;//+1 //be careful the preview must be big enough to see the changes
|
||||
if(!cmparams.wsmoothcie) {
|
||||
inva5 = 0.8f;//0.85
|
||||
inva6 = 0.6f;//0.75
|
||||
inva7 = 0.5f;//0.55
|
||||
inva8 = 0.3f;//0.45
|
||||
inva9 = 0.2f;//0.3
|
||||
inva10 = 0.05f;//0.1
|
||||
|
||||
}//last choice not used for various reasons
|
||||
} else if( pyrwav == 6) {//agresive - maximum - in this case LUT are minimal to avoid artifacts -be careful the preview must be big enough to see the changes
|
||||
level_bl = 0;
|
||||
level_hl = 0;
|
||||
level_br = wavelet_lev ;//-1
|
||||
level_hr = wavelet_lev + 2;//here maximum
|
||||
}
|
||||
|
||||
//find possible max levels in function of windows preview size.
|
||||
int minwin = rtengine::min(width, height);
|
||||
int maxlevelspot = 9;//maximum possible
|
||||
|
||||
// adapt maximum level wavelet to size of crop
|
||||
while ((1 << maxlevelspot) >= minwin && maxlevelspot > 1) {
|
||||
--maxlevelspot ;
|
||||
}
|
||||
|
||||
int wavelet_level = rtengine::min(level_hr, maxlevelspot);
|
||||
int maxlvl = wavelet_level;
|
||||
maxlevpo = maxlvl;
|
||||
//decomposition wavelet , we can change Daublen (moment wavelet) in Tab - Wavelet Levels with subsampling = 1
|
||||
std::unique_ptr<wavelet_decomposition> wdspot = std::unique_ptr<wavelet_decomposition>(new wavelet_decomposition(lab->L[0], width, height, maxlvl, 1, skip, numThreads, DaubLen));
|
||||
if (wdspot->memory_allocation_failed()) {//probably if not enough memory.
|
||||
return;
|
||||
}
|
||||
|
||||
//residual contrast
|
||||
const float contresid = cmparams.residtrc;
|
||||
|
||||
if (contresid != 0) {
|
||||
int W_L = wdspot->level_W(0);
|
||||
int H_L = wdspot->level_H(0);
|
||||
float *wav_L0 = wdspot->get_coeff0();//residual image
|
||||
|
||||
|
||||
float maxh = 1.25f; //amplification contrast above mean, we can change 1.25f
|
||||
float maxl = 1.25f; //reduction contrast under mean
|
||||
float multL = contresid * (maxl - 1.f) / 100.f + 1.f;
|
||||
float multH = contresid * (maxh - 1.f) / 100.f + 1.f;
|
||||
double avedbl = 0.0; // use double precision for large summations
|
||||
float max0 = 0.f;
|
||||
float min0 = FLT_MAX;
|
||||
|
||||
#ifdef _OPENMP
|
||||
# pragma omp parallel for reduction(+:avedbl) if (multiThread)
|
||||
#endif
|
||||
for (int i = 0; i < W_L * H_L; i++) {
|
||||
avedbl += wav_L0[i];
|
||||
}
|
||||
|
||||
#ifdef _OPENMP
|
||||
# pragma omp parallel if (multiThread)
|
||||
#endif
|
||||
{
|
||||
float lminL = FLT_MAX;
|
||||
float lmaxL = 0.f;
|
||||
|
||||
#ifdef _OPENMP
|
||||
# pragma omp for
|
||||
#endif
|
||||
for (int i = 0; i < W_L * H_L; i++) {
|
||||
lminL = min(lminL, wav_L0[i]);
|
||||
lmaxL = max(lmaxL, wav_L0[i]);
|
||||
}
|
||||
|
||||
#ifdef _OPENMP
|
||||
# pragma omp critical
|
||||
#endif
|
||||
{
|
||||
min0 = min(min0, lminL);
|
||||
max0 = max(max0, lmaxL);
|
||||
}
|
||||
}
|
||||
|
||||
max0 /= 327.68f;
|
||||
min0 /= 327.68f;
|
||||
float ave = avedbl / double(W_L * H_L);
|
||||
//transitions
|
||||
float av = ave / 327.68f;
|
||||
float ah = (multH - 1.f) / (av - max0);
|
||||
float bh = 1.f - max0 * ah;
|
||||
float al = (multL - 1.f) / (av - min0);
|
||||
float bl = 1.f - min0 * al;
|
||||
|
||||
if (max0 > 0.0) {
|
||||
#ifdef _OPENMP
|
||||
# pragma omp parallel for if (multiThread)
|
||||
#endif
|
||||
for (int i = 0; i < W_L * H_L; i++) {
|
||||
if (wav_L0[i] < 32768.f) {
|
||||
float prov;
|
||||
|
||||
if (wav_L0[i] > ave) {
|
||||
float kh = ah * (wav_L0[i] / 327.68f) + bh;
|
||||
prov = wav_L0[i];
|
||||
wav_L0[i] = ave + kh * (wav_L0[i] - ave);
|
||||
} else {
|
||||
float kl = al * (wav_L0[i] / 327.68f) + bl;
|
||||
prov = wav_L0[i];
|
||||
wav_L0[i] = ave - kl * (ave - wav_L0[i]);
|
||||
}
|
||||
|
||||
float diflc = wav_L0[i] - prov;
|
||||
wav_L0[i] = prov + diflc;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//end residual contrast
|
||||
|
||||
//begin variable contrast
|
||||
// declaration with 10 levels to calculate mean , mean negative, sigma, sigma negative, Max et Max negative for each level
|
||||
float mean[10];
|
||||
float meanN[10];
|
||||
float sigma[10];
|
||||
float sigmaN[10];
|
||||
float MaxP[10];
|
||||
float MaxN[10];
|
||||
Evaluate2(*wdspot, mean, meanN, sigma, sigmaN, MaxP, MaxN, numThreads);//calculate mean sigma Max for each levels
|
||||
float alow = 1.f;
|
||||
float blow = 0.f;
|
||||
|
||||
if (level_hl != level_bl) {//transitions low levels
|
||||
alow = 1.f / (level_hl - level_bl);
|
||||
blow = -alow * level_bl;
|
||||
}
|
||||
|
||||
float ahigh = 1.f;
|
||||
float bhigh = 0.f;
|
||||
|
||||
if (level_hr != level_br) {//transitions high levels
|
||||
ahigh = 1.f / (level_hr - level_br);
|
||||
bhigh = -ahigh * level_br;
|
||||
}
|
||||
|
||||
for (int dir = 1; dir < 4; dir++) {//for each direction
|
||||
for (int level = level_bl; level < maxlvl; ++level) {//for each levels
|
||||
int W_L = wdspot->level_W(level);
|
||||
int H_L = wdspot->level_H(level);
|
||||
float* const* wav_L = wdspot->level_coeffs(level);
|
||||
//sigmafin = attenuation response to change signal shape
|
||||
// I use only positives values to simplify calculations... possible improvment.
|
||||
if (MaxP[level] > 0.f && mean[level] != 0.f && sigma[level] != 0.f) {
|
||||
float insigma = 0.666f; //SD standard deviation (modelisation)
|
||||
float logmax = log(MaxP[level]); //log Max
|
||||
float rapX = (offset * mean[level] + sigmafin * sigma[level]) / MaxP[level]; //rapport between SD / max
|
||||
//offset move mean location in signal
|
||||
float inx = log(insigma);
|
||||
float iny = log(rapX);
|
||||
float rap = inx / iny; //koef
|
||||
//transitions
|
||||
float asig = 0.166f / (sigma[level] * sigmafin);
|
||||
float bsig = 0.5f - asig * (mean[level] * offset);
|
||||
float amean = 0.5f / (mean[level] * offset);
|
||||
const float effect = sigmafin;
|
||||
float mea[10];//simulation using mean and sigma, to evaluate signal
|
||||
calceffect(level, mean, sigma, mea, effect, offset);
|
||||
float klev = 1.f;
|
||||
if (level >= level_hl && level <= level_hr) {
|
||||
klev = 1.f;
|
||||
}
|
||||
//change klev with real change in levels - see contrast profiles
|
||||
//transition in beginning low levels
|
||||
if (level_hl != level_bl) {
|
||||
if (level >= level_bl && level < level_hl) {
|
||||
klev = alow * level + blow;
|
||||
}
|
||||
}
|
||||
//transition in max levels
|
||||
if (level_hr != level_br) {
|
||||
if (level > level_hr && level <= level_br) {
|
||||
klev = ahigh * level + bhigh;
|
||||
}
|
||||
}
|
||||
const float threshold = offset * mean[level] + sigmafin * sigma[level];//base signal calculation.
|
||||
float lutFactor;//inva5, inva6, inva7, inva8, inva9, inva10 are define in Contrast profiles.
|
||||
float inVals[] = {0.05f, 0.2f, 0.7f, 1.f, 1.f, inva5, inva6, inva7, inva8, inva9, inva10};//values to give for calculate LUT along signal : minimal near 0 or MaxP
|
||||
const auto meaLut = buildMeaLut(inVals, mea, lutFactor);//build LUT
|
||||
|
||||
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for if (multiThread)
|
||||
#endif
|
||||
|
||||
for (int y = 0; y < H_L; y++) {
|
||||
for (int x = 0; x < W_L; x++) {//for each pixel
|
||||
if(cmOpacityCurveWL) {//if curve enable
|
||||
float absciss;//position in curve and signal
|
||||
float &val = wav_L[dir][y * W_L + x];
|
||||
const float WavCL = std::fabs(wav_L[dir][y * W_L + x]);
|
||||
|
||||
if (WavCL >= threshold) { //for max take into account attenuation response and offset
|
||||
float valcour = xlogf(fabsf(val));
|
||||
float valc = valcour - logmax;
|
||||
float vald = valc * rap;
|
||||
absciss = xexpf(vald);
|
||||
} else if (WavCL >= offset * mean[level]) {//offset only
|
||||
absciss = asig * WavCL + bsig;
|
||||
} else {
|
||||
absciss = amean * WavCL;
|
||||
}
|
||||
/*
|
||||
*/
|
||||
float kc = klev * (cmOpacityCurveWL[absciss * 500.f] - 0.5f);
|
||||
float amplieffect = kc <= 0.f ? 1.f : 1.7f;//we can change 1.5 - to 1.7 or more or less
|
||||
|
||||
float kinterm = 1.f + amplieffect * kc;
|
||||
kinterm = kinterm <= 0.f ? 0.01f : kinterm;
|
||||
val *= (1.f + (kinterm - 1.f) * (*meaLut)[WavCL * lutFactor]);//change signal (contrast) for each level, direction, with LUT.
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//reconstruct lab
|
||||
wdspot->reconstruct(lab->L[0], 1.f);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void ImProcFunctions::finalContAllL(float* const* WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const cont_params &cp,
|
||||
int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL)
|
||||
{
|
||||
|
@ -1105,9 +1105,9 @@ enum ProcEventCode {
|
||||
Evlocallabsensicie = 1075,
|
||||
Evlocallabmodecie = 1076,
|
||||
Evlocallabrstprotectcie = 1077,
|
||||
Evlocallabsigmoidldacie = 1078,
|
||||
Evlocallabsigmoidthcie = 1079,
|
||||
Evlocallabsigmoidblcie = 1080,
|
||||
Evlocallabsigmoidldacie12 = 1078,
|
||||
Evlocallabsigmoidthcie12 = 1079,
|
||||
Evlocallabsigmoidblcie12 = 1080,
|
||||
Evlocallabcomprcieauto = 1081,
|
||||
Evlocallabhuecie = 1082,
|
||||
Evlocallabjabcie = 1083,
|
||||
@ -1115,9 +1115,9 @@ enum ProcEventCode {
|
||||
Evlocallabcontjzcie = 1085,
|
||||
Evlocallabchromjzcie = 1086,
|
||||
Evlocallabhuejzcie = 1087,
|
||||
Evlocallabsigmoidldajzcie = 1088,
|
||||
Evlocallabsigmoidthjzcie = 1089,
|
||||
Evlocallabsigmoidbljzcie = 1090,
|
||||
Evlocallabsigmoidldajzcie12 = 1088,
|
||||
Evlocallabsigmoidthjzcie12 = 1089,
|
||||
Evlocallabsigmoidbljzcie12 = 1090,
|
||||
Evlocallabadapjzcie = 1091,
|
||||
Evlocallabmodecam = 1092,
|
||||
Evlocallabhljzcie = 1093,
|
||||
@ -1138,7 +1138,7 @@ enum ProcEventCode {
|
||||
Evlocallabshapejz = 1108,
|
||||
Evlocallabshapecz = 1109,
|
||||
Evlocallabshapeczjz = 1110,
|
||||
Evlocallabforcejz = 1111,
|
||||
//Evlocallabforcejz = 1111,
|
||||
Evlocallabpqremapcam16 = 1112,
|
||||
EvLocallabEnacieMask = 1113,
|
||||
EvlocallabCCmaskcieshape = 1114,
|
||||
@ -1173,9 +1173,9 @@ enum ProcEventCode {
|
||||
EvlocallabwhiteEvjz = 1143,
|
||||
Evlocallablogjz = 1144,
|
||||
Evlocallabtargetjz = 1145,
|
||||
Evlocallabforcebw = 1146,
|
||||
Evlocallabsigjz = 1147,
|
||||
Evlocallabsigq = 1148,
|
||||
Evlocallabsigybjz12 = 1146,
|
||||
Evlocallabsigjz12 = 1147,
|
||||
Evlocallabsigq12 = 1148,
|
||||
Evlocallablogcie = 1149,
|
||||
NUMOFEVENTS
|
||||
};
|
||||
|
@ -2665,9 +2665,28 @@ ColorManagementParams::ColorManagementParams() :
|
||||
will(Illuminant::DEFAULT),
|
||||
wprim(Primaries::DEFAULT),
|
||||
wcat(Cat::BRAD),
|
||||
workingTRCGamma(2.4),//gamma sRGB
|
||||
workingTRCSlope(12.92),
|
||||
wGamma(2.4),//gamma sRGB
|
||||
wSlope(12.92),
|
||||
wmidtcie(0.),
|
||||
sigmatrc(1.),
|
||||
offstrc(1.),
|
||||
residtrc(0.),
|
||||
pyrwavtrc(2),
|
||||
opacityCurveWLI{
|
||||
static_cast<double>(FCT_MinMaxCPoints),
|
||||
0.0,
|
||||
0.50,
|
||||
0.35,
|
||||
0.35,
|
||||
0.50,
|
||||
0.70,
|
||||
0.35,
|
||||
0.35,
|
||||
1.00,
|
||||
0.50,
|
||||
0.35,
|
||||
0.35
|
||||
},
|
||||
wsmoothcie(false),
|
||||
redx(0.7347),
|
||||
redy(0.2653),
|
||||
@ -2681,6 +2700,7 @@ ColorManagementParams::ColorManagementParams() :
|
||||
preser(0.),
|
||||
fbw(false),
|
||||
trcExp(false),
|
||||
wavExp(false),
|
||||
gamut(true),
|
||||
labgridcieALow(0.51763),//Prophoto red = (0.7347+0.1) * 1.81818 - 1
|
||||
labgridcieBLow(-0.33582),
|
||||
@ -2713,9 +2733,14 @@ bool ColorManagementParams::operator ==(const ColorManagementParams& other) cons
|
||||
&& will == other.will
|
||||
&& wprim == other.wprim
|
||||
&& wcat == other.wcat
|
||||
&& workingTRCGamma == other.workingTRCGamma
|
||||
&& workingTRCSlope == other.workingTRCSlope
|
||||
&& wGamma == other.wGamma
|
||||
&& wSlope == other.wSlope
|
||||
&& wmidtcie == other.wmidtcie
|
||||
&& sigmatrc == other.sigmatrc
|
||||
&& offstrc == other.offstrc
|
||||
&& pyrwavtrc == other.pyrwavtrc
|
||||
&& residtrc == other.residtrc
|
||||
&& opacityCurveWLI == other.opacityCurveWLI
|
||||
&& wsmoothcie == other.wsmoothcie
|
||||
&& redx == other.redx
|
||||
&& redy == other.redy
|
||||
@ -2739,6 +2764,7 @@ bool ColorManagementParams::operator ==(const ColorManagementParams& other) cons
|
||||
&& preser == other.preser
|
||||
&& fbw == other.fbw
|
||||
&& trcExp == other.trcExp
|
||||
&& wavExp == other.wavExp
|
||||
&& gamut == other.gamut
|
||||
&& aRendIntent == other.aRendIntent
|
||||
&& outputProfile == other.outputProfile
|
||||
@ -2746,6 +2772,13 @@ bool ColorManagementParams::operator ==(const ColorManagementParams& other) cons
|
||||
&& outputBPC == other.outputBPC;
|
||||
}
|
||||
|
||||
void ColorManagementParams::getCurves(
|
||||
WavOpacityCurveWL& opacityCurveLUTWLI
|
||||
) const
|
||||
{
|
||||
opacityCurveLUTWLI.Set(this->opacityCurveWLI);
|
||||
}
|
||||
|
||||
bool ColorManagementParams::operator !=(const ColorManagementParams& other) const
|
||||
{
|
||||
return !(*this == other);
|
||||
@ -4224,6 +4257,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
lcdarkness(1.0),
|
||||
lclightness(1.0),
|
||||
sigmalc(1.0),
|
||||
offslc(1.0),
|
||||
levelwav(4),
|
||||
residcont(0.0),
|
||||
residsha(0.0),
|
||||
@ -4275,7 +4309,8 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
wavgradl(false),
|
||||
wavcompre(false),
|
||||
origlc(false),
|
||||
localcontMethod("loc"),
|
||||
processwav(false),
|
||||
localcontMethod("wav"),
|
||||
localedgMethod("thr"),
|
||||
localneiMethod("low"),
|
||||
locwavcurve{
|
||||
@ -4289,7 +4324,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
0.35,
|
||||
0.35
|
||||
},
|
||||
csthreshold(0, 0, 6, 6, false),
|
||||
csthreshold(0, 0, 7, 5, false),
|
||||
loclevwavcurve{
|
||||
static_cast<double>(FCT_MinMaxCPoints),
|
||||
0.0,
|
||||
@ -4709,11 +4744,11 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
reparcie(100.),
|
||||
sensicie(60),
|
||||
Autograycie(true),
|
||||
forcejz(true),
|
||||
forcebw(true),
|
||||
sigybjz12(false),
|
||||
qtoj(false),
|
||||
jabcie(true),
|
||||
comprcieauto(false),
|
||||
normcie12(false),
|
||||
normcie(true),
|
||||
gamutcie(true),
|
||||
bwcie(false),
|
||||
@ -4722,10 +4757,17 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
satcie(true),
|
||||
logcieq(false),
|
||||
smoothcie(false),
|
||||
smoothcietrc(true),
|
||||
smoothcietrcrel(true),
|
||||
smoothcieyb(false),
|
||||
smoothcielum(false),
|
||||
smoothciehigh(true),
|
||||
smoothcielnk(true),
|
||||
logjz(false),
|
||||
sigjz12(false),
|
||||
sigjz(false),
|
||||
forcebw(false),
|
||||
sigq12(false),
|
||||
sigq(false),
|
||||
chjzcie(true),
|
||||
sourceGraycie(18.),
|
||||
@ -4733,6 +4775,8 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
sursourcie("Average"),
|
||||
modecie("com"),
|
||||
modecam("cam16"),
|
||||
modeQJ("512"),
|
||||
bwevMethod12("slop"),
|
||||
bwevMethod("sig"),
|
||||
saturlcie(0.),
|
||||
rstprotectcie(0.),
|
||||
@ -4898,19 +4942,31 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
blackEvjz(-5.00),
|
||||
whiteEvjz(10.00),
|
||||
targetjz(18.0),
|
||||
sigmoidldacie12(1.8),
|
||||
sigmoidthcie12(0.0),
|
||||
sigmoidblcie12(100.),
|
||||
sigmoidldacie(0.5),
|
||||
sigmoidthcie(1.2),
|
||||
sigmoidsenscie(0.9),
|
||||
sigmoidblcie(0.75),
|
||||
|
||||
comprcie(0.4),
|
||||
strcielog(80.),
|
||||
comprcieth(6.),
|
||||
gamjcie(2.4),
|
||||
smoothcieth(1.),
|
||||
slopjcie(12.923),
|
||||
contsig(1.15),
|
||||
skewsig(0.),
|
||||
whitsig(100.),
|
||||
slopesmo(1.),
|
||||
slopesmoq(1.),
|
||||
slopesmor(1.),
|
||||
slopesmog(1.),
|
||||
slopesmob(1.),
|
||||
kslopesmor(1.),
|
||||
kslopesmog(1.),
|
||||
kslopesmob(1.),
|
||||
midtcie(0),
|
||||
grexl(0.1596),
|
||||
greyl(0.8404),
|
||||
@ -4931,12 +4987,15 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
labgridcieWy(-0.16636),//
|
||||
labgridcieMx(0.),
|
||||
labgridcieMy(0.),//
|
||||
whitescie(0),
|
||||
whitescie(20),
|
||||
blackscie(0),
|
||||
illMethod("d50"),
|
||||
smoothciemet("none"),
|
||||
primMethod("pro"),
|
||||
catMethod("brad"),
|
||||
sigmoidldajzcie12(1.3),
|
||||
sigmoidthjzcie12(0.),
|
||||
sigmoidbljzcie12(100.),
|
||||
sigmoidldajzcie(0.5),
|
||||
sigmoidthjzcie(1.),
|
||||
sigmoidbljzcie(1.),
|
||||
@ -5555,6 +5614,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& lcdarkness == other.lcdarkness
|
||||
&& lclightness == other.lclightness
|
||||
&& sigmalc == other.sigmalc
|
||||
&& offslc == other.offslc
|
||||
&& levelwav == other.levelwav
|
||||
&& residcont == other.residcont
|
||||
&& residsha == other.residsha
|
||||
@ -5606,6 +5666,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& wavgradl == other.wavgradl
|
||||
&& wavcompre == other.wavcompre
|
||||
&& origlc == other.origlc
|
||||
&& processwav == other.processwav
|
||||
&& localcontMethod == other.localcontMethod
|
||||
&& localedgMethod == other.localedgMethod
|
||||
&& localneiMethod == other.localneiMethod
|
||||
@ -5751,11 +5812,11 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& reparcie == other.reparcie
|
||||
&& sensicie == other.sensicie
|
||||
&& Autograycie == other.Autograycie
|
||||
&& forcejz == other.forcejz
|
||||
&& forcebw == other.forcebw
|
||||
&& sigybjz12 == other.sigybjz12
|
||||
&& qtoj == other.qtoj
|
||||
&& jabcie == other.jabcie
|
||||
&& comprcieauto == other.comprcieauto
|
||||
&& normcie12 == other.normcie12
|
||||
&& normcie == other.normcie
|
||||
&& gamutcie == other.gamutcie
|
||||
&& bwcie == other.bwcie
|
||||
@ -5764,10 +5825,17 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& satcie == other.satcie
|
||||
&& logcieq == other.logcieq
|
||||
&& smoothcie == other.smoothcie
|
||||
&& smoothcietrc == other.smoothcietrc
|
||||
&& smoothcietrcrel == other.smoothcietrcrel
|
||||
&& smoothcieyb == other.smoothcieyb
|
||||
&& smoothcielum == other.smoothcielum
|
||||
&& smoothciehigh == other.smoothciehigh
|
||||
&& smoothcielnk == other.smoothcielnk
|
||||
&& logjz == other.logjz
|
||||
&& sigjz12 == other.sigjz12
|
||||
&& sigjz == other.sigjz
|
||||
&& forcebw == other.forcebw
|
||||
&& sigq12 == other.sigq12
|
||||
&& sigq == other.sigq
|
||||
&& chjzcie == other.chjzcie
|
||||
&& sourceGraycie == other.sourceGraycie
|
||||
@ -5775,6 +5843,8 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& sursourcie == other.sursourcie
|
||||
&& modecie == other.modecie
|
||||
&& modecam == other.modecam
|
||||
&& modeQJ == other.modeQJ
|
||||
&& bwevMethod12 == other.bwevMethod12
|
||||
&& bwevMethod == other.bwevMethod
|
||||
&& saturlcie == other.saturlcie
|
||||
&& rstprotectcie == other.rstprotectcie
|
||||
@ -5822,6 +5892,10 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& blackEvjz == other.blackEvjz
|
||||
&& whiteEvjz == other.whiteEvjz
|
||||
&& targetjz == other.targetjz
|
||||
&& sigmoidldacie12 == other.sigmoidldacie12
|
||||
&& sigmoidthcie12 == other.sigmoidthcie12
|
||||
&& sigmoidblcie12 == other.sigmoidblcie12
|
||||
|
||||
&& sigmoidldacie == other.sigmoidldacie
|
||||
&& sigmoidthcie == other.sigmoidthcie
|
||||
&& sigmoidsenscie == other.sigmoidsenscie
|
||||
@ -5830,11 +5904,19 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& strcielog == other.strcielog
|
||||
&& comprcieth == other.comprcieth
|
||||
&& gamjcie == other.gamjcie
|
||||
&& smoothcieth == other.smoothcieth
|
||||
&& slopjcie == other.slopjcie
|
||||
&& contsig == other.contsig
|
||||
&& skewsig == other.skewsig
|
||||
&& whitsig == other.whitsig
|
||||
&& slopesmo == other.slopesmo
|
||||
&& slopesmoq == other.slopesmoq
|
||||
&& slopesmor == other.slopesmor
|
||||
&& slopesmog == other.slopesmog
|
||||
&& slopesmob == other.slopesmob
|
||||
&& kslopesmor == other.kslopesmor
|
||||
&& kslopesmog == other.kslopesmog
|
||||
&& kslopesmob == other.kslopesmob
|
||||
&& midtcie == other.midtcie
|
||||
&& redxl == other.redxl
|
||||
&& redyl == other.redyl
|
||||
@ -5861,6 +5943,9 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& smoothciemet == other.smoothciemet
|
||||
&& primMethod == other.primMethod
|
||||
&& catMethod == other.catMethod
|
||||
&& sigmoidldajzcie12 == other.sigmoidldajzcie12
|
||||
&& sigmoidthjzcie12 == other.sigmoidthjzcie12
|
||||
&& sigmoidbljzcie12 == other.sigmoidbljzcie12
|
||||
&& sigmoidldajzcie == other.sigmoidldajzcie
|
||||
&& sigmoidthjzcie == other.sigmoidthjzcie
|
||||
&& sigmoidbljzcie == other.sigmoidbljzcie
|
||||
@ -7540,6 +7625,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || spot_edited->lcdarkness, "Locallab", "Lcdarkness_" + index_str, spot.lcdarkness, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->lclightness, "Locallab", "Lclightness_" + index_str, spot.lclightness, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmalc, "Locallab", "Sigmalc_" + index_str, spot.sigmalc, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->offslc, "Locallab", "Offslc_" + index_str, spot.offslc, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->levelwav, "Locallab", "Levelwav_" + index_str, spot.levelwav, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->residcont, "Locallab", "Residcont_" + index_str, spot.residcont, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->residsha, "Locallab", "Residsha_" + index_str, spot.residsha, keyFile);
|
||||
@ -7591,6 +7677,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || spot_edited->wavgradl, "Locallab", "Wavgradl_" + index_str, spot.wavgradl, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->wavcompre, "Locallab", "Wavcompre_" + index_str, spot.wavcompre, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->origlc, "Locallab", "Origlc_" + index_str, spot.origlc, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->processwav, "Locallab", "processwav_" + index_str, spot.processwav, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->localcontMethod, "Locallab", "localcontMethod_" + index_str, spot.localcontMethod, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->localedgMethod, "Locallab", "localedgMethod_" + index_str, spot.localedgMethod, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->localneiMethod, "Locallab", "localneiMethod_" + index_str, spot.localneiMethod, keyFile);
|
||||
@ -7736,11 +7823,11 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || spot_edited->reparcie, "Locallab", "Reparcie_" + index_str, spot.reparcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sensicie, "Locallab", "Sensicie_" + index_str, spot.sensicie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->Autograycie, "Locallab", "AutoGraycie_" + index_str, spot.Autograycie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->forcejz, "Locallab", "Forcejz_" + index_str, spot.forcejz, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->forcebw, "Locallab", "Forcebw_" + index_str, spot.forcebw, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigybjz12, "Locallab", "sigybjz12_" + index_str, spot.sigybjz12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->qtoj, "Locallab", "Qtoj_" + index_str, spot.qtoj, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->jabcie, "Locallab", "jabcie_" + index_str, spot.jabcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->comprcieauto, "Locallab", "comprcieauto_" + index_str, spot.comprcieauto, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->normcie12, "Locallab", "normcie12_" + index_str, spot.normcie12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->normcie, "Locallab", "normcie_" + index_str, spot.normcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->gamutcie, "Locallab", "gamutcie_" + index_str, spot.gamutcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->bwcie, "Locallab", "bwcie_" + index_str, spot.bwcie, keyFile);
|
||||
@ -7749,10 +7836,17 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || spot_edited->satcie, "Locallab", "satcie_" + index_str, spot.satcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->logcieq, "Locallab", "logcieq_" + index_str, spot.logcieq, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->smoothcie, "Locallab", "smoothcie_" + index_str, spot.smoothcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->smoothcietrc, "Locallab", "smoothcietrc_" + index_str, spot.smoothcietrc, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->smoothcietrcrel, "Locallab", "smoothcietrcrel_" + index_str, spot.smoothcietrcrel, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->smoothcieyb, "Locallab", "smoothcieyb_" + index_str, spot.smoothcieyb, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->smoothcielum, "Locallab", "smoothcielum_" + index_str, spot.smoothcielum, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->smoothciehigh, "Locallab", "smoothciehigh_" + index_str, spot.smoothciehigh, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->smoothcielnk, "Locallab", "smoothcielnk_" + index_str, spot.smoothcielnk, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->logjz, "Locallab", "Logjz_" + index_str, spot.logjz, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigjz12, "Locallab", "Sigjz12_" + index_str, spot.sigjz12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigjz, "Locallab", "Sigjz_" + index_str, spot.sigjz, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->forcebw, "Locallab", "Forcebw_" + index_str, spot.forcebw, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigq12, "Locallab", "Sigq12_" + index_str, spot.sigq12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigq, "Locallab", "Sigq_" + index_str, spot.sigq, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->chjzcie, "Locallab", "chjzcie_" + index_str, spot.chjzcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sourceGraycie, "Locallab", "SourceGraycie_" + index_str, spot.sourceGraycie, keyFile);
|
||||
@ -7760,6 +7854,8 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || spot_edited->sursourcie, "Locallab", "Sursourcie_" + index_str, spot.sursourcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->modecie, "Locallab", "Modecie_" + index_str, spot.modecie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->modecam, "Locallab", "Modecam_" + index_str, spot.modecam, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->modeQJ, "Locallab", "ModeQJ_" + index_str, spot.modeQJ, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->bwevMethod12, "Locallab", "bwevMethod12_" + index_str, spot.bwevMethod12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->bwevMethod, "Locallab", "bwevMethod_" + index_str, spot.bwevMethod, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->saturlcie, "Locallab", "Saturlcie_" + index_str, spot.saturlcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->rstprotectcie, "Locallab", "Rstprotectcie_" + index_str, spot.rstprotectcie, keyFile);
|
||||
@ -7807,19 +7903,33 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || spot_edited->blackEvjz, "Locallab", "BlackEvjz_" + index_str, spot.blackEvjz, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->whiteEvjz, "Locallab", "WhiteEvjz_" + index_str, spot.whiteEvjz, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->targetjz, "Locallab", "Targetjz_" + index_str, spot.targetjz, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidldacie12, "Locallab", "Sigmoidldacie12_" + index_str, spot.sigmoidldacie12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidthcie12, "Locallab", "Sigmoidthcie12_" + index_str, spot.sigmoidthcie12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidblcie12, "Locallab", "Sigmoidblcie12_" + index_str, spot.sigmoidblcie12, keyFile);
|
||||
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidldacie, "Locallab", "Sigmoidldacie_" + index_str, spot.sigmoidldacie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidthcie, "Locallab", "Sigmoidthcie_" + index_str, spot.sigmoidthcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidsenscie, "Locallab", "Sigmoidsenscie_" + index_str, spot.sigmoidsenscie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidblcie, "Locallab", "Sigmoidblcie_" + index_str, spot.sigmoidblcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidsenscie, "Locallab", "Sigmoidsenscie_" + index_str, spot.sigmoidsenscie, keyFile);
|
||||
|
||||
saveToKeyfile(!pedited || spot_edited->comprcie, "Locallab", "comprcie_" + index_str, spot.comprcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->strcielog, "Locallab", "strcielog_" + index_str, spot.strcielog, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->comprcieth, "Locallab", "comprcieth_" + index_str, spot.comprcieth, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->gamjcie, "Locallab", "gamjcie_" + index_str, spot.gamjcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->smoothcieth, "Locallab", "smoothcieth_" + index_str, spot.smoothcieth, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->slopjcie, "Locallab", "slopjcie_" + index_str, spot.slopjcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->slopesmo, "Locallab", "slopesmo_" + index_str, spot.slopesmo, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->slopesmoq, "Locallab", "slopesmoq_" + index_str, spot.slopesmoq, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->slopesmor, "Locallab", "slopesmor_" + index_str, spot.slopesmor, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->slopesmog, "Locallab", "slopesmog_" + index_str, spot.slopesmog, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->slopesmob, "Locallab", "slopesmob_" + index_str, spot.slopesmob, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->contsig, "Locallab", "contsig_" + index_str, spot.contsig, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->skewsig, "Locallab", "skewsig_" + index_str, spot.skewsig, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->whitsig, "Locallab", "whitsig_" + index_str, spot.whitsig, keyFile);
|
||||
|
||||
saveToKeyfile(!pedited || spot_edited->kslopesmor, "Locallab", "kslopesmor_" + index_str, spot.kslopesmor, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->kslopesmog, "Locallab", "kslopesmog_" + index_str, spot.kslopesmog, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->kslopesmob, "Locallab", "kslopesmob_" + index_str, spot.kslopesmob, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->midtcie, "Locallab", "midtcie_" + index_str, spot.midtcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->redxl, "Locallab", "redxl_" + index_str, spot.redxl, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->redyl, "Locallab", "redyl_" + index_str, spot.redyl, keyFile);
|
||||
@ -7848,9 +7958,13 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || spot_edited->smoothciemet, "Locallab", "smoothciemet_" + index_str, spot.smoothciemet, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->primMethod, "Locallab", "primMethod_" + index_str, spot.primMethod, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->catMethod, "Locallab", "catMethod_" + index_str, spot.catMethod, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidldajzcie12, "Locallab", "Sigmoidldajzcie12_" + index_str, spot.sigmoidldajzcie12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidthjzcie12, "Locallab", "Sigmoidthjzcie12_" + index_str, spot.sigmoidthjzcie12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidbljzcie12, "Locallab", "Sigmoidbljzcie12_" + index_str, spot.sigmoidbljzcie12, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidldajzcie, "Locallab", "Sigmoidldajzcie_" + index_str, spot.sigmoidldajzcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidthjzcie, "Locallab", "Sigmoidthjzcie_" + index_str, spot.sigmoidthjzcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->sigmoidbljzcie, "Locallab", "Sigmoidbljzcie_" + index_str, spot.sigmoidbljzcie, keyFile);
|
||||
|
||||
saveToKeyfile(!pedited || spot_edited->contqcie, "Locallab", "Contqcie_" + index_str, spot.contqcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->contsigqcie, "Locallab", "Contsigqcie_" + index_str, spot.contsigqcie, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->colorflcie, "Locallab", "Colorflcie_" + index_str, spot.colorflcie, keyFile);
|
||||
@ -8037,9 +8151,15 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
keyFile
|
||||
);
|
||||
|
||||
saveToKeyfile(!pedited || pedited->icm.workingTRCGamma, "Color Management", "WorkingTRCGamma", icm.workingTRCGamma, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.workingTRCSlope, "Color Management", "WorkingTRCSlope", icm.workingTRCSlope, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.opacityCurveWLI, "Color Management", "OpacityCurveWLI", icm.opacityCurveWLI, keyFile);
|
||||
|
||||
saveToKeyfile(!pedited || pedited->icm.wGamma, "Color Management", "WorkingTRCGamma", icm.wGamma, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.wSlope, "Color Management", "WorkingTRCSlope", icm.wSlope, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.wmidtcie, "Color Management", "Wmidtcie", icm.wmidtcie, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.sigmatrc, "Color Management", "Sigmatrc", icm.sigmatrc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.offstrc, "Color Management", "Offstrc", icm.offstrc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.residtrc, "Color Management", "Residtrc", icm.residtrc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.pyrwavtrc, "Color Management", "Pyrwavtrc", icm.pyrwavtrc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.wsmoothcie, "Color Management", "Wsmoothcie", icm.wsmoothcie, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.redx, "Color Management", "Redx", icm.redx, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.redy, "Color Management", "Redy", icm.redy, keyFile);
|
||||
@ -8063,6 +8183,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->icm.preser, "Color Management", "Preser", icm.preser, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.fbw, "Color Management", "Fbw", icm.fbw, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.trcExp, "Color Management", "TrcExp", icm.trcExp, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.wavExp, "Color Management", "WavExp", icm.wavExp, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.gamut, "Color Management", "Gamut", icm.gamut, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->icm.outputProfile, "Color Management", "OutputProfile", icm.outputProfile, keyFile);
|
||||
saveToKeyfile(
|
||||
@ -9959,6 +10080,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "Lcdarkness_" + index_str, spot.lcdarkness, spotEdited.lcdarkness);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Lclightness_" + index_str, spot.lclightness, spotEdited.lclightness);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmalc_" + index_str, spot.sigmalc, spotEdited.sigmalc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Offslc_" + index_str, spot.offslc, spotEdited.offslc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Levelwav_" + index_str, spot.levelwav, spotEdited.levelwav);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Residcont_" + index_str, spot.residcont, spotEdited.residcont);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Residsha_" + index_str, spot.residsha, spotEdited.residsha);
|
||||
@ -10018,6 +10140,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "Wavgradl_" + index_str, spot.wavgradl, spotEdited.wavgradl);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Wavcompre_" + index_str, spot.wavcompre, spotEdited.wavcompre);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Origlc_" + index_str, spot.origlc, spotEdited.origlc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "processwav_" + index_str, spot.processwav, spotEdited.processwav);
|
||||
assignFromKeyfile(keyFile, "Locallab", "localcontMethod_" + index_str, spot.localcontMethod, spotEdited.localcontMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "localedgMethod_" + index_str, spot.localedgMethod, spotEdited.localedgMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "localneiMethod_" + index_str, spot.localneiMethod, spotEdited.localneiMethod);
|
||||
@ -10217,11 +10340,11 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "Reparcie_" + index_str, spot.reparcie, spotEdited.reparcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sensicie_" + index_str, spot.sensicie, spotEdited.sensicie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "AutoGraycie_" + index_str, spot.Autograycie, spotEdited.Autograycie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Forcejz_" + index_str, spot.forcejz, spotEdited.forcejz);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Forcebw_" + index_str, spot.forcebw, spotEdited.forcebw);
|
||||
assignFromKeyfile(keyFile, "Locallab", "sigybjz12_" + index_str, spot.sigybjz12, spotEdited.sigybjz12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Qtoj_" + index_str, spot.qtoj, spotEdited.qtoj);
|
||||
assignFromKeyfile(keyFile, "Locallab", "jabcie_" + index_str, spot.jabcie, spotEdited.jabcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "comprcieauto_" + index_str, spot.comprcieauto, spotEdited.comprcieauto);
|
||||
assignFromKeyfile(keyFile, "Locallab", "normcie12_" + index_str, spot.normcie12, spotEdited.normcie12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "normcie_" + index_str, spot.normcie, spotEdited.normcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "gamutcie_" + index_str, spot.gamutcie, spotEdited.gamutcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "bwcie_" + index_str, spot.bwcie, spotEdited.bwcie);
|
||||
@ -10230,17 +10353,56 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "satcie_" + index_str, spot.satcie, spotEdited.satcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "logcieq_" + index_str, spot.logcieq, spotEdited.logcieq);
|
||||
assignFromKeyfile(keyFile, "Locallab", "smoothcie_" + index_str, spot.smoothcie, spotEdited.smoothcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "smoothcietrc_" + index_str, spot.smoothcietrc, spotEdited.smoothcietrc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "smoothcietrcrel_" + index_str, spot.smoothcietrcrel, spotEdited.smoothcietrcrel);
|
||||
assignFromKeyfile(keyFile, "Locallab", "smoothcieyb_" + index_str, spot.smoothcieyb, spotEdited.smoothcieyb);
|
||||
assignFromKeyfile(keyFile, "Locallab", "smoothcielum_" + index_str, spot.smoothcielum, spotEdited.smoothcielum);
|
||||
assignFromKeyfile(keyFile, "Locallab", "smoothciehigh_" + index_str, spot.smoothciehigh, spotEdited.smoothciehigh);
|
||||
assignFromKeyfile(keyFile, "Locallab", "smoothcielnk_" + index_str, spot.smoothcielnk, spotEdited.smoothcielnk);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Logjz_" + index_str, spot.logjz, spotEdited.logjz);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigjz12_" + index_str, spot.sigjz12, spotEdited.sigjz12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigjz_" + index_str, spot.sigjz, spotEdited.sigjz);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Forcebw_" + index_str, spot.forcebw, spotEdited.forcebw);
|
||||
assignFromKeyfile(keyFile, "Locallab", "ModeQJ_" + index_str, spot.modeQJ, spotEdited.modeQJ);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Modecie_" + index_str, spot.modecie, spotEdited.modecie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Modecam_" + index_str, spot.modecam, spotEdited.modecam);
|
||||
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigq12_" + index_str, spot.sigq12, spotEdited.sigq12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigq_" + index_str, spot.sigq, spotEdited.sigq);
|
||||
|
||||
if (ppVersion < 352) {//change behavior Log encoding Q and Sigmoid Q and SigmoidJz when 'in the loop' Cam16
|
||||
if (keyFile.has_key("Locallab", "Sigq_" + index_str)) {
|
||||
if (spot.sigq == true) {
|
||||
spot.modeQJ = "511";
|
||||
spot.sigq12 = false;
|
||||
spotEdited.modeQJ = true;
|
||||
spotEdited.sigq12 = true;
|
||||
}
|
||||
}
|
||||
if (keyFile.has_key("Locallab", "logcieq_" + index_str)) {
|
||||
if (spot.logcieq == true) {
|
||||
spot.modeQJ = "511";
|
||||
spotEdited.modeQJ = true;
|
||||
spotEdited.logcieq = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (keyFile.has_key("Locallab", "Sigjz_" + index_str)) {
|
||||
if (spot.sigjz == true) {
|
||||
spot.modeQJ = "511";
|
||||
spot.sigjz12 = false;
|
||||
spotEdited.modeQJ = true;
|
||||
spotEdited.sigjz12 = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
assignFromKeyfile(keyFile, "Locallab", "chjzcie_" + index_str, spot.chjzcie, spotEdited.chjzcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "SourceGraycie_" + index_str, spot.sourceGraycie, spotEdited.sourceGraycie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sourceabscie_" + index_str, spot.sourceabscie, spotEdited.sourceabscie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sursourcie_" + index_str, spot.sursourcie, spotEdited.sursourcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Modecie_" + index_str, spot.modecie, spotEdited.modecie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Modecam_" + index_str, spot.modecam, spotEdited.modecam);
|
||||
assignFromKeyfile(keyFile, "Locallab", "bwevMethod12_" + index_str, spot.bwevMethod12, spotEdited.bwevMethod12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "bwevMethod_" + index_str, spot.bwevMethod, spotEdited.bwevMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Saturlcie_" + index_str, spot.saturlcie, spotEdited.saturlcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Rstprotectcie_" + index_str, spot.rstprotectcie, spotEdited.rstprotectcie);
|
||||
@ -10298,19 +10460,34 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "BlackEvjz_" + index_str, spot.blackEvjz, spotEdited.blackEvjz);
|
||||
assignFromKeyfile(keyFile, "Locallab", "WhiteEvjz_" + index_str, spot.whiteEvjz, spotEdited.whiteEvjz);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Targetjz_" + index_str, spot.targetjz, spotEdited.targetjz);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidldacie12_" + index_str, spot.sigmoidldacie12, spotEdited.sigmoidldacie12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidthcie12_" + index_str, spot.sigmoidthcie12, spotEdited.sigmoidthcie12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidblcie12_" + index_str, spot.sigmoidblcie12, spotEdited.sigmoidblcie12);
|
||||
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidldacie_" + index_str, spot.sigmoidldacie, spotEdited.sigmoidldacie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidthcie_" + index_str, spot.sigmoidthcie, spotEdited.sigmoidthcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidsenscie_" + index_str, spot.sigmoidsenscie, spotEdited.sigmoidsenscie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidblcie_" + index_str, spot.sigmoidblcie, spotEdited.sigmoidblcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidsenscie_" + index_str, spot.sigmoidsenscie, spotEdited.sigmoidsenscie);
|
||||
|
||||
|
||||
assignFromKeyfile(keyFile, "Locallab", "comprcie_" + index_str, spot.comprcie, spotEdited.comprcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "strcielog_" + index_str, spot.strcielog, spotEdited.strcielog);
|
||||
assignFromKeyfile(keyFile, "Locallab", "comprcieth_" + index_str, spot.comprcieth, spotEdited.comprcieth);
|
||||
assignFromKeyfile(keyFile, "Locallab", "gamjcie_" + index_str, spot.gamjcie, spotEdited.gamjcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "smoothcieth_" + index_str, spot.smoothcieth, spotEdited.smoothcieth);
|
||||
assignFromKeyfile(keyFile, "Locallab", "slopjcie_" + index_str, spot.slopjcie, spotEdited.slopjcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "contsig_" + index_str, spot.contsig, spotEdited.contsig);
|
||||
assignFromKeyfile(keyFile, "Locallab", "skewsig_" + index_str, spot.skewsig, spotEdited.skewsig);
|
||||
assignFromKeyfile(keyFile, "Locallab", "whitsig_" + index_str, spot.whitsig, spotEdited.whitsig);
|
||||
assignFromKeyfile(keyFile, "Locallab", "slopesmo_" + index_str, spot.slopesmo, spotEdited.slopesmo);
|
||||
assignFromKeyfile(keyFile, "Locallab", "slopesmoq_" + index_str, spot.slopesmoq, spotEdited.slopesmoq);
|
||||
assignFromKeyfile(keyFile, "Locallab", "slopesmor_" + index_str, spot.slopesmor, spotEdited.slopesmor);
|
||||
assignFromKeyfile(keyFile, "Locallab", "slopesmog_" + index_str, spot.slopesmog, spotEdited.slopesmog);
|
||||
assignFromKeyfile(keyFile, "Locallab", "midtcie_" + index_str, spot.midtcie, spotEdited.midtcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "slopesmob_" + index_str, spot.slopesmob, spotEdited.slopesmob);
|
||||
assignFromKeyfile(keyFile, "Locallab", "kslopesmor_" + index_str, spot.kslopesmor, spotEdited.kslopesmor);
|
||||
assignFromKeyfile(keyFile, "Locallab", "kslopesmog_" + index_str, spot.kslopesmog, spotEdited.kslopesmog);
|
||||
assignFromKeyfile(keyFile, "Locallab", "kslopesmob_" + index_str, spot.kslopesmob, spotEdited.kslopesmob);
|
||||
assignFromKeyfile(keyFile, "Locallab", "grexl_" + index_str, spot.grexl, spotEdited.grexl);
|
||||
assignFromKeyfile(keyFile, "Locallab", "greyl_" + index_str, spot.greyl, spotEdited.greyl);
|
||||
assignFromKeyfile(keyFile, "Locallab", "bluxl_" + index_str, spot.bluxl, spotEdited.bluxl);
|
||||
@ -10337,9 +10514,13 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "smoothciemet_" + index_str, spot.smoothciemet, spotEdited.smoothciemet);
|
||||
assignFromKeyfile(keyFile, "Locallab", "primMethod_" + index_str, spot.primMethod, spotEdited.primMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "catMethod_" + index_str, spot.catMethod, spotEdited.catMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidldajzcie12_" + index_str, spot.sigmoidldajzcie12, spotEdited.sigmoidldajzcie12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidthjzcie12_" + index_str, spot.sigmoidthjzcie12, spotEdited.sigmoidthjzcie12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidbljzcie12_" + index_str, spot.sigmoidbljzcie12, spotEdited.sigmoidbljzcie12);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidldajzcie_" + index_str, spot.sigmoidldajzcie, spotEdited.sigmoidldajzcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidthjzcie_" + index_str, spot.sigmoidthjzcie, spotEdited.sigmoidthjzcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sigmoidbljzcie_" + index_str, spot.sigmoidbljzcie, spotEdited.sigmoidbljzcie);
|
||||
|
||||
assignFromKeyfile(keyFile, "Locallab", "Contqcie_" + index_str, spot.contqcie, spotEdited.contqcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Contsigqcie_" + index_str, spot.contsigqcie, spotEdited.contsigqcie);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Colorflcie_" + index_str, spot.colorflcie, spotEdited.colorflcie);
|
||||
@ -10571,6 +10752,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Color Management", "ApplyHueSatMap", icm.applyHueSatMap, pedited->icm.applyHueSatMap);
|
||||
assignFromKeyfile(keyFile, "Color Management", "DCPIlluminant", icm.dcpIlluminant, pedited->icm.dcpIlluminant);
|
||||
assignFromKeyfile(keyFile, "Color Management", "WorkingProfile", icm.workingProfile, pedited->icm.workingProfile);
|
||||
assignFromKeyfile(keyFile, "Color Management", "OpacityCurveWLI", icm.opacityCurveWLI, pedited->icm.opacityCurveWLI);
|
||||
|
||||
if (
|
||||
!assignFromKeyfile(
|
||||
keyFile,
|
||||
@ -10676,10 +10859,14 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
}
|
||||
|
||||
assignFromKeyfile(keyFile, "Color Management", "Gamut", icm.gamut, pedited->icm.gamut);
|
||||
assignFromKeyfile(keyFile, "Color Management", "WorkingTRCSlope", icm.workingTRCSlope, pedited->icm.workingTRCSlope);
|
||||
assignFromKeyfile(keyFile, "Color Management", "WorkingTRCGamma", icm.workingTRCGamma, pedited->icm.workingTRCGamma);
|
||||
assignFromKeyfile(keyFile, "Color Management", "WorkingTRCSlope", icm.wSlope, pedited->icm.wSlope);
|
||||
assignFromKeyfile(keyFile, "Color Management", "WorkingTRCGamma", icm.wGamma, pedited->icm.wGamma);
|
||||
assignFromKeyfile(keyFile, "Color Management", "Wmidtcie", icm.wmidtcie, pedited->icm.wmidtcie);
|
||||
assignFromKeyfile(keyFile, "Color Management", "Wsmoothcie", icm.wsmoothcie, pedited->icm.wsmoothcie);
|
||||
assignFromKeyfile(keyFile, "Color Management", "Sigmatrc", icm.sigmatrc, pedited->icm.sigmatrc);
|
||||
assignFromKeyfile(keyFile, "Color Management", "Offstrc", icm.offstrc, pedited->icm.offstrc);
|
||||
assignFromKeyfile(keyFile, "Color Management", "Pyrwavtrc", icm.pyrwavtrc, pedited->icm.pyrwavtrc);
|
||||
assignFromKeyfile(keyFile, "Color Management", "Residtrc", icm.residtrc, pedited->icm.residtrc);
|
||||
|
||||
assignFromKeyfile(keyFile, "Color Management", "Redx", icm.redx, pedited->icm.redx);
|
||||
assignFromKeyfile(keyFile, "Color Management", "Redy", icm.redy, pedited->icm.redy);
|
||||
@ -10693,6 +10880,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Color Management", "Preser", icm.preser, pedited->icm.preser);
|
||||
assignFromKeyfile(keyFile, "Color Management", "Fbw", icm.fbw, pedited->icm.fbw);
|
||||
assignFromKeyfile(keyFile, "Color Management", "TrcExp", icm.trcExp, pedited->icm.trcExp);
|
||||
assignFromKeyfile(keyFile, "Color Management", "WavExp", icm.wavExp, pedited->icm.wavExp);
|
||||
assignFromKeyfile(keyFile, "Color Management", "LabGridcieALow", icm.labgridcieALow, pedited->icm.labgridcieALow);
|
||||
assignFromKeyfile(keyFile, "Color Management", "LabGridcieBLow", icm.labgridcieBLow, pedited->icm.labgridcieBLow);
|
||||
assignFromKeyfile(keyFile, "Color Management", "LabGridcieAHigh", icm.labgridcieAHigh, pedited->icm.labgridcieAHigh);
|
||||
|
@ -1505,6 +1505,7 @@ struct LocallabParams {
|
||||
double lcdarkness;
|
||||
double lclightness;
|
||||
double sigmalc;
|
||||
double offslc;
|
||||
int levelwav;
|
||||
double residcont;
|
||||
double residsha;
|
||||
@ -1556,6 +1557,7 @@ struct LocallabParams {
|
||||
bool wavgradl;
|
||||
bool wavcompre;
|
||||
bool origlc;
|
||||
bool processwav;
|
||||
Glib::ustring localcontMethod; // loc, wav
|
||||
Glib::ustring localedgMethod; // fir, sec, thr
|
||||
Glib::ustring localneiMethod; // none, low, high
|
||||
@ -1693,11 +1695,11 @@ struct LocallabParams {
|
||||
double reparcie;
|
||||
int sensicie;
|
||||
bool Autograycie;
|
||||
bool forcejz;
|
||||
bool forcebw;
|
||||
bool sigybjz12;
|
||||
bool qtoj;
|
||||
bool jabcie;
|
||||
bool comprcieauto;
|
||||
bool normcie12;
|
||||
bool normcie;
|
||||
bool gamutcie;
|
||||
bool bwcie;
|
||||
@ -1706,10 +1708,17 @@ struct LocallabParams {
|
||||
bool satcie;
|
||||
bool logcieq;
|
||||
bool smoothcie;
|
||||
bool smoothcietrc;
|
||||
bool smoothcietrcrel;
|
||||
bool smoothcieyb;
|
||||
bool smoothcielum;
|
||||
bool smoothciehigh;
|
||||
bool smoothcielnk;
|
||||
bool logjz;
|
||||
bool sigjz12;
|
||||
bool sigjz;
|
||||
bool forcebw;
|
||||
bool sigq12;
|
||||
bool sigq;
|
||||
bool chjzcie;
|
||||
double sourceGraycie;
|
||||
@ -1717,6 +1726,8 @@ struct LocallabParams {
|
||||
Glib::ustring sursourcie;
|
||||
Glib::ustring modecie;
|
||||
Glib::ustring modecam;
|
||||
Glib::ustring modeQJ;
|
||||
Glib::ustring bwevMethod12;
|
||||
Glib::ustring bwevMethod;
|
||||
double saturlcie;
|
||||
double rstprotectcie;
|
||||
@ -1764,6 +1775,9 @@ struct LocallabParams {
|
||||
double blackEvjz;
|
||||
double whiteEvjz;
|
||||
double targetjz;
|
||||
double sigmoidldacie12;
|
||||
double sigmoidthcie12;
|
||||
double sigmoidblcie12;
|
||||
double sigmoidldacie;
|
||||
double sigmoidthcie;
|
||||
double sigmoidsenscie;
|
||||
@ -1772,11 +1786,19 @@ struct LocallabParams {
|
||||
double strcielog;
|
||||
double comprcieth;
|
||||
double gamjcie;
|
||||
double smoothcieth;
|
||||
double slopjcie;
|
||||
double contsig;
|
||||
double skewsig;
|
||||
double whitsig;
|
||||
double slopesmo;
|
||||
double slopesmoq;
|
||||
double slopesmor;
|
||||
double slopesmog;
|
||||
double slopesmob;
|
||||
double kslopesmor;
|
||||
double kslopesmog;
|
||||
double kslopesmob;
|
||||
int midtcie;
|
||||
double grexl;
|
||||
double greyl;
|
||||
@ -1804,6 +1826,9 @@ struct LocallabParams {
|
||||
Glib::ustring smoothciemet;
|
||||
Glib::ustring primMethod;
|
||||
Glib::ustring catMethod;
|
||||
double sigmoidldajzcie12;
|
||||
double sigmoidthjzcie12;
|
||||
double sigmoidbljzcie12;
|
||||
double sigmoidldajzcie;
|
||||
double sigmoidthjzcie;
|
||||
double sigmoidbljzcie;
|
||||
@ -2148,9 +2173,15 @@ struct ColorManagementParams {
|
||||
Illuminant will;
|
||||
Primaries wprim;
|
||||
Cat wcat;
|
||||
double workingTRCGamma;
|
||||
double workingTRCSlope;
|
||||
double wGamma;
|
||||
double wSlope;
|
||||
double wmidtcie;
|
||||
double sigmatrc;
|
||||
double offstrc;
|
||||
double residtrc;
|
||||
int pyrwavtrc;
|
||||
std::vector<double> opacityCurveWLI;
|
||||
|
||||
bool wsmoothcie;
|
||||
double redx;
|
||||
double redy;
|
||||
@ -2164,6 +2195,7 @@ struct ColorManagementParams {
|
||||
double preser;
|
||||
bool fbw;
|
||||
bool trcExp;
|
||||
bool wavExp;
|
||||
bool gamut;
|
||||
double labgridcieALow;
|
||||
double labgridcieBLow;
|
||||
@ -2188,6 +2220,11 @@ struct ColorManagementParams {
|
||||
|
||||
bool operator ==(const ColorManagementParams& other) const;
|
||||
bool operator !=(const ColorManagementParams& other) const;
|
||||
|
||||
void getCurves(
|
||||
WavOpacityCurveWL& opacityCurveLUTWLI
|
||||
) const;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -74,7 +74,7 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
0, // EvLDNEdgeTolerance: obsolete,
|
||||
0, // EvCDNEnabled:obsolete,
|
||||
0, // free entry
|
||||
RGBCURVE | M_AUTOEXP, // EvDCPToneCurve,
|
||||
ALLNORAW, //RGBCURVE | M_AUTOEXP, // EvDCPToneCurve, 21 july 2024
|
||||
ALLNORAW, // EvDCPIlluminant,
|
||||
LUMINANCECURVE, // EvSHEnabled,
|
||||
LUMINANCECURVE, // EvSHHighlights,
|
||||
@ -419,8 +419,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
DIRPYREQUALIZER, // EvWavgreenlow
|
||||
DIRPYREQUALIZER, // EvWavbluelow
|
||||
DIRPYREQUALIZER, // EvWavNeutral
|
||||
RGBCURVE | M_AUTOEXP, // EvDCPApplyLookTable,
|
||||
RGBCURVE | M_AUTOEXP, // EvDCPApplyBaselineExposureOffset,
|
||||
ALLNORAW, //RGBCURVE | M_AUTOEXP, // EvDCPApplyLookTable, 21 july 2024
|
||||
ALLNORAW, //RGBCURVE | M_AUTOEXP, // EvDCPApplyBaselineExposureOffset, 21 july 2024
|
||||
ALLNORAW, // EvDCPApplyHueSatMap
|
||||
DIRPYREQUALIZER, // EvWavenacont
|
||||
DIRPYREQUALIZER, // EvWavenachrom
|
||||
@ -1105,9 +1105,9 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
AUTOEXP, //Evlocallabsensicie
|
||||
AUTOEXP, //Evlocallabmodecie
|
||||
AUTOEXP, //Evlocallabrstprotectcie
|
||||
AUTOEXP, //Evlocallabsigmoidldacie
|
||||
AUTOEXP, //Evlocallabsigmoidthcie
|
||||
AUTOEXP, //Evlocallabsigmoidblcie
|
||||
AUTOEXP, //Evlocallabsigmoidldacie12
|
||||
AUTOEXP, //Evlocallabsigmoidthcie12
|
||||
AUTOEXP, //Evlocallabsigmoidblcie12
|
||||
HDR, //Evlocallabcomprcieauto
|
||||
AUTOEXP, //Evlocallabhuecie
|
||||
AUTOEXP, //Evlocallabjabcie
|
||||
@ -1115,9 +1115,9 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
AUTOEXP, //Evlocallabcontjzcie
|
||||
AUTOEXP, //Evlocallabchromjzcie
|
||||
AUTOEXP, //Evlocallabhuejzcie
|
||||
AUTOEXP, //Evlocallabsigmoidldajzcie
|
||||
AUTOEXP, //Evlocallabsigmoidthjzcie
|
||||
AUTOEXP, //Evlocallabsigmoidbljzcie
|
||||
AUTOEXP, //Evlocallabsigmoidldajzcie12
|
||||
AUTOEXP, //Evlocallabsigmoidthjzcie12
|
||||
AUTOEXP, //Evlocallabsigmoidbljzcie12
|
||||
AUTOEXP, //Evlocallabadapjzcie
|
||||
AUTOEXP, //Evlocallabmodecam
|
||||
AUTOEXP, //Evlocallabhljzcie
|
||||
@ -1139,7 +1139,7 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
AUTOEXP, //Evlocallabshapejz
|
||||
AUTOEXP, //Evlocallabshapecz
|
||||
AUTOEXP, //Evlocallabshapeczjz
|
||||
AUTOEXP, //Evlocallabforcejz
|
||||
// AUTOEXP, //Evlocallabforcejz
|
||||
// AUTOEXP, //Evlocallablightlzcam
|
||||
// AUTOEXP, //Evlocallablightqzcam
|
||||
// AUTOEXP, //Evlocallabcontlzcam
|
||||
@ -1182,9 +1182,9 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
AUTOEXP, //EvlocallabwhiteEvjz
|
||||
AUTOEXP, //Evlocallablogjz
|
||||
AUTOEXP, //Evlocallabtargetjz
|
||||
AUTOEXP, //Evlocallabforcebw
|
||||
AUTOEXP, //Evlocallabsigjz
|
||||
AUTOEXP, //Evlocallabsigq
|
||||
AUTOEXP, //Evlocallabsigybjz12
|
||||
AUTOEXP, //Evlocallabsigjz12
|
||||
AUTOEXP, //Evlocallabsigq12
|
||||
AUTOEXP //Evlocallablogcie
|
||||
};
|
||||
|
||||
|
@ -473,6 +473,8 @@ public:
|
||||
double meanxelc;
|
||||
double meanyelc;
|
||||
int primlc;
|
||||
double slopeglc;
|
||||
bool linkrgblc;
|
||||
};
|
||||
|
||||
//select spot settings
|
||||
@ -529,6 +531,7 @@ public:
|
||||
virtual ~AutoprimListener() = default;
|
||||
virtual void primChanged(float rx, float ry, float bx, float by, float gx, float gy) = 0;
|
||||
virtual void iprimChanged(float r_x, float r_y, float b_x, float b_y, float g_x, float g_y, float w_x, float w_y, float m_x, float m_y) = 0;
|
||||
virtual void wavlocChanged(double nlevel, double nmax, bool curveloc) = 0;
|
||||
};
|
||||
|
||||
|
||||
|
@ -1518,6 +1518,17 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT
|
||||
const int GW = labView->W;
|
||||
const int GH = labView->H;
|
||||
std::unique_ptr<LabImage> provis;
|
||||
if(params.icm.trcExp) {//local contrast
|
||||
int level_hr = 7;
|
||||
int maxlevpo = 9;
|
||||
bool wavcurvecont = false;
|
||||
WaveletParams WaveParams = params.wavelet;
|
||||
ColorManagementParams Colparams = params.icm;
|
||||
WavOpacityCurveWL icmOpacityCurveWL;
|
||||
Colparams.getCurves(icmOpacityCurveWL);
|
||||
ipf.complete_local_contrast(labView, labView, WaveParams, Colparams, icmOpacityCurveWL, 1, level_hr, maxlevpo, wavcurvecont);
|
||||
}
|
||||
|
||||
const float pres = 0.01f * params.icm.preser;
|
||||
if (pres > 0.f && params.icm.wprim != ColorManagementParams::Primaries::DEFAULT) {
|
||||
provis.reset(new LabImage(GW, GH));
|
||||
@ -1528,8 +1539,8 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT
|
||||
|
||||
ipf.lab2rgb(*labView, *tmpImage1, params.icm.workingProfile);
|
||||
|
||||
const float gamtone = params.icm.workingTRCGamma;
|
||||
const float slotone = params.icm.workingTRCSlope;
|
||||
const float gamtone = params.icm.wGamma;
|
||||
const float slotone = params.icm.wSlope;
|
||||
|
||||
int illum = toUnderlying(params.icm.will);
|
||||
const int prim = toUnderlying(params.icm.wprim);
|
||||
@ -1597,7 +1608,6 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT
|
||||
labView->b[x][y] = 0.f;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (params.colorappearance.enabled) {
|
||||
|
@ -1294,7 +1294,8 @@ private:
|
||||
float Lnresi = 0.f;
|
||||
float Lhighresi46 = 0.f;
|
||||
float Lnresi46 = 0.f;
|
||||
|
||||
float slopeg = 1.f;
|
||||
bool linkrgb = true;
|
||||
// No Locallab mask is shown in exported picture
|
||||
ipf.Lab_Local(2, sp, shbuffer, labView, labView, reservView.get(), savenormtmView.get(), savenormretiView.get(), lastorigView.get(), fw, fh, 0, 0, fw, fh, 1, locRETgainCurve, locRETtransCurve,
|
||||
lllocalcurve, locallutili,
|
||||
@ -1350,7 +1351,7 @@ private:
|
||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax,
|
||||
meantme, stdtme, meanretie, stdretie, fab, maxicam, rdx, rdy, grx, gry, blx, bly, meanx, meany, meanxe, meanye, prim, ill, contsig, lightsig,
|
||||
highresi, nresi, highresi46, nresi46, Lhighresi, Lnresi, Lhighresi46, Lnresi46
|
||||
highresi, nresi, highresi46, nresi46, Lhighresi, Lnresi, Lhighresi46, Lnresi46, slopeg, linkrgb
|
||||
);
|
||||
|
||||
if (sp + 1u < params.locallab.spots.size()) {
|
||||
@ -1743,6 +1744,17 @@ private:
|
||||
const int GH = labView->H;
|
||||
std::unique_ptr<LabImage> provis;
|
||||
const float pres = 0.01f * params.icm.preser;
|
||||
if(params.icm.trcExp) {//local contrast
|
||||
int level_hr = 7;
|
||||
int maxlevpo = 9;
|
||||
bool wavcurvecont = false;
|
||||
WaveletParams WaveParams = params.wavelet;
|
||||
ColorManagementParams Colparams = params.icm;
|
||||
WavOpacityCurveWL icmOpacityCurveWL;
|
||||
Colparams.getCurves(icmOpacityCurveWL);
|
||||
ipf.complete_local_contrast(labView, labView, WaveParams, Colparams, icmOpacityCurveWL, 1, level_hr, maxlevpo, wavcurvecont);
|
||||
|
||||
}
|
||||
|
||||
if (pres > 0.f && params.icm.wprim != ColorManagementParams::Primaries::DEFAULT) {
|
||||
provis.reset(new LabImage(GW, GH));
|
||||
@ -1753,8 +1765,8 @@ private:
|
||||
|
||||
ipf.lab2rgb(*labView, *tmpImage1, params.icm.workingProfile);
|
||||
|
||||
const float gamtone = params.icm.workingTRCGamma;
|
||||
const float slotone = params.icm.workingTRCSlope;
|
||||
const float gamtone = params.icm.wGamma;
|
||||
const float slotone = params.icm.wSlope;
|
||||
|
||||
int illum = toUnderlying(params.icm.will);
|
||||
const int prim = toUnderlying(params.icm.wprim);
|
||||
@ -1827,7 +1839,6 @@ private:
|
||||
labView->b[x][y] = 0.f;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Colorappearance and tone-mapping associated
|
||||
|
@ -1364,7 +1364,8 @@ void ColorAppearance::updateGUIToMode(int mode)
|
||||
if(mode ==0) {
|
||||
alHBox->hide();
|
||||
wbmHBox->hide();
|
||||
curveEditorG->hide();
|
||||
//curveEditorG->hide();
|
||||
curveEditorG->show();
|
||||
curveEditorG2->hide();
|
||||
curveEditorG3->hide();
|
||||
//greenout->hide();
|
||||
@ -1391,10 +1392,10 @@ void ColorAppearance::convertParamToNormal()
|
||||
const ColorAppearanceParams def_params;
|
||||
disableListener();
|
||||
algo->set_active (0);
|
||||
shape->setCurve(def_params.curve);
|
||||
//shape->setCurve(def_params.curve);
|
||||
shape2->setCurve(def_params.curve2);
|
||||
shape3->setCurve(def_params.curve3);
|
||||
shape->reset();
|
||||
//shape->reset();
|
||||
shape2->reset();
|
||||
shape3->reset();
|
||||
wbmodel->set_active (0);
|
||||
|
@ -463,6 +463,7 @@ ControlSpotPanel::ControlSpotPanel():
|
||||
wavMethod_->append(M("TP_WAVELET_DAUB6"));
|
||||
wavMethod_->append(M("TP_WAVELET_DAUB10"));
|
||||
wavMethod_->append(M("TP_WAVELET_DAUB14"));
|
||||
wavMethod_->append(M("TP_WAVELET_DAUB20"));
|
||||
wavMethod_->set_active(1);
|
||||
wavMethodconn_ = wavMethod_->signal_changed().connect(
|
||||
sigc::mem_fun(
|
||||
|
@ -26,6 +26,10 @@
|
||||
#include "options.h"
|
||||
#include "pathutils.h"
|
||||
#include "rtimage.h"
|
||||
#include "curveeditor.h"
|
||||
#include "curveeditorgroup.h"
|
||||
#include "editcallbacks.h"
|
||||
#include <unistd.h>
|
||||
|
||||
#include "rtengine/dcp.h"
|
||||
#include "rtengine/iccstore.h"
|
||||
@ -39,6 +43,7 @@ const Glib::ustring ICMPanel::TOOL_NAME = "icm";
|
||||
|
||||
ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iunchanged(nullptr), icmplistener(nullptr)
|
||||
{
|
||||
CurveListener::setMulti(true);
|
||||
auto m = ProcEventMapper::getInstance();
|
||||
EvICMprimariMethod = m->newEvent(GAMMA, "HISTORY_MSG_ICM_OUTPUT_PRIMARIES");
|
||||
EvICMprofileMethod = m->newEvent(GAMMA, "HISTORY_MSG_ICM_OUTPUT_TYPE");
|
||||
@ -72,6 +77,12 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
EvICMshifty = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ICM_SHIFTY");
|
||||
EvICMwmidtcie = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ICM_MIDTCIE");
|
||||
EvICMwsmoothcie = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ICM_SMOOTHCIE");
|
||||
EvICMsigmatrc = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ICM_SIGMATRC");
|
||||
EvICMoffstrc = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ICM_OFFSTRC");
|
||||
EvICMopacityWLI = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ICM_OPACITYW");
|
||||
EvICMpyrwavtrc = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ICM_PYRWAVTRC");
|
||||
EvICMresidtrc = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ICM_RESIDTRC");
|
||||
EvICMwavExp = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ICM_WAVEXP");
|
||||
|
||||
isBatchMode = lastToneCurve = lastApplyLookTable = lastApplyBaselineExposureOffset = lastApplyHueSatMap = false;
|
||||
|
||||
@ -187,7 +198,7 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
iVBox->pack_start(*saveRef, Gtk::PACK_SHRINK);
|
||||
|
||||
iFrame->add(*iVBox);
|
||||
pack_start(*iFrame, Gtk::PACK_EXPAND_WIDGET);
|
||||
// pack_start(*iFrame, Gtk::PACK_EXPAND_WIDGET);
|
||||
|
||||
|
||||
// ---------------------------- Working profile
|
||||
@ -211,18 +222,27 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
|
||||
wFrame->add(*wProfVBox);
|
||||
|
||||
//-----------------gamma TRC working
|
||||
// Gtk::Frame *trcFrame = Gtk::manage(new Gtk::Frame(M("TP_ICM_TRCFRAME")));
|
||||
trcExp = Gtk::manage(new MyExpander(true, M("TP_ICM_TRCFRAME")));
|
||||
//-----------------gamma TRC working - Abstract Profile
|
||||
Gtk::Label *trcLabel = Gtk::manage(new Gtk::Label());
|
||||
setExpandAlignProperties(trcLabel, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
|
||||
trcLabel->set_markup(escapeHtmlChars(M("TP_ICM_TRCFRAME")));
|
||||
trcLabel->set_tooltip_text(M("TP_ICM_TRCFRAME_TOOLTIP"));
|
||||
Gtk::Box *trcLabelBox = Gtk::manage(new Gtk::Box());
|
||||
trcLabelBox->add(*trcLabel);
|
||||
trcExp = Gtk::manage(new MyExpander(true, trcLabelBox));//expander Abstract Profile
|
||||
setExpandAlignProperties(trcExp, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||
// trcFrame->set_label_align(0.025, 0.5);
|
||||
Gtk::Box *trcProfVBox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL));
|
||||
trcExp->set_tooltip_text(M("TP_ICM_TRCFRAME_TOOLTIP"));
|
||||
trcExp->signal_button_release_event().connect_notify ( sigc::bind ( sigc::mem_fun (this, &ICMPanel::foldAllButMe), trcExp) );
|
||||
trcExp->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &ICMPanel::foldAllButMe), trcExp, getExpander()));
|
||||
trcExpconn = trcExp->signal_enabled_toggled().connect(sigc::mem_fun(*this, &ICMPanel::trcExpChanged));
|
||||
Gtk::Box *trcPrimVBox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL));
|
||||
// Gtk::Box *trcWavVBox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL));
|
||||
ToolParamBlock* const trcWavFBox = Gtk::manage(new ToolParamBlock());
|
||||
|
||||
Gtk::Box *trcWav2VBox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL));
|
||||
wavlocLabels = Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER));
|
||||
wTRCBox = Gtk::manage(new Gtk::Box());
|
||||
|
||||
//TRC gamma and slope
|
||||
wTRC = Gtk::manage(new MyComboBoxText());
|
||||
wTRCBox->pack_start(*wTRC, Gtk::PACK_EXPAND_WIDGET);
|
||||
trcProfVBox->pack_start(*wTRCBox, Gtk::PACK_EXPAND_WIDGET);
|
||||
@ -240,13 +260,32 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
wFrame->set_tooltip_text(M("TP_ICM_WORKING_TRC_TOOLTIP"));
|
||||
|
||||
|
||||
wGamma = Gtk::manage(new Adjuster(M("TP_ICM_WORKING_TRC_GAMMA"), 0.40, 15.0, 0.001, 2.222));
|
||||
wSlope = Gtk::manage(new Adjuster(M("TP_ICM_WORKING_TRC_SLOPE"), 0., 300., 0.01, 4.5));
|
||||
|
||||
wGamma = Gtk::manage(new Adjuster(M("TP_ICM_WORKING_TRC_GAMMA"), 0.40, 20.0, 0.001, 2.4));//default sRGB
|
||||
wSlope = Gtk::manage(new Adjuster(M("TP_ICM_WORKING_TRC_SLOPE"), 0., 300., 0.01, 12.92));//defautl sRGB
|
||||
wmidtcie = Gtk::manage(new Adjuster(M("TP_LOCALLAB_MIDTCIE"), -100., 100., 1., 0.));
|
||||
wsmoothcie = Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_SMOOTHCIE")));
|
||||
wsmoothcie = Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_SMOOTHCIE")));//highlights
|
||||
trcProfVBox->pack_start(*wGamma, Gtk::PACK_SHRINK);
|
||||
wGamma->show();
|
||||
|
||||
//wavelets variables
|
||||
sigmatrc = Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.));
|
||||
offstrc = Gtk::manage(new Adjuster(M("TP_WAVELET_OFFSFIN"), 0.33, 1.66, 0.01, 1.));
|
||||
pyrwavtrc = Gtk::manage(new Adjuster(M("TP_WAVELET_PYRWAVTRC"), 1, 5, 1, 2));
|
||||
residtrc = Gtk::manage(new Adjuster(M("TP_WAVELET_RESIDTRC"), -100., 100., 1., 0.));
|
||||
opacityCurveEditorWLI = std::unique_ptr<CurveEditorGroup>(new CurveEditorGroup(options.lastIcmCurvesDir, M("TP_ICM_OPACITYWLI")));
|
||||
opacityCurveEditorWLI->setCurveListener(this);
|
||||
const ColorManagementParams default_params;
|
||||
|
||||
opacityShapeWLI = static_cast<FlatCurveEditor*>(opacityCurveEditorWLI->addCurve(CT_Flat, "", nullptr, false, false));
|
||||
opacityShapeWLI->setIdentityValue(0.);
|
||||
opacityShapeWLI->setResetCurve(FlatCurveType(default_params.opacityCurveWLI.at(0)), default_params.opacityCurveWLI);
|
||||
opacityShapeWLI->setTooltip(M("TP_LOCALLAB_WAT_LEVELLOCCONTRAST_TOOLTIP"));
|
||||
opacityCurveEditorWLI->setTooltip(M("TP_WAVELET_PYRWAVTRC_CURVE_TOOLTIP"));
|
||||
// This will add the reset button at the end of the curveType buttons
|
||||
opacityCurveEditorWLI->curveListComplete();
|
||||
opacityCurveEditorWLI->show();
|
||||
|
||||
trcProfVBox->pack_start(*wSlope, Gtk::PACK_SHRINK);
|
||||
wSlope->show();
|
||||
trcProfVBox->pack_start(*wmidtcie, Gtk::PACK_SHRINK);
|
||||
@ -256,13 +295,40 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
wsmoothcieconn = wsmoothcie->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::wsmoothcieChanged));
|
||||
wsmoothcie->set_active(false);
|
||||
|
||||
fbw = Gtk::manage(new Gtk::CheckButton((M("TP_ICM_FBW"))));
|
||||
fbw->set_active(true);
|
||||
trcProfVBox->pack_start(*fbw, Gtk::PACK_SHRINK);
|
||||
|
||||
wavExp = Gtk::manage(new MyExpander(true, M("TP_ICM_WAVFRAME")));//expander Contrast Enhancement
|
||||
setExpandAlignProperties(wavExp, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||
wavExp->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &ICMPanel::foldAllButMe), wavExp, trcExp));
|
||||
wavExpconn = wavExp->signal_enabled_toggled().connect(sigc::mem_fun(*this, &ICMPanel::wavExpChanged));
|
||||
|
||||
wav2Exp = Gtk::manage(new MyExpander(false, M("TP_ICM_WAVREFI")));//expander Refinement wavelet
|
||||
setExpandAlignProperties(wav2Exp, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||
wav2Exp->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &ICMPanel::foldAllButMe), wav2Exp, wavExp));
|
||||
trcWavFBox->pack_start(*pyrwavtrc, Gtk::PACK_SHRINK);
|
||||
trcWavFBox->pack_start(*wavlocLabels, Gtk::PACK_SHRINK);
|
||||
pyrwavtrc->set_tooltip_text(M("TP_WAVELET_PYRWAVTRC_TOOLTIP"));
|
||||
trcWavFBox->pack_start(*opacityCurveEditorWLI, Gtk::PACK_SHRINK, 2);
|
||||
trcWav2VBox->pack_start(*sigmatrc, Gtk::PACK_SHRINK);
|
||||
trcWav2VBox->pack_start(*offstrc, Gtk::PACK_SHRINK);
|
||||
trcWav2VBox->pack_start(*residtrc, Gtk::PACK_SHRINK);
|
||||
sigmatrc->set_tooltip_text(M("TP_WAVELET_PYRWAVTRC_SIGMA_TOOLTIP"));
|
||||
residtrc->set_tooltip_text(M("TP_WAVELET_PYRWAVTRC_RESID_TOOLTIP"));
|
||||
offstrc->set_tooltip_text(M("TP_WAVELET_OFFSET_TOOLTIP"));
|
||||
primExp = Gtk::manage(new MyExpander(false, M("TP_ICM_PRIMFRAME")));
|
||||
setExpandAlignProperties(primExp, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||
primExp->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &ICMPanel::foldAllButMe), primExp, trcExp));
|
||||
|
||||
//Illuminants and Primaries
|
||||
willuBox = Gtk::manage(new Gtk::Box());
|
||||
willulab = Gtk::manage(new Gtk::Label(M("TP_ICM_WORKING_ILLU") + ":"));
|
||||
|
||||
willuBox->pack_start(*willulab, Gtk::PACK_SHRINK);
|
||||
will = Gtk::manage(new MyComboBoxText());
|
||||
willuBox->pack_start(*will, Gtk::PACK_EXPAND_WIDGET);
|
||||
trcProfVBox->pack_start(*willuBox, Gtk::PACK_EXPAND_WIDGET);
|
||||
trcPrimVBox->pack_start(*willuBox, Gtk::PACK_EXPAND_WIDGET);
|
||||
will->append(M("TP_ICM_WORKING_ILLU_NONE"));
|
||||
will->append(M("TP_ICM_WORKING_ILLU_D41"));
|
||||
will->append(M("TP_ICM_WORKING_ILLU_D50"));
|
||||
@ -285,13 +351,13 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
wprimBox->pack_start(*wprimlab, Gtk::PACK_SHRINK);
|
||||
wprim = Gtk::manage(new MyComboBoxText());
|
||||
wprimBox->pack_start(*wprim, Gtk::PACK_EXPAND_WIDGET);
|
||||
fbw = Gtk::manage(new Gtk::CheckButton((M("TP_ICM_FBW"))));
|
||||
fbw->set_active(true);
|
||||
// fbw = Gtk::manage(new Gtk::CheckButton((M("TP_ICM_FBW"))));
|
||||
// fbw->set_active(true);
|
||||
gamut = Gtk::manage(new Gtk::CheckButton((M("TP_ICM_GAMUT"))));
|
||||
gamut->set_active(true);
|
||||
|
||||
trcProfVBox->pack_start(*wprimBox, Gtk::PACK_EXPAND_WIDGET);
|
||||
trcProfVBox->pack_start(*fbw, Gtk::PACK_EXPAND_WIDGET);
|
||||
trcPrimVBox->pack_start(*wprimBox, Gtk::PACK_EXPAND_WIDGET);
|
||||
// trcPrimVBox->pack_start(*fbw, Gtk::PACK_EXPAND_WIDGET);
|
||||
// trcProfVBox->pack_start(*gamut, Gtk::PACK_EXPAND_WIDGET);
|
||||
|
||||
neutral = Gtk::manage (new Gtk::Button (M ("TP_ICM_NEUTRAL")));
|
||||
@ -302,7 +368,7 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
neutralconn = neutral->signal_pressed().connect ( sigc::mem_fun (*this, &ICMPanel::neutral_pressed) );
|
||||
neutral->show();
|
||||
|
||||
trcProfVBox->pack_start (*neutral);
|
||||
trcPrimVBox->pack_start (*neutral);
|
||||
|
||||
|
||||
wprim->append(M("TP_ICM_WORKING_PRIM_NONE"));
|
||||
@ -324,7 +390,7 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
|
||||
wprim->set_tooltip_text(M("TP_ICM_PRIMILLUM_TOOLTIP"));
|
||||
|
||||
|
||||
//Primaries as sliders
|
||||
redx = Gtk::manage(new Adjuster(M("TC_PRIM_REDX"), 0.41, 1.0, 0.0001, 0.7347));
|
||||
setExpandAlignProperties(redx, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
|
||||
redy = Gtk::manage(new Adjuster(M("TC_PRIM_REDY"), 0.0, 0.70, 0.0001, 0.2653));
|
||||
@ -380,10 +446,12 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
redVBox->pack_start(*labgridcie, Gtk::PACK_EXPAND_WIDGET, 4);
|
||||
redVBox->pack_start(*gamut, Gtk::PACK_EXPAND_WIDGET);
|
||||
|
||||
//Shift and refine color in CIE xy
|
||||
refi = Gtk::manage(new Adjuster(M("TC_PRIM_REFI"), -0.5, 1., 0.0001, 0.));
|
||||
shiftx = Gtk::manage(new Adjuster(M("TC_LOCALLAB_PRIM_SHIFTX"), -0.2, 0.2, 0.0001, 0.));
|
||||
shifty = Gtk::manage(new Adjuster(M("TC_LOCALLAB_PRIM_SHIFTY"), -0.2, 0.2, 0.0001, 0.));
|
||||
|
||||
//Chromatic adaptation
|
||||
wcatBox = Gtk::manage(new Gtk::Box());
|
||||
wcatlab = Gtk::manage(new Gtk::Label(M("TP_ICM_WORKING_CAT") + ":"));
|
||||
wcatBox->pack_start(*wcatlab, Gtk::PACK_SHRINK);
|
||||
@ -420,11 +488,24 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
refi->setAdjusterListener(this);
|
||||
shiftx->setAdjusterListener(this);
|
||||
shifty->setAdjusterListener(this);
|
||||
sigmatrc->setAdjusterListener(this);
|
||||
offstrc->setAdjusterListener(this);
|
||||
pyrwavtrc->setAdjusterListener(this);
|
||||
residtrc->setAdjusterListener(this);
|
||||
|
||||
wGamma->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
|
||||
//wGamma->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
|
||||
|
||||
wSlope->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
|
||||
// wSlope->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
|
||||
wmidtcie->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
|
||||
wav2Exp->add(*trcWav2VBox, false);
|
||||
wav2Exp->setLevel (2);
|
||||
trcWavFBox->pack_start(*wav2Exp, false, false);
|
||||
|
||||
wavExp->add(*trcWavFBox, false);
|
||||
wavExp->setLevel (2);
|
||||
trcProfVBox->pack_start(*wavExp, false, false);
|
||||
|
||||
trcProfVBox->pack_start(*primExp, false, false);
|
||||
|
||||
// Rendering intent
|
||||
riaHBox = Gtk::manage(new Gtk::Box());
|
||||
@ -438,15 +519,20 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
aRendIntent->setSelected(1);
|
||||
aRendIntent->show();
|
||||
riaHBox->pack_start(*aRendIntent->buttonGroup, Gtk::PACK_EXPAND_PADDING);
|
||||
trcPrimVBox->pack_start(*redFrame, Gtk::PACK_EXPAND_WIDGET);
|
||||
|
||||
primExp->add(*trcPrimVBox, false);
|
||||
primExp->setLevel (2);
|
||||
|
||||
pack_start(*wFrame, Gtk::PACK_EXPAND_WIDGET);
|
||||
trcProfVBox->pack_start(*redFrame, Gtk::PACK_EXPAND_WIDGET);
|
||||
trcExp->add(*trcProfVBox, false);
|
||||
trcExp->show_all();
|
||||
trcExp->set_expanded(false);
|
||||
trcExp->set_no_show_all();
|
||||
trcExp->setLevel (2);
|
||||
pack_start(*trcExp, Gtk::PACK_EXPAND_WIDGET);
|
||||
trcExp->set_expanded(false);
|
||||
|
||||
pack_start(*wFrame, Gtk::PACK_EXPAND_WIDGET);
|
||||
pack_start(*iFrame, Gtk::PACK_EXPAND_WIDGET);
|
||||
|
||||
// ---------------------------- Output profile
|
||||
|
||||
@ -554,13 +640,47 @@ ICMPanel::ICMPanel() : FoldableToolPanel(this, TOOL_NAME, M("TP_ICM_LABEL")), iu
|
||||
show_all();
|
||||
}
|
||||
|
||||
void ICMPanel::foldAllButMe (GdkEventButton* event, MyExpander *expander)
|
||||
void ICMPanel::foldAllButMe(GdkEventButton *event, MyExpander *expander, const MyExpander *parent)
|
||||
{
|
||||
if (event->button == 3) {
|
||||
trcExp->set_expanded (trcExp == expander);
|
||||
const auto set_expanded = [expander](MyExpander *expander_to_modify) {
|
||||
expander_to_modify->set_expanded(expander_to_modify == expander);
|
||||
};
|
||||
|
||||
if (parent == getExpander()) {
|
||||
set_expanded(trcExp);
|
||||
} else if (parent == trcExp) {
|
||||
// Abstract Profile sub-expanders.
|
||||
set_expanded(wavExp);
|
||||
set_expanded(primExp);
|
||||
} else if (parent == wavExp) {
|
||||
// Contrast Enhancement sub-expanders.
|
||||
set_expanded(wav2Exp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ICMPanel::wavlocChanged(double nlevel, double nmax, bool curveloc)
|
||||
{
|
||||
if (!batchMode) {
|
||||
idle_register.add(
|
||||
[this, nlevel, nmax, curveloc]() -> bool {
|
||||
if(nlevel != nmax && curveloc) {
|
||||
wavlocLabels->show();
|
||||
wavlocLabels->set_text(
|
||||
Glib::ustring::compose(
|
||||
M("TP_WAVELET_LEVLOCLABEL"),
|
||||
Glib::ustring::format(std::fixed, std::setprecision(0), nlevel)//not use but keep in case of
|
||||
)
|
||||
);
|
||||
} else {
|
||||
wavlocLabels->hide();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void ICMPanel::neutral_pressed ()
|
||||
{ //find working profile and set the same destination proile
|
||||
@ -590,9 +710,15 @@ void ICMPanel::neutral_pressed ()
|
||||
wprim->set_active(toUnderlying(ColorManagementParams::Primaries::BEST_RGB));
|
||||
}
|
||||
const ColorManagementParams defPar;
|
||||
wGamma->setValue(defPar.workingTRCGamma);//2.4
|
||||
wSlope->setValue(defPar.workingTRCSlope);//12.92
|
||||
// wGamma->setValue(defPar.workingTRCGamma);//2.4
|
||||
// wSlope->setValue(defPar.workingTRCSlope);//12.92
|
||||
wGamma->setValue(defPar.wGamma);//2.4
|
||||
wSlope->setValue(defPar.wSlope);//12.92
|
||||
wmidtcie->setValue(defPar.wmidtcie);
|
||||
sigmatrc->setValue(defPar.sigmatrc);
|
||||
offstrc->setValue(defPar.offstrc);
|
||||
residtrc->setValue(defPar.residtrc);
|
||||
pyrwavtrc->setValue(defPar.pyrwavtrc);
|
||||
preser->setValue(defPar.preser);
|
||||
fbw->set_active(defPar.fbw);
|
||||
gamut->set_active(defPar.gamut);
|
||||
@ -645,6 +771,7 @@ void ICMPanel::updateRenderingIntent(const Glib::ustring &profile)
|
||||
ICMPanel::~ICMPanel()
|
||||
{
|
||||
idle_register.destroy();
|
||||
|
||||
}
|
||||
|
||||
void ICMPanel::primChanged (float rx, float ry, float bx, float by, float gx, float gy)
|
||||
@ -711,7 +838,8 @@ void ICMPanel::iprimChanged (float r_x, float r_y, float b_x, float b_y, float g
|
||||
|
||||
void ICMPanel::setEditProvider(EditDataProvider *provider)
|
||||
{
|
||||
//in case of
|
||||
opacityShapeWLI->setEditProvider(provider);
|
||||
|
||||
}
|
||||
|
||||
void ICMPanel::setListener(ToolPanelListener *tpl)
|
||||
@ -872,8 +1000,7 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
ConnectionBlocker wprimconn_(wprimconn);
|
||||
ConnectionBlocker wcatconn_(wcatconn);
|
||||
ConnectionBlocker trcExpconn_(trcExpconn);
|
||||
|
||||
trcExp->set_expanded(false);
|
||||
ConnectionBlocker wavExpconn_(wavExpconn);
|
||||
|
||||
if (pp->icm.inputProfile.substr(0, 5) != "file:" && !ipDialog->get_filename().empty()) {
|
||||
ipDialog->set_filename(pp->icm.inputProfile);
|
||||
@ -935,10 +1062,12 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
|
||||
oRendIntent->setSelected(pp->icm.outputIntent);
|
||||
aRendIntent->setSelected(pp->icm.aRendIntent);
|
||||
opacityShapeWLI->setCurve(pp->icm.opacityCurveWLI);
|
||||
|
||||
obpc->set_active(pp->icm.outputBPC);
|
||||
fbw->set_active(pp->icm.fbw);
|
||||
trcExp->setEnabled(pp->icm.trcExp);
|
||||
wavExp->setEnabled(pp->icm.wavExp);
|
||||
gamut->set_active(pp->icm.gamut);
|
||||
wsmoothcie->set_active(pp->icm.wsmoothcie);
|
||||
ckbToneCurve->set_active(pp->icm.toneCurve);
|
||||
@ -950,9 +1079,15 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
ckbApplyHueSatMap->set_active(pp->icm.applyHueSatMap);
|
||||
lastApplyHueSatMap = pp->icm.applyHueSatMap;
|
||||
|
||||
wGamma->setValue(pp->icm.workingTRCGamma);
|
||||
wSlope->setValue(pp->icm.workingTRCSlope);
|
||||
// wGamma->setValue(pp->icm.workingTRCGamma);
|
||||
// wSlope->setValue(pp->icm.workingTRCSlope);
|
||||
wGamma->setValue(pp->icm.wGamma);
|
||||
wSlope->setValue(pp->icm.wSlope);
|
||||
wmidtcie->setValue(pp->icm.wmidtcie);
|
||||
sigmatrc->setValue(pp->icm.sigmatrc);
|
||||
offstrc->setValue(pp->icm.offstrc);
|
||||
residtrc->setValue(pp->icm.residtrc);
|
||||
pyrwavtrc->setValue(pp->icm.pyrwavtrc);
|
||||
redx->setValue(pp->icm.redx);
|
||||
redy->setValue(pp->icm.redy);
|
||||
grex->setValue(pp->icm.grex);
|
||||
@ -970,12 +1105,14 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
obpc->set_inconsistent(!pedited->icm.outputBPC);
|
||||
fbw->set_inconsistent(!pedited->icm.fbw);
|
||||
trcExp->set_inconsistent(!pedited->icm.trcExp);
|
||||
wavExp->set_inconsistent(!pedited->icm.wavExp);
|
||||
gamut->set_inconsistent(!pedited->icm.gamut);
|
||||
wsmoothcie->set_inconsistent(!pedited->icm.wsmoothcie);
|
||||
ckbToneCurve->set_inconsistent(!pedited->icm.toneCurve);
|
||||
ckbApplyLookTable->set_inconsistent(!pedited->icm.applyLookTable);
|
||||
ckbApplyBaselineExposureOffset->set_inconsistent(!pedited->icm.applyBaselineExposureOffset);
|
||||
ckbApplyHueSatMap->set_inconsistent(!pedited->icm.applyHueSatMap);
|
||||
opacityShapeWLI->setUnChanged(!pedited->icm.opacityCurveWLI);
|
||||
|
||||
if (!pedited->icm.workingProfile) {
|
||||
wProfNames->set_active_text(M("GENERAL_UNCHANGED"));
|
||||
@ -1014,10 +1151,17 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
}
|
||||
|
||||
labgridcie->setEdited(pedited->icm.labgridcieALow || pedited->icm.labgridcieBLow || pedited->icm.labgridcieAHigh || pedited->icm.labgridcieBHigh || pedited->icm.labgridcieGx || pedited->icm.labgridcieGy || pedited->icm.labgridcieWx || pedited->icm.labgridcieWy || pedited->icm.labgridcieMx || pedited->icm.labgridcieMy);
|
||||
opacityShapeWLI->setCurve(pp->icm.opacityCurveWLI);
|
||||
|
||||
wGamma->setEditedState(pedited->icm.workingTRCGamma ? Edited : UnEdited);
|
||||
wSlope->setEditedState(pedited->icm.workingTRCSlope ? Edited : UnEdited);
|
||||
// wGamma->setEditedState(pedited->icm.workingTRCGamma ? Edited : UnEdited);
|
||||
// wSlope->setEditedState(pedited->icm.workingTRCSlope ? Edited : UnEdited);
|
||||
wGamma->setEditedState(pedited->icm.wGamma ? Edited : UnEdited);
|
||||
wSlope->setEditedState(pedited->icm.wSlope ? Edited : UnEdited);
|
||||
wmidtcie->setEditedState(pedited->icm.wmidtcie ? Edited : UnEdited);
|
||||
sigmatrc->setEditedState(pedited->icm.sigmatrc ? Edited : UnEdited);
|
||||
offstrc->setEditedState(pedited->icm.offstrc ? Edited : UnEdited);
|
||||
residtrc->setEditedState(pedited->icm.residtrc ? Edited : UnEdited);
|
||||
pyrwavtrc->setEditedState(pedited->icm.pyrwavtrc ? Edited : UnEdited);
|
||||
redx->setEditedState(pedited->icm.redx ? Edited : UnEdited);
|
||||
redy->setEditedState(pedited->icm.redy ? Edited : UnEdited);
|
||||
grex->setEditedState(pedited->icm.grex ? Edited : UnEdited);
|
||||
@ -1036,6 +1180,10 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
wSlope->set_sensitive(false);
|
||||
wGamma->set_sensitive(false);
|
||||
wmidtcie->set_sensitive(false);
|
||||
sigmatrc->set_sensitive(false);
|
||||
offstrc->set_sensitive(false);
|
||||
residtrc->set_sensitive(false);
|
||||
pyrwavtrc->set_sensitive(false);
|
||||
will->set_sensitive(false);
|
||||
willulab->set_sensitive(false);
|
||||
wprim->set_sensitive(false);
|
||||
@ -1090,7 +1238,8 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
}
|
||||
riaHBox->set_sensitive(true);
|
||||
|
||||
if (pp->icm.workingTRCGamma <= 1.) {
|
||||
// if (pp->icm.workingTRCGamma <= 1.) {
|
||||
if (pp->icm.wGamma <= 1.) {
|
||||
wGamma->set_sensitive(true);
|
||||
wSlope->set_sensitive(false);
|
||||
wmidtcie->set_sensitive(true);
|
||||
@ -1123,6 +1272,10 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
wGamma->set_sensitive(false);
|
||||
wSlope->set_sensitive(false);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
if (ColorManagementParams::Primaries(wprim->get_active_row_number()) == ColorManagementParams::Primaries::DEFAULT) {
|
||||
redFrame->hide();
|
||||
} else {
|
||||
@ -1150,6 +1303,10 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
wGamma->set_sensitive(false);
|
||||
wSlope->set_sensitive(false);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
riaHBox->set_sensitive(true);
|
||||
if (ColorManagementParams::Primaries(wprim->get_active_row_number()) == ColorManagementParams::Primaries::DEFAULT) {
|
||||
redFrame->hide();
|
||||
@ -1178,6 +1335,10 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
wGamma->set_sensitive(false);
|
||||
wSlope->set_sensitive(false);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
riaHBox->set_sensitive(true);
|
||||
if (ColorManagementParams::Primaries(wprim->get_active_row_number()) == ColorManagementParams::Primaries::DEFAULT) {
|
||||
redFrame->hide();
|
||||
@ -1211,6 +1372,10 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
wGamma->set_sensitive(false);
|
||||
wSlope->set_sensitive(false);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
break;
|
||||
case ColorManagementParams::WorkingTrc::LINEAR:
|
||||
wGamma->setValue(1.);
|
||||
@ -1232,6 +1397,10 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
wGamma->set_sensitive(false);
|
||||
wSlope->set_sensitive(false);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
riaHBox->set_sensitive(true);
|
||||
if (ColorManagementParams::Primaries(wprim->get_active_row_number()) == ColorManagementParams::Primaries::DEFAULT) {
|
||||
redFrame->hide();
|
||||
@ -1334,11 +1503,18 @@ void ICMPanel::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->icm.outputBPC = obpc->get_active();
|
||||
pp->icm.fbw = fbw->get_active();
|
||||
pp->icm.trcExp = trcExp->getEnabled();
|
||||
pp->icm.wavExp = wavExp->getEnabled();
|
||||
pp->icm.gamut = gamut->get_active();
|
||||
pp->icm.wsmoothcie = wsmoothcie->get_active();
|
||||
pp->icm.workingTRCGamma = wGamma->getValue();
|
||||
pp->icm.workingTRCSlope = wSlope->getValue();
|
||||
// pp->icm.workingTRCGamma = wGamma->getValue();
|
||||
// pp->icm.workingTRCSlope = wSlope->getValue();
|
||||
pp->icm.wGamma = wGamma->getValue();
|
||||
pp->icm.wSlope = wSlope->getValue();
|
||||
pp->icm.wmidtcie = wmidtcie->getValue();
|
||||
pp->icm.sigmatrc = sigmatrc->getValue();
|
||||
pp->icm.offstrc = offstrc->getValue();
|
||||
pp->icm.residtrc = residtrc->getValue();
|
||||
pp->icm.pyrwavtrc = pyrwavtrc->getIntValue();
|
||||
pp->icm.redx = redx->getValue();
|
||||
pp->icm.redy = redy->getValue();
|
||||
pp->icm.grex = grex->getValue();
|
||||
@ -1350,6 +1526,7 @@ void ICMPanel::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->icm.shifty = shifty->getValue();
|
||||
pp->toneCurve.fromHistMatching = false;
|
||||
pp->icm.preser = preser->getValue();
|
||||
pp->icm.opacityCurveWLI = opacityShapeWLI->getCurve();
|
||||
|
||||
if (pedited) {
|
||||
pedited->icm.inputProfile = !iunchanged->get_active();
|
||||
@ -1360,6 +1537,7 @@ void ICMPanel::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->icm.outputBPC = !obpc->get_inconsistent();
|
||||
pedited->icm.fbw = !fbw->get_inconsistent();
|
||||
pedited->icm.trcExp = !trcExp->get_inconsistent();
|
||||
pedited->icm.wavExp = !wavExp->get_inconsistent();
|
||||
pedited->icm.gamut = !gamut->get_inconsistent();
|
||||
pedited->icm.wsmoothcie = !wsmoothcie->get_inconsistent();
|
||||
pedited->icm.dcpIlluminant = dcpIll->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
@ -1367,9 +1545,15 @@ void ICMPanel::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->icm.applyLookTable = !ckbApplyLookTable->get_inconsistent();
|
||||
pedited->icm.applyBaselineExposureOffset = !ckbApplyBaselineExposureOffset->get_inconsistent();
|
||||
pedited->icm.applyHueSatMap = !ckbApplyHueSatMap->get_inconsistent();
|
||||
pedited->icm.workingTRCGamma = wGamma->getEditedState();
|
||||
pedited->icm.workingTRCSlope = wSlope->getEditedState();
|
||||
// pedited->icm.workingTRCGamma = wGamma->getEditedState();
|
||||
// pedited->icm.workingTRCSlope = wSlope->getEditedState();
|
||||
pedited->icm.wGamma = wGamma->getEditedState();
|
||||
pedited->icm.wSlope = wSlope->getEditedState();
|
||||
pedited->icm.wmidtcie = wmidtcie->getEditedState();
|
||||
pedited->icm.sigmatrc = sigmatrc->getEditedState();
|
||||
pedited->icm.offstrc = offstrc->getEditedState();
|
||||
pedited->icm.residtrc = residtrc->getEditedState();
|
||||
pedited->icm.pyrwavtrc = pyrwavtrc->getEditedState();
|
||||
pedited->icm.workingTRC = wTRC->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
pedited->icm.will = will->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
pedited->icm.wprim = wprim->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
@ -1377,14 +1561,31 @@ void ICMPanel::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->icm.redx = redx->getEditedState();
|
||||
pedited->icm.redy = redy->getEditedState();
|
||||
pedited->icm.labgridcieALow = pedited->icm.labgridcieBLow = pedited->icm.labgridcieAHigh = pedited->icm.labgridcieBHigh = pedited->icm.labgridcieGx = pedited->icm.labgridcieGy = pedited->icm.labgridcieWx = pedited->icm.labgridcieWy = pedited->icm.labgridcieMx = pedited->icm.labgridcieMy = labgridcie->getEdited();
|
||||
pedited->icm.opacityCurveWLI = !opacityShapeWLI->isUnChanged();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void ICMPanel::curveChanged(CurveEditor* ce)
|
||||
{
|
||||
|
||||
if (listener) {
|
||||
if (ce == opacityShapeWLI) {
|
||||
listener->panelChanged(EvICMopacityWLI, M("HISTORY_CUSTOMCURVE"));
|
||||
}
|
||||
}
|
||||
}
|
||||
void ICMPanel::setDefaults(const ProcParams* defParams, const ParamsEdited* pedited)
|
||||
{
|
||||
wGamma->setDefault(defParams->icm.workingTRCGamma);
|
||||
wSlope->setDefault(defParams->icm.workingTRCSlope);
|
||||
// wGamma->setDefault(defParams->icm.workingTRCGamma);
|
||||
// wSlope->setDefault(defParams->icm.workingTRCSlope);
|
||||
wGamma->setDefault(defParams->icm.wGamma);
|
||||
wSlope->setDefault(defParams->icm.wSlope);
|
||||
wmidtcie->setDefault(defParams->icm.wmidtcie);
|
||||
sigmatrc->setDefault(defParams->icm.sigmatrc);
|
||||
offstrc->setDefault(defParams->icm.offstrc);
|
||||
residtrc->setDefault(defParams->icm.residtrc);
|
||||
pyrwavtrc->setDefault(defParams->icm.pyrwavtrc);
|
||||
redx->setDefault(defParams->icm.redx);
|
||||
redy->setDefault(defParams->icm.redy);
|
||||
grex->setDefault(defParams->icm.grex);
|
||||
@ -1398,9 +1599,15 @@ void ICMPanel::setDefaults(const ProcParams* defParams, const ParamsEdited* pedi
|
||||
labgridcie->setDefault(defParams->icm.labgridcieALow, defParams->icm.labgridcieBLow , defParams->icm.labgridcieAHigh, defParams->icm.labgridcieBHigh, defParams->icm.labgridcieGx, defParams->icm.labgridcieGy, defParams->icm.labgridcieWx, defParams->icm.labgridcieWy, defParams->icm.labgridcieMx, defParams->icm.labgridcieMy);
|
||||
|
||||
if (pedited) {
|
||||
wGamma->setDefaultEditedState(pedited->icm.workingTRCGamma ? Edited : UnEdited);
|
||||
wSlope->setDefaultEditedState(pedited->icm.workingTRCSlope ? Edited : UnEdited);
|
||||
// wGamma->setDefaultEditedState(pedited->icm.workingTRCGamma ? Edited : UnEdited);
|
||||
// wSlope->setDefaultEditedState(pedited->icm.workingTRCSlope ? Edited : UnEdited);
|
||||
wGamma->setDefaultEditedState(pedited->icm.wGamma ? Edited : UnEdited);
|
||||
wSlope->setDefaultEditedState(pedited->icm.wSlope ? Edited : UnEdited);
|
||||
wmidtcie->setDefaultEditedState(pedited->icm.wmidtcie ? Edited : UnEdited);
|
||||
sigmatrc->setDefaultEditedState(pedited->icm.sigmatrc ? Edited : UnEdited);
|
||||
offstrc->setDefaultEditedState(pedited->icm.offstrc ? Edited : UnEdited);
|
||||
residtrc->setDefaultEditedState(pedited->icm.residtrc ? Edited : UnEdited);
|
||||
pyrwavtrc->setDefaultEditedState(pedited->icm.pyrwavtrc ? Edited : UnEdited);
|
||||
redx->setDefaultEditedState(pedited->icm.redx ? Edited : UnEdited);
|
||||
redy->setDefaultEditedState(pedited->icm.redy ? Edited : UnEdited);
|
||||
grex->setDefaultEditedState(pedited->icm.grex ? Edited : UnEdited);
|
||||
@ -1417,6 +1624,10 @@ void ICMPanel::setDefaults(const ProcParams* defParams, const ParamsEdited* pedi
|
||||
wGamma->setDefaultEditedState(Irrelevant);
|
||||
wSlope->setDefaultEditedState(Irrelevant);
|
||||
wmidtcie->setDefaultEditedState(Irrelevant);
|
||||
sigmatrc->setDefaultEditedState(Irrelevant);
|
||||
offstrc->setDefaultEditedState(Irrelevant);
|
||||
residtrc->setDefaultEditedState(Irrelevant);
|
||||
pyrwavtrc->setDefaultEditedState(Irrelevant);
|
||||
redx->setDefaultEditedState(Irrelevant);
|
||||
redy->setDefaultEditedState(Irrelevant);
|
||||
grex->setDefaultEditedState(Irrelevant);
|
||||
@ -1448,6 +1659,14 @@ void ICMPanel::adjusterChanged(Adjuster* a, double newval)
|
||||
listener->panelChanged(EvICMslop, costr2);
|
||||
} else if (a == wmidtcie) {
|
||||
listener->panelChanged(EvICMwmidtcie, costr2);
|
||||
} else if (a == sigmatrc) {
|
||||
listener->panelChanged(EvICMsigmatrc, costr2);
|
||||
} else if (a == offstrc) {
|
||||
listener->panelChanged(EvICMoffstrc, costr2);
|
||||
} else if (a == residtrc) {
|
||||
listener->panelChanged(EvICMresidtrc, costr2);
|
||||
} else if (a == pyrwavtrc) {
|
||||
listener->panelChanged(EvICMpyrwavtrc, costr2);
|
||||
} else if (a == redx) {
|
||||
listener->panelChanged(EvICMredx, costr2);
|
||||
} else if (a == redy) {
|
||||
@ -1487,6 +1706,10 @@ void ICMPanel::wtrcinChanged()
|
||||
wGamma->set_sensitive(false);
|
||||
wSlope->set_sensitive(false);
|
||||
wmidtcie->set_sensitive(false);
|
||||
sigmatrc->set_sensitive(false);
|
||||
offstrc->set_sensitive(false);
|
||||
residtrc->set_sensitive(false);
|
||||
pyrwavtrc->set_sensitive(false);
|
||||
will->set_sensitive(false);
|
||||
willulab->set_sensitive(false);
|
||||
wprim->set_sensitive(false);
|
||||
@ -1503,6 +1726,10 @@ void ICMPanel::wtrcinChanged()
|
||||
will->set_sensitive(false);
|
||||
wprim->set_sensitive(true);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
wcat->set_sensitive(true);
|
||||
wcatlab->set_sensitive(true);
|
||||
fbw->set_sensitive(true);
|
||||
@ -1538,6 +1765,10 @@ void ICMPanel::wtrcinChanged()
|
||||
wGamma->setValue(2.222);
|
||||
wSlope->setValue(4.5);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
will->set_sensitive(false);
|
||||
willulab->set_sensitive(true);
|
||||
wprim->set_sensitive(true);
|
||||
@ -1568,6 +1799,10 @@ void ICMPanel::wtrcinChanged()
|
||||
wGamma->setValue(2.4);
|
||||
wSlope->setValue(12.92);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
will->set_sensitive(false);
|
||||
willulab->set_sensitive(true);
|
||||
wprim->set_sensitive(true);
|
||||
@ -1599,6 +1834,10 @@ void ICMPanel::wtrcinChanged()
|
||||
wGamma->setValue(2.2);
|
||||
wSlope->setValue(0.);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
will->set_sensitive(false);
|
||||
willulab->set_sensitive(true);
|
||||
wprim->set_sensitive(true);
|
||||
@ -1631,6 +1870,10 @@ void ICMPanel::wtrcinChanged()
|
||||
wGamma->setValue(1.8);
|
||||
wSlope->setValue(0.);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
will->set_sensitive(false);
|
||||
willulab->set_sensitive(true);
|
||||
wprim->set_sensitive(true);
|
||||
@ -1663,6 +1906,10 @@ void ICMPanel::wtrcinChanged()
|
||||
wGamma->setValue(1.0);
|
||||
wSlope->setValue(1.);
|
||||
wmidtcie->set_sensitive(true);
|
||||
sigmatrc->set_sensitive(true);
|
||||
offstrc->set_sensitive(true);
|
||||
residtrc->set_sensitive(true);
|
||||
pyrwavtrc->set_sensitive(true);
|
||||
will->set_sensitive(false);
|
||||
willulab->set_sensitive(true);
|
||||
wprim->set_sensitive(true);
|
||||
@ -2317,6 +2564,17 @@ void ICMPanel::trcExpChanged()
|
||||
}
|
||||
}
|
||||
|
||||
void ICMPanel::wavExpChanged()
|
||||
{
|
||||
|
||||
if (listener) {
|
||||
if (wavExp->getEnabled()) {
|
||||
listener->panelChanged(EvICMwavExp, M("GENERAL_ENABLED"));
|
||||
} else {
|
||||
listener->panelChanged(EvICMwavExp, M("GENERAL_DISABLED"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ICMPanel::fbwChanged()
|
||||
@ -2503,6 +2761,8 @@ void ICMPanel::setBatchMode(bool batchMode)
|
||||
iunchanged->set_group(opts);
|
||||
iVBox->pack_start(*iunchanged, Gtk::PACK_SHRINK, 4);
|
||||
iVBox->reorder_child(*iunchanged, 5);
|
||||
opacityCurveEditorWLI->setBatchMode(batchMode);
|
||||
|
||||
removeIfThere(this, saveRef);
|
||||
oProfNames->append(M("GENERAL_UNCHANGED"));
|
||||
oRendIntent->addEntry("template-24", M("GENERAL_UNCHANGED"));
|
||||
@ -2517,6 +2777,10 @@ void ICMPanel::setBatchMode(bool batchMode)
|
||||
wGamma->showEditedCB();
|
||||
wSlope->showEditedCB();
|
||||
wmidtcie->showEditedCB();
|
||||
sigmatrc->showEditedCB();
|
||||
offstrc->showEditedCB();
|
||||
residtrc->showEditedCB();
|
||||
pyrwavtrc->showEditedCB();
|
||||
redx->showEditedCB();
|
||||
redy->showEditedCB();
|
||||
grex->showEditedCB();
|
||||
|
@ -26,6 +26,8 @@
|
||||
#include "guiutils.h"
|
||||
#include "popupbutton.h"
|
||||
#include "toolpanel.h"
|
||||
#include "curvelistener.h"
|
||||
#include "thresholdadjuster.h"
|
||||
|
||||
#include "rtengine/imagedata.h"
|
||||
|
||||
@ -38,8 +40,15 @@ public:
|
||||
|
||||
class LabGrid;
|
||||
|
||||
class CurveEditor;
|
||||
class CurveEditorGroup;
|
||||
class DiagonalCurveEditor;
|
||||
class EditDataProvider;
|
||||
class FlatCurveEditor;
|
||||
|
||||
class ICMPanel final :
|
||||
public ToolParamBlock,
|
||||
public CurveListener,
|
||||
public FoldableToolPanel,
|
||||
public rtengine::AutoprimListener,
|
||||
public AdjusterListener
|
||||
@ -51,11 +60,22 @@ protected:
|
||||
Gtk::Frame* redFrame;
|
||||
Gtk::Frame* colorFramecie;
|
||||
MyExpander* trcExp;
|
||||
MyExpander* wavExp;
|
||||
MyExpander* wav2Exp;
|
||||
MyExpander* primExp;
|
||||
|
||||
Adjuster* wGamma;
|
||||
Adjuster* wSlope;
|
||||
Adjuster* wmidtcie;
|
||||
Gtk::CheckButton* wsmoothcie;
|
||||
Adjuster* sigmatrc;
|
||||
Adjuster* offstrc;
|
||||
Adjuster* pyrwavtrc;
|
||||
Adjuster* residtrc;
|
||||
|
||||
std::unique_ptr<CurveEditorGroup> opacityCurveEditorWLI;
|
||||
FlatCurveEditor* opacityShapeWLI;
|
||||
|
||||
Adjuster* redx;
|
||||
Adjuster* redy;
|
||||
Adjuster* grex;
|
||||
@ -75,7 +95,7 @@ protected:
|
||||
//Gtk::Label* blb;
|
||||
Gtk::Button* neutral;
|
||||
sigc::connection trcExpconn;
|
||||
bool lasttrcExp;
|
||||
sigc::connection wavExpconn;
|
||||
|
||||
sigc::connection neutralconn;
|
||||
bool lastToneCurve;
|
||||
@ -127,6 +147,13 @@ private:
|
||||
rtengine::ProcEvent EvICMshifty;
|
||||
rtengine::ProcEvent EvICMwmidtcie;
|
||||
rtengine::ProcEvent EvICMwsmoothcie;
|
||||
rtengine::ProcEvent EvICMsigmatrc;
|
||||
rtengine::ProcEvent EvICMoffstrc;
|
||||
rtengine::ProcEvent EvICMopacityWLI;
|
||||
rtengine::ProcEvent EvICMpyrwavtrc;
|
||||
rtengine::ProcEvent EvICMresidtrc;
|
||||
rtengine::ProcEvent EvICMwavExp;
|
||||
|
||||
LabGrid *labgridcie;
|
||||
IdleRegister idle_register;
|
||||
|
||||
@ -193,7 +220,7 @@ private:
|
||||
Glib::ustring filename;
|
||||
void updateDCP(int dcpIlluminant, Glib::ustring dcp_name);
|
||||
void updateRenderingIntent(const Glib::ustring &profile);
|
||||
void foldAllButMe (GdkEventButton* event, MyExpander *expander);
|
||||
void foldAllButMe(GdkEventButton *event, MyExpander *expander, const MyExpander *parent);
|
||||
|
||||
float nextrx;
|
||||
float nextry;
|
||||
@ -205,6 +232,7 @@ private:
|
||||
float nextwy;
|
||||
float nextmx;
|
||||
float nextmy;
|
||||
Gtk::Label* wavlocLabels;
|
||||
|
||||
public:
|
||||
static const Glib::ustring TOOL_NAME;
|
||||
@ -220,6 +248,8 @@ public:
|
||||
void primChanged (float rx, float ry, float bx, float by, float gx, float gy) override;
|
||||
void iprimChanged (float r_x, float r_y, float b_x, float b_y, float g_x, float g_y, float w_x, float w_y, float m_x, float m_y) override;
|
||||
void neutral_pressed();
|
||||
void curveChanged(CurveEditor* ce) override;
|
||||
void wavlocChanged(double nlevel, double nmax, bool curveloc) override;
|
||||
|
||||
void wpChanged();
|
||||
void wtrcinChanged();
|
||||
@ -227,6 +257,7 @@ public:
|
||||
void wprimChanged();
|
||||
void wcatChanged();
|
||||
void trcExpChanged();
|
||||
void wavExpChanged();
|
||||
void opChanged();
|
||||
void oiChanged(int n);
|
||||
void aiChanged(int n);
|
||||
|
@ -372,6 +372,8 @@ void Locallab::read(const rtengine::procparams::ProcParams* pp, const ParamsEdit
|
||||
r.wavMethod = 3;
|
||||
} else if (pp->locallab.spots.at(i).wavMethod == "D14") {
|
||||
r.wavMethod = 4;
|
||||
} else if (pp->locallab.spots.at(i).wavMethod == "D20") {
|
||||
r.wavMethod = 5;
|
||||
}
|
||||
|
||||
expsettings->addControlSpot(r);
|
||||
@ -565,6 +567,8 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
||||
r.wavMethod = 3;
|
||||
} else if (newSpot->wavMethod == "D14") {
|
||||
r.wavMethod = 4;
|
||||
} else if (newSpot->wavMethod == "D20") {
|
||||
r.wavMethod = 5;
|
||||
}
|
||||
|
||||
expsettings->addControlSpot(r);
|
||||
@ -903,6 +907,8 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
||||
r.wavMethod = 3;
|
||||
} else if (newSpot->wavMethod == "D14") {
|
||||
r.wavMethod = 4;
|
||||
} else if (newSpot->wavMethod == "D20") {
|
||||
r.wavMethod = 5;
|
||||
}
|
||||
|
||||
expsettings->addControlSpot(r);
|
||||
@ -1073,6 +1079,8 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
||||
pp->locallab.spots.at(pp->locallab.selspot).wavMethod = "D10";
|
||||
} else if (r->wavMethod == 4) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).wavMethod = "D14";
|
||||
} else if (r->wavMethod == 5) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).wavMethod = "D20";
|
||||
}
|
||||
}
|
||||
|
||||
@ -1399,8 +1407,10 @@ void Locallab::cieChanged(const std::vector<locallabcieLC> &cielc, int selspot)
|
||||
const double me1 = cie_lc.at(selspot).meanxelc;
|
||||
const double me2 = cie_lc.at(selspot).meanyelc;
|
||||
const int pri = cie_lc.at(selspot).primlc;
|
||||
const double slg = cie_lc.at(selspot).slopeglc;
|
||||
const bool lkg = cie_lc.at(selspot).linkrgblc;
|
||||
|
||||
expcie.updateiPrimloc(r1, r2, g1, g2, b1, b2, w1, w2, m1, m2, me1, me2, pri);
|
||||
expcie.updateiPrimloc(r1, r2, g1, g2, b1, b2, w1, w2, m1, m2, me1, me2, pri, slg, lkg);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1016,18 +1016,14 @@ void LocallabColor::updateguicolor(int spottype)
|
||||
if(spottype == 3) {
|
||||
invers->hide();
|
||||
sensi->hide();
|
||||
showmaskcolMethod->set_active(0);
|
||||
expmaskcol1->hide();
|
||||
expmaskcol->hide();
|
||||
exprecov->hide();
|
||||
enaColorMask->set_active(false);
|
||||
previewcol->hide();
|
||||
previewcol->set_active(false);
|
||||
resetMaskView();
|
||||
} else {
|
||||
invers->show();
|
||||
sensi->show();
|
||||
expmaskcol1->show();
|
||||
expmaskcol->show();
|
||||
exprecov->show();
|
||||
if(!invers->get_active()) {
|
||||
@ -1039,7 +1035,6 @@ void LocallabColor::updateguicolor(int spottype)
|
||||
|
||||
}
|
||||
enableListener();
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
@ -2070,18 +2065,6 @@ void LocallabColor::convertParamToNormal()
|
||||
rgbshape->setCurve(defSpot.rgbcurve);
|
||||
special->set_active(defSpot.special);
|
||||
|
||||
if (defSpot.merMethod == "mone") {
|
||||
merMethod->set_active(0);
|
||||
// } else if (defSpot.merMethod == "mtwo") {
|
||||
// merMethod->set_active(1);
|
||||
} else if (defSpot.merMethod == "mthr") {
|
||||
merMethod->set_active(1);
|
||||
} else if (defSpot.merMethod == "mfou") {
|
||||
merMethod->set_active(2);
|
||||
} else if (defSpot.merMethod == "mfiv") {
|
||||
merMethod->set_active(3);
|
||||
}
|
||||
|
||||
if (defSpot.mergecolMethod == "one") {
|
||||
mergecolMethod->set_active(0);
|
||||
} else if (defSpot.mergecolMethod == "two") {
|
||||
@ -2177,6 +2160,17 @@ void LocallabColor::convertParamToSimple()
|
||||
} else if (defSpot.qualitycurveMethod == "std") {
|
||||
qualitycurveMethod->set_active(1);
|
||||
}
|
||||
if (defSpot.merMethod == "mone") {
|
||||
merMethod->set_active(0);
|
||||
// } else if (defSpot.merMethod == "mtwo") {
|
||||
// merMethod->set_active(1);
|
||||
} else if (defSpot.merMethod == "mthr") {
|
||||
merMethod->set_active(1);
|
||||
} else if (defSpot.merMethod == "mfou") {
|
||||
merMethod->set_active(2);
|
||||
} else if (defSpot.merMethod == "mfiv") {
|
||||
merMethod->set_active(3);
|
||||
}
|
||||
|
||||
llshape->setCurve(defSpot.llcurve);
|
||||
ccshape->setCurve(defSpot.cccurve);
|
||||
@ -2232,7 +2226,7 @@ void LocallabColor::updateGUIToMode(const modeType new_type)
|
||||
rgbCurveEditorG->hide();
|
||||
special->hide();
|
||||
exprecov->show();
|
||||
expmaskcol1->hide();
|
||||
// expmaskcol1->hide();
|
||||
struFrame->hide();
|
||||
blurFrame->hide();
|
||||
lapmaskcol->hide();
|
||||
@ -2256,6 +2250,7 @@ void LocallabColor::updateGUIToMode(const modeType new_type)
|
||||
|
||||
if (!invers->get_active()) { // Keep widget hidden when invers is toggled
|
||||
expgradcol->show();
|
||||
expmaskcol1->show();
|
||||
exprecov->show();
|
||||
gamc->hide();
|
||||
}
|
||||
@ -2586,6 +2581,7 @@ void LocallabColor::updateColorGUI1()
|
||||
softradiuscol->show();
|
||||
expgradcol->show();
|
||||
exprecov->show();
|
||||
expmaskcol1->show();
|
||||
}
|
||||
|
||||
labqualcurv->show();
|
||||
@ -3034,13 +3030,11 @@ void LocallabExposure::updateguiexpos(int spottype)
|
||||
inversex->hide();
|
||||
sensiex->hide();
|
||||
previewexe->hide();
|
||||
showmaskexpMethod->set_active(0);
|
||||
enaExpMask->set_active(false);
|
||||
enaExpMaskaft->set_active(false);
|
||||
previewexe->set_active(false);
|
||||
expmaskexp->hide();
|
||||
exprecove->hide();
|
||||
resetMaskView();
|
||||
} else {
|
||||
inversex->show();
|
||||
sensiex->show();
|
||||
@ -4570,13 +4564,11 @@ void LocallabShadow::updateguishad(int spottype)
|
||||
if(spottype == 3) {
|
||||
inverssh->hide();
|
||||
sensihs->hide();
|
||||
showmaskSHMethod->set_active(0);
|
||||
previewsh->hide();
|
||||
exprecovs->hide();
|
||||
expmasksh->hide();
|
||||
enaSHMask->set_active(false);
|
||||
previewsh->set_active(false);
|
||||
resetMaskView();
|
||||
} else {
|
||||
sensihs->show();
|
||||
inverssh->show();
|
||||
@ -5754,13 +5746,11 @@ void LocallabVibrance::updateguivib(int spottype)
|
||||
|
||||
if(spottype == 3) {
|
||||
sensiv->hide();
|
||||
showmaskvibMethod->set_active(0);
|
||||
previewvib->hide();
|
||||
enavibMask->set_active(false);
|
||||
previewvib->set_active(false);
|
||||
exprecovv->hide();
|
||||
expmaskvib->hide();
|
||||
resetMaskView();
|
||||
} else {
|
||||
sensiv->show();
|
||||
previewvib->show();
|
||||
@ -5771,6 +5761,8 @@ void LocallabVibrance::updateguivib(int spottype)
|
||||
}
|
||||
enableListener();
|
||||
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
@ -64,6 +64,7 @@ protected:
|
||||
rtengine::ProcEvent Evlocallabpreviewlog;
|
||||
rtengine::ProcEvent Evlocallabpreviewcie;
|
||||
rtengine::ProcEvent Evlocallabpreviewmas;
|
||||
rtengine::ProcEvent Evlocallabnormcie12;
|
||||
rtengine::ProcEvent Evlocallabnormcie;
|
||||
rtengine::ProcEvent Evlocallabstrumaskcie;
|
||||
rtengine::ProcEvent EvLocallabtoolcie;
|
||||
@ -72,7 +73,6 @@ protected:
|
||||
rtengine::ProcEvent Evlocallabblurcie;
|
||||
rtengine::ProcEvent Evlocallabhighmaskcie;
|
||||
rtengine::ProcEvent Evlocallabshadmaskcie;
|
||||
rtengine::ProcEvent Evlocallabsigmoidsenscie;
|
||||
rtengine::ProcEvent EvlocallabLLmaskcieshapewav;
|
||||
rtengine::ProcEvent EvlocallabcsThresholdcie;
|
||||
rtengine::ProcEvent Evlocallabcomprcie;
|
||||
@ -81,17 +81,29 @@ protected:
|
||||
rtengine::ProcEvent Evlocallablogcieq;
|
||||
rtengine::ProcEvent Evlocallabcomprcieth;
|
||||
rtengine::ProcEvent EvlocallabHHhmaskcieshape;
|
||||
rtengine::ProcEvent EvlocallabbwevMethod;
|
||||
rtengine::ProcEvent EvlocallabbwevMethod12;
|
||||
rtengine::ProcEvent Evlocallabgamjcie;
|
||||
rtengine::ProcEvent Evlocallabslopjcie;
|
||||
rtengine::ProcEvent Evlocallabmidtcie;
|
||||
rtengine::ProcEvent Evlocallabcontsig;
|
||||
rtengine::ProcEvent Evlocallabskewsig;
|
||||
rtengine::ProcEvent Evlocallabwhitsig;
|
||||
rtengine::ProcEvent Evlocallabslopesmo;
|
||||
rtengine::ProcEvent Evlocallabslopesmoq;
|
||||
rtengine::ProcEvent Evlocallabslopesmor;
|
||||
rtengine::ProcEvent Evlocallabslopesmog;
|
||||
rtengine::ProcEvent Evlocallabslopesmob;
|
||||
rtengine::ProcEvent Evlocallabkslopesmor;
|
||||
rtengine::ProcEvent Evlocallabkslopesmog;
|
||||
rtengine::ProcEvent Evlocallabkslopesmob;
|
||||
rtengine::ProcEvent Evlocallabsmoothcie;
|
||||
rtengine::ProcEvent Evlocallabsmoothcielnk;
|
||||
rtengine::ProcEvent Evlocallabsmoothcieth;
|
||||
rtengine::ProcEvent Evlocallabsmoothcietrc;
|
||||
rtengine::ProcEvent Evlocallabsmoothcietrcrel;
|
||||
rtengine::ProcEvent Evlocallabsmoothcieyb;
|
||||
rtengine::ProcEvent Evlocallabsmoothcielum;
|
||||
rtengine::ProcEvent Evlocallabsmoothciehigh;
|
||||
rtengine::ProcEvent Evlocallabsmoothciemet;
|
||||
rtengine::ProcEvent Evlocallabsigcie;
|
||||
rtengine::ProcEvent Evlocallabillcie;
|
||||
@ -114,7 +126,7 @@ protected:
|
||||
rtengine::ProcEvent Evlocallabgamutcie;
|
||||
rtengine::ProcEvent Evlocallabbwcie;
|
||||
rtengine::ProcEvent Evlocallabexpprecam;
|
||||
rtengine::ProcEvent Evlocallablightsigqcie;
|
||||
rtengine::ProcEvent Evlocallablightsigqcie12;
|
||||
rtengine::ProcEvent Evlocallabcontsigqcie;
|
||||
rtengine::ProcEvent Evlocallabrefi;
|
||||
rtengine::ProcEvent Evlocallabshiftxl;
|
||||
@ -131,6 +143,22 @@ protected:
|
||||
rtengine::ProcEvent Evlocallabfeathercie;
|
||||
rtengine::ProcEvent EvlocallabfeatherSH;
|
||||
rtengine::ProcEvent Evlocallabfeather_mask;
|
||||
rtengine::ProcEvent Evlocallaboffslc;
|
||||
rtengine::ProcEvent EvlocallabmodeQJ;
|
||||
rtengine::ProcEvent EvlocallabbwevMethod;
|
||||
rtengine::ProcEvent Evlocallabsigmoidldacie;
|
||||
rtengine::ProcEvent Evlocallabsigmoidthcie;
|
||||
rtengine::ProcEvent Evlocallabsigmoidblcie;
|
||||
rtengine::ProcEvent Evlocallabsigmoidsenscie;
|
||||
rtengine::ProcEvent Evlocallabsigq;
|
||||
rtengine::ProcEvent Evlocallabsigq_12;
|
||||
rtengine::ProcEvent Evlocallabsigjz;
|
||||
rtengine::ProcEvent Evlocallabforcebw;
|
||||
|
||||
rtengine::ProcEvent Evlocallabsigmoidldajzcie;
|
||||
rtengine::ProcEvent Evlocallabsigmoidthjzcie;
|
||||
rtengine::ProcEvent Evlocallabsigmoidbljzcie;
|
||||
rtengine::ProcEvent Evlocallablogcie_12;
|
||||
// LocallabTool parameters
|
||||
bool needMode;
|
||||
bool isLocActivated;
|
||||
@ -1224,9 +1252,12 @@ private:
|
||||
Adjuster* const lclightness;
|
||||
Gtk::Frame* const contFrame;
|
||||
Adjuster* const sigmalc;
|
||||
Adjuster* const offslc;
|
||||
CurveEditorGroup* const LocalcurveEditorwav;
|
||||
FlatCurveEditor* const wavshape;
|
||||
ThresholdAdjuster* const csThreshold;
|
||||
Gtk::CheckButton* const processwav;
|
||||
|
||||
Adjuster* const levelwav;
|
||||
MyExpander* const expresidpyr;
|
||||
Adjuster* const residcont;
|
||||
@ -1317,7 +1348,8 @@ private:
|
||||
CurveEditorGroup* const mask2lcCurveEditorG;
|
||||
DiagonalCurveEditor* const Lmasklcshape;
|
||||
|
||||
sigc::connection localcontMethodConn, previewlcConn, origlcConn, wavgradlConn, wavedgConn, localedgMethodConn, waveshowConn, localneiMethodConn, wavblurConn, blurlcConn, wavcontConn, wavcompreConn, wavcompConn, fftwlcConn, showmasklcMethodConn, enalcMaskConn;
|
||||
sigc::connection localcontMethodConn, previewlcConn, origlcConn, processwavConn, wavgradlConn, wavedgConn, localedgMethodConn, waveshowConn, localneiMethodConn, wavblurConn, blurlcConn, wavcontConn, wavcompreConn, wavcompConn, fftwlcConn, showmasklcMethodConn, enalcMaskConn;
|
||||
rtengine::ProcEvent Evlocallabprocesswav;
|
||||
|
||||
public:
|
||||
LocallabContrast();
|
||||
@ -1358,6 +1390,7 @@ private:
|
||||
|
||||
void localcontMethodChanged();
|
||||
void origlcChanged();
|
||||
void processwavChanged();
|
||||
void wavgradlChanged();
|
||||
void wavedgChanged();
|
||||
void localedgMethodChanged();
|
||||
@ -1693,9 +1726,11 @@ private:
|
||||
Adjuster* const reparcie;
|
||||
Gtk::CheckButton* const jabcie;
|
||||
MyComboBoxText* const modecam;
|
||||
MyComboBoxText* const modeQJ;
|
||||
MyComboBoxText* const modecie;
|
||||
Gtk::Frame* const jzFrame;
|
||||
Gtk::Box* const modeHBoxcam;
|
||||
Gtk::Box* const modeHBoxQJ;
|
||||
Gtk::Box* const modeHBoxcie;
|
||||
Gtk::Frame* const cieFrame;
|
||||
MyExpander* const expcamscene;
|
||||
@ -1721,7 +1756,6 @@ private:
|
||||
Adjuster* const jz100;
|
||||
Adjuster* const pqremap;
|
||||
Adjuster* const pqremapcam16;
|
||||
Gtk::CheckButton* const forcejz;
|
||||
MyExpander* const expjz;
|
||||
Gtk::Frame* const jzshFrame;
|
||||
Adjuster* const hljzcie;
|
||||
@ -1757,20 +1791,32 @@ private:
|
||||
Adjuster* const whiteEvjz;
|
||||
Adjuster* const targetjz;
|
||||
Gtk::Frame* const bevwevFrame;
|
||||
Gtk::CheckButton* const forcebw;
|
||||
Gtk::CheckButton* const sigybjz12;
|
||||
ToolParamBlock* const sigBox12;
|
||||
Gtk::Frame* const sigmoidFrame12;
|
||||
Gtk::CheckButton* const sigq12;
|
||||
Adjuster* const slopesmoq;
|
||||
Adjuster* const sigmoidldacie12;
|
||||
Adjuster* const sigmoidthcie12;
|
||||
Adjuster* const sigmoidblcie12;
|
||||
Gtk::Box* autocomprHBox;
|
||||
Gtk::ToggleButton* const comprcieauto;
|
||||
Gtk::CheckButton* const normcie12;
|
||||
Gtk::CheckButton* const normcie;
|
||||
Gtk::Box* const modeHBoxbwev12;
|
||||
MyComboBoxText* const bwevMethod12;
|
||||
Gtk::Box* const modeHBoxbwev;
|
||||
MyComboBoxText* const bwevMethod;
|
||||
|
||||
ToolParamBlock* const sigBox;
|
||||
Gtk::Frame* const sigmoidFrame;
|
||||
Gtk::Frame* const sigmoidnormFrame;
|
||||
Gtk::CheckButton* const sigq;
|
||||
Gtk::Frame* const sigmoidnormFrame;
|
||||
Adjuster* const sigmoidldacie;
|
||||
Adjuster* const sigmoidthcie;
|
||||
Adjuster* const sigmoidsenscie;
|
||||
Adjuster* const sigmoidblcie;
|
||||
Gtk::Box* autocomprHBox;
|
||||
Gtk::ToggleButton* const comprcieauto;
|
||||
Gtk::CheckButton* const normcie;
|
||||
Gtk::Box* const modeHBoxbwev;
|
||||
MyComboBoxText* const bwevMethod;
|
||||
|
||||
Gtk::Frame* const logcieFrame;
|
||||
Gtk::CheckButton* const logcie;
|
||||
ToolParamBlock* const comprBox;
|
||||
@ -1785,8 +1831,13 @@ private:
|
||||
Adjuster* const slopjcie;
|
||||
Adjuster* const midtcie;
|
||||
Gtk::CheckButton* const smoothcie;
|
||||
Gtk::CheckButton* const smoothcielnk;
|
||||
Gtk::CheckButton* const smoothcietrc;
|
||||
Gtk::CheckButton* const smoothcietrcrel;
|
||||
Gtk::CheckButton* const smoothcieyb;
|
||||
Gtk::CheckButton* const smoothcielum;
|
||||
Gtk::CheckButton* const smoothciehigh;
|
||||
Adjuster* const smoothcieth;
|
||||
ToolParamBlock* const ciesmoothBox;
|
||||
Gtk::Box* smoothBox;
|
||||
MyComboBoxText* const smoothciemet;
|
||||
@ -1794,6 +1845,12 @@ private:
|
||||
Adjuster* const slopesmor;
|
||||
Adjuster* const slopesmog;
|
||||
Adjuster* const slopesmob;
|
||||
Adjuster* const kslopesmor;
|
||||
Adjuster* const kslopesmog;
|
||||
Adjuster* const kslopesmob;
|
||||
Adjuster* const contsig;
|
||||
Adjuster* const skewsig;
|
||||
Adjuster* const whitsig;
|
||||
|
||||
Adjuster* const whitescie;
|
||||
Adjuster* const blackscie;
|
||||
@ -1827,10 +1884,18 @@ private:
|
||||
Gtk::Box* bwcieBox;
|
||||
Gtk::CheckButton* const bwcie;
|
||||
|
||||
Gtk::Frame* const sigmoidjzFrame12;
|
||||
Gtk::Frame* const sigmoidjzFrame;
|
||||
Gtk::Frame* const sigmoid2Frame12;
|
||||
Gtk::Frame* const sigmoid2Frame;
|
||||
Gtk::CheckButton* const sigcie;
|
||||
Gtk::CheckButton* const sigjz12;
|
||||
Adjuster* const sigmoidldajzcie12;
|
||||
Adjuster* const sigmoidthjzcie12;
|
||||
Adjuster* const sigmoidbljzcie12;
|
||||
|
||||
Gtk::CheckButton* const sigjz;
|
||||
Gtk::CheckButton* const forcebw;
|
||||
Adjuster* const sigmoidldajzcie;
|
||||
Adjuster* const sigmoidthjzcie;
|
||||
Adjuster* const sigmoidbljzcie;
|
||||
@ -1927,7 +1992,7 @@ private:
|
||||
ThresholdAdjuster* const csThresholdcie;
|
||||
int nextcomprciecount = 0;
|
||||
|
||||
sigc::connection AutograycieConn, primMethodconn, illMethodconn, smoothciemetconn, catMethodconn, forcejzConn, forcebwConn, qtojConn, showmaskcieMethodConn, enacieMaskConn, enacieMaskallConn, jabcieConn, sursourcieconn, surroundcieconn, modecieconn, modecamconn, comprcieautoconn, normcieconn, logcieconn, satcieconn, logcieqconn,smoothcieconn, smoothcieybconn,smoothcielumconn, logjzconn, sigjzconn, sigqconn, chjzcieconn, toneMethodcieConn, toneMethodcieConn2, toolcieConn, bwevMethodConn, fftcieMaskConn, gamutcieconn, bwcieconn, expprecamconn, sigcieconn;
|
||||
sigc::connection AutograycieConn, primMethodconn, illMethodconn, smoothciemetconn, catMethodconn, sigybjz12Conn, qtojConn, showmaskcieMethodConn, enacieMaskConn, enacieMaskallConn, jabcieConn, sursourcieconn, surroundcieconn, modecieconn, modecamconn, modeQJconn, comprcieautoconn, normcie12conn, normcieconn, logcieconn, satcieconn, logcieqconn, smoothcieconn, smoothcielnkconn, smoothciehighconn, smoothcietrcconn, smoothcietrcrelconn, smoothcieybconn,smoothcielumconn, logjzconn, sigjz12conn, forcebwconn, sigjzconn, sigq12conn, sigqconn, chjzcieconn, toneMethodcieConn, toneMethodcieConn2, toolcieConn, bwevMethod12Conn, bwevMethodConn,fftcieMaskConn, gamutcieconn, bwcieconn, expprecamconn, sigcieconn;
|
||||
sigc::connection previewcieConn, sigmoidqjcieconn;
|
||||
public:
|
||||
Locallabcie();
|
||||
@ -1962,13 +2027,18 @@ public:
|
||||
void surroundcieChanged();
|
||||
void modecieChanged();
|
||||
void modecamChanged();
|
||||
void modeQJChanged();
|
||||
void qjmodall();
|
||||
void qjmodjz();
|
||||
void qjmodcam();
|
||||
void curveChanged(CurveEditor* ce) override;
|
||||
void toneMethodcieChanged();
|
||||
void toneMethodcie2Changed();
|
||||
void bwevMethod12Changed();
|
||||
void bwevMethodChanged();
|
||||
void updateAutocompute(const float blackev, const float whiteev, const float sourceg, const float sourceab, const float targetg, const float jz1);
|
||||
void updatePrimloc(const float redx, const float redy, const float grex, const float grey, const float blux, const float bluy);
|
||||
void updateiPrimloc(const float r_x, const float r_y, const float g_x, const float g_y, const float b_x, const float b_y, const float w_x, const float w_y, const float m_x, const float m_y, const float me_x, const float me_y, const int pri_);
|
||||
void updateiPrimloc(const float r_x, const float r_y, const float g_x, const float g_y, const float b_x, const float b_y, const float w_x, const float w_y, const float m_x, const float m_y, const float me_x, const float me_y, const int pri_, const float slg, const bool lkg);
|
||||
void updatesigloc(const float cont_sig, const float light_sig);
|
||||
|
||||
private:
|
||||
@ -1978,11 +2048,11 @@ private:
|
||||
void updateGUIToMode(const modeType new_type) override;
|
||||
void complexityModeChanged();
|
||||
void AutograycieChanged();
|
||||
void forcejzChanged();
|
||||
void forcebwChanged();
|
||||
void sigybjz12Changed();
|
||||
void qtojChanged();
|
||||
void jabcieChanged();
|
||||
void comprcieautoChanged();
|
||||
void normcie12Changed();
|
||||
void normcieChanged();
|
||||
void gamutcieChanged();
|
||||
void bwcieChanged();
|
||||
@ -1994,14 +2064,22 @@ private:
|
||||
void satcieChanged();
|
||||
void logcieqChanged();
|
||||
void smoothcieChanged();
|
||||
void smoothcielnkChanged();
|
||||
void smoothciehighChanged();
|
||||
void smoothcietrcChanged();
|
||||
void smoothcietrcrelChanged();
|
||||
void smoothcieybChanged();
|
||||
void smoothcielumChanged();
|
||||
void sigcieChanged();
|
||||
void logjzChanged();
|
||||
void sigjz12Changed();
|
||||
void sigjzChanged();
|
||||
void forcebwChanged();
|
||||
void sigq12Changed();
|
||||
void sigqChanged();
|
||||
void chjzcieChanged();
|
||||
void updatecieGUI();
|
||||
void updatecielnkGUI();
|
||||
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
|
||||
void showmaskcieMethodChanged();
|
||||
void enacieMaskChanged();
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -197,6 +197,10 @@ void Options::updatePaths()
|
||||
lastToneCurvesDir = preferredPath;
|
||||
}
|
||||
|
||||
if (lastIcmCurvesDir.empty() || !Glib::file_test(lastIcmCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastIcmCurvesDir, Glib::FILE_TEST_IS_DIR)) {
|
||||
lastIcmCurvesDir = preferredPath;
|
||||
}
|
||||
|
||||
if (lastProfilingReferenceDir.empty() || !Glib::file_test(lastProfilingReferenceDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastProfilingReferenceDir, Glib::FILE_TEST_IS_DIR)) {
|
||||
lastProfilingReferenceDir = preferredPath;
|
||||
}
|
||||
@ -691,6 +695,7 @@ void Options::setDefaults()
|
||||
lastPFCurvesDir = "";
|
||||
lastHsvCurvesDir = "";
|
||||
lastToneCurvesDir = "";
|
||||
lastIcmCurvesDir = "";
|
||||
lastVibranceCurvesDir = "";
|
||||
lastProfilingReferenceDir = "";
|
||||
lastBWCurvesDir = "";
|
||||
@ -2315,6 +2320,7 @@ void Options::readFromFile(Glib::ustring fname)
|
||||
safeDirGet(keyFile, "Dialogs", "LastBWCurvesDir", lastBWCurvesDir);
|
||||
|
||||
safeDirGet(keyFile, "Dialogs", "LastToneCurvesDir", lastToneCurvesDir);
|
||||
safeDirGet(keyFile, "Dialogs", "LastIcmCurvesDir", lastIcmCurvesDir);
|
||||
safeDirGet(keyFile, "Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir);
|
||||
safeDirGet(keyFile, "Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir);
|
||||
safeDirGet(keyFile, "Dialogs", "LastLensProfileDir", lastLensProfileDir);
|
||||
@ -2811,6 +2817,7 @@ void Options::saveToFile(Glib::ustring fname)
|
||||
keyFile.set_string("Dialogs", "LastHsvCurvesDir", lastHsvCurvesDir);
|
||||
keyFile.set_string("Dialogs", "LastBWCurvesDir", lastBWCurvesDir);
|
||||
keyFile.set_string("Dialogs", "LastToneCurvesDir", lastToneCurvesDir);
|
||||
keyFile.set_string("Dialogs", "LastIcmCurvesDir", lastIcmCurvesDir);
|
||||
keyFile.set_string("Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir);
|
||||
keyFile.set_string("Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir);
|
||||
keyFile.set_string("Dialogs", "LastLensProfileDir", lastLensProfileDir);
|
||||
|
@ -486,6 +486,7 @@ public:
|
||||
Glib::ustring lastRetinexDir;
|
||||
Glib::ustring lastDenoiseCurvesDir;
|
||||
Glib::ustring lastWaveletCurvesDir;
|
||||
Glib::ustring lastIcmCurvesDir;
|
||||
Glib::ustring lastlocalCurvesDir;
|
||||
Glib::ustring lastPFCurvesDir;
|
||||
Glib::ustring lastHsvCurvesDir;
|
||||
|
@ -600,9 +600,14 @@ void ParamsEdited::set(bool v)
|
||||
icm.outputProfile = v;
|
||||
icm.outputIntent = v;
|
||||
icm.outputBPC = v;
|
||||
icm.workingTRCGamma = v;
|
||||
icm.workingTRCSlope = v;
|
||||
icm.wGamma = v;
|
||||
icm.wSlope = v;
|
||||
icm.wmidtcie = v;
|
||||
icm.sigmatrc = v;
|
||||
icm.offstrc = v;
|
||||
icm.residtrc = v;
|
||||
icm.pyrwavtrc = v;
|
||||
icm.opacityCurveWLI = v;
|
||||
icm.wsmoothcie = v;
|
||||
icm.redx = v;
|
||||
icm.redy = v;
|
||||
@ -616,6 +621,7 @@ void ParamsEdited::set(bool v)
|
||||
icm.preser = v;
|
||||
icm.fbw = v;
|
||||
icm.trcExp = v;
|
||||
icm.wavExp = v;
|
||||
icm.gamut = v;
|
||||
icm.labgridcieALow = v;
|
||||
icm.labgridcieBLow = v;
|
||||
@ -1365,7 +1371,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).llcurve = locallab.spots.at(j).llcurve && pSpot.llcurve == otherSpot.llcurve;
|
||||
locallab.spots.at(j).lccurve = locallab.spots.at(j).lccurve && pSpot.lccurve == otherSpot.lccurve;
|
||||
locallab.spots.at(j).cccurve = locallab.spots.at(j).cccurve && pSpot.cccurve == otherSpot.cccurve;
|
||||
locallab.spots.at(j).clcurve = locallab.spots.at(j).clcurve && pSpot.cccurve == otherSpot.clcurve;
|
||||
locallab.spots.at(j).clcurve = locallab.spots.at(j).clcurve && pSpot.clcurve == otherSpot.clcurve;
|
||||
locallab.spots.at(j).rgbcurve = locallab.spots.at(j).rgbcurve && pSpot.rgbcurve == otherSpot.rgbcurve;
|
||||
locallab.spots.at(j).LHcurve = locallab.spots.at(j).LHcurve && pSpot.LHcurve == otherSpot.LHcurve;
|
||||
locallab.spots.at(j).HHcurve = locallab.spots.at(j).HHcurve && pSpot.HHcurve == otherSpot.HHcurve;
|
||||
@ -1702,6 +1708,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).lcdarkness = locallab.spots.at(j).lcdarkness && pSpot.lcdarkness == otherSpot.lcdarkness;
|
||||
locallab.spots.at(j).lclightness = locallab.spots.at(j).lclightness && pSpot.lclightness == otherSpot.lclightness;
|
||||
locallab.spots.at(j).sigmalc = locallab.spots.at(j).sigmalc && pSpot.sigmalc == otherSpot.sigmalc;
|
||||
locallab.spots.at(j).offslc = locallab.spots.at(j).offslc && pSpot.offslc == otherSpot.offslc;
|
||||
locallab.spots.at(j).levelwav = locallab.spots.at(j).levelwav && pSpot.levelwav == otherSpot.levelwav;
|
||||
locallab.spots.at(j).residcont = locallab.spots.at(j).residcont && pSpot.residcont == otherSpot.residcont;
|
||||
locallab.spots.at(j).residsha = locallab.spots.at(j).residsha && pSpot.residsha == otherSpot.residsha;
|
||||
@ -1753,6 +1760,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).wavgradl = locallab.spots.at(j).wavgradl && pSpot.wavgradl == otherSpot.wavgradl;
|
||||
locallab.spots.at(j).wavcompre = locallab.spots.at(j).wavcompre && pSpot.wavcompre == otherSpot.wavcompre;
|
||||
locallab.spots.at(j).origlc = locallab.spots.at(j).origlc && pSpot.origlc == otherSpot.origlc;
|
||||
locallab.spots.at(j).processwav = locallab.spots.at(j).processwav && pSpot.processwav == otherSpot.processwav;
|
||||
locallab.spots.at(j).localcontMethod = locallab.spots.at(j).localcontMethod && pSpot.localcontMethod == otherSpot.localcontMethod;
|
||||
locallab.spots.at(j).localedgMethod = locallab.spots.at(j).localedgMethod && pSpot.localedgMethod == otherSpot.localedgMethod;
|
||||
locallab.spots.at(j).localneiMethod = locallab.spots.at(j).localneiMethod && pSpot.localneiMethod == otherSpot.localneiMethod;
|
||||
@ -1896,11 +1904,11 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).reparcie = locallab.spots.at(j).reparcie && pSpot.reparcie == otherSpot.reparcie;
|
||||
locallab.spots.at(j).sensicie = locallab.spots.at(j).sensicie && pSpot.sensicie == otherSpot.sensicie;
|
||||
locallab.spots.at(j).Autograycie = locallab.spots.at(j).Autograycie && pSpot.Autograycie == otherSpot.Autograycie;
|
||||
locallab.spots.at(j).forcejz = locallab.spots.at(j).forcejz && pSpot.forcejz == otherSpot.forcejz;
|
||||
locallab.spots.at(j).forcebw = locallab.spots.at(j).forcebw && pSpot.forcebw == otherSpot.forcebw;
|
||||
locallab.spots.at(j).sigybjz12 = locallab.spots.at(j).sigybjz12 && pSpot.sigybjz12 == otherSpot.sigybjz12;
|
||||
locallab.spots.at(j).qtoj = locallab.spots.at(j).qtoj && pSpot.qtoj == otherSpot.qtoj;
|
||||
locallab.spots.at(j).jabcie = locallab.spots.at(j).jabcie && pSpot.jabcie == otherSpot.jabcie;
|
||||
locallab.spots.at(j).comprcieauto = locallab.spots.at(j).comprcieauto && pSpot.comprcieauto == otherSpot.comprcieauto;
|
||||
locallab.spots.at(j).normcie12 = locallab.spots.at(j).normcie12 && pSpot.normcie12 == otherSpot.normcie12;
|
||||
locallab.spots.at(j).normcie = locallab.spots.at(j).normcie && pSpot.normcie == otherSpot.normcie;
|
||||
locallab.spots.at(j).gamutcie = locallab.spots.at(j).gamutcie && pSpot.gamutcie == otherSpot.gamutcie;
|
||||
locallab.spots.at(j).bwcie = locallab.spots.at(j).bwcie && pSpot.bwcie == otherSpot.bwcie;
|
||||
@ -1909,16 +1917,25 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).satcie = locallab.spots.at(j).satcie && pSpot.satcie == otherSpot.satcie;
|
||||
locallab.spots.at(j).logcieq = locallab.spots.at(j).logcieq && pSpot.logcieq == otherSpot.logcieq;
|
||||
locallab.spots.at(j).smoothcie = locallab.spots.at(j).smoothcie && pSpot.smoothcie == otherSpot.smoothcie;
|
||||
locallab.spots.at(j).smoothcietrc = locallab.spots.at(j).smoothcietrc && pSpot.smoothcietrc == otherSpot.smoothcietrc;
|
||||
locallab.spots.at(j).smoothcietrcrel = locallab.spots.at(j).smoothcietrcrel && pSpot.smoothcietrcrel == otherSpot.smoothcietrcrel;
|
||||
locallab.spots.at(j).smoothcieyb = locallab.spots.at(j).smoothcieyb && pSpot.smoothcieyb == otherSpot.smoothcieyb;
|
||||
locallab.spots.at(j).smoothcielum = locallab.spots.at(j).smoothcielum && pSpot.smoothcielum == otherSpot.smoothcielum;
|
||||
locallab.spots.at(j).smoothciehigh = locallab.spots.at(j).smoothciehigh && pSpot.smoothciehigh == otherSpot.smoothciehigh;
|
||||
locallab.spots.at(j).smoothcielnk = locallab.spots.at(j).smoothcielnk && pSpot.smoothcielnk == otherSpot.smoothcielnk;
|
||||
locallab.spots.at(j).logjz = locallab.spots.at(j).logjz && pSpot.logjz == otherSpot.logjz;
|
||||
locallab.spots.at(j).sigjz12 = locallab.spots.at(j).sigjz12 && pSpot.sigjz12 == otherSpot.sigjz12;
|
||||
locallab.spots.at(j).sigjz = locallab.spots.at(j).sigjz && pSpot.sigjz == otherSpot.sigjz;
|
||||
locallab.spots.at(j).forcebw = locallab.spots.at(j).forcebw && pSpot.forcebw == otherSpot.forcebw;
|
||||
locallab.spots.at(j).sigq12 = locallab.spots.at(j).sigq12 && pSpot.sigq12 == otherSpot.sigq12;
|
||||
locallab.spots.at(j).sigq = locallab.spots.at(j).sigq && pSpot.sigq == otherSpot.sigq;
|
||||
locallab.spots.at(j).chjzcie = locallab.spots.at(j).chjzcie && pSpot.chjzcie == otherSpot.chjzcie;
|
||||
locallab.spots.at(j).sourceGraycie = locallab.spots.at(j).sourceGraycie && pSpot.sourceGraycie == otherSpot.sourceGraycie;
|
||||
locallab.spots.at(j).sourceabscie = locallab.spots.at(j).sourceabscie && pSpot.sourceabscie == otherSpot.sourceabscie;
|
||||
locallab.spots.at(j).sursourcie = locallab.spots.at(j).sursourcie && pSpot.sursourcie == otherSpot.sursourcie;
|
||||
locallab.spots.at(j).modecam = locallab.spots.at(j).modecam && pSpot.modecam == otherSpot.modecam;
|
||||
locallab.spots.at(j).modeQJ = locallab.spots.at(j).modeQJ && pSpot.modeQJ == otherSpot.modeQJ;
|
||||
locallab.spots.at(j).bwevMethod12 = locallab.spots.at(j).bwevMethod12 && pSpot.bwevMethod12 == otherSpot.bwevMethod12;
|
||||
locallab.spots.at(j).bwevMethod = locallab.spots.at(j).bwevMethod && pSpot.bwevMethod == otherSpot.bwevMethod;
|
||||
locallab.spots.at(j).modecie = locallab.spots.at(j).modecie && pSpot.modecie == otherSpot.modecie;
|
||||
locallab.spots.at(j).saturlcie = locallab.spots.at(j).saturlcie && pSpot.saturlcie == otherSpot.saturlcie;
|
||||
@ -1961,19 +1978,33 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).blackEvjz = locallab.spots.at(j).blackEvjz && pSpot.blackEvjz == otherSpot.blackEvjz;
|
||||
locallab.spots.at(j).whiteEvjz = locallab.spots.at(j).whiteEvjz && pSpot.whiteEvjz == otherSpot.whiteEvjz;
|
||||
locallab.spots.at(j).targetjz = locallab.spots.at(j).targetjz && pSpot.targetjz == otherSpot.targetjz;
|
||||
locallab.spots.at(j).sigmoidldacie12 = locallab.spots.at(j).sigmoidldacie12 && pSpot.sigmoidldacie12 == otherSpot.sigmoidldacie12;
|
||||
locallab.spots.at(j).sigmoidthcie12 = locallab.spots.at(j).sigmoidthcie12 && pSpot.sigmoidthcie12 == otherSpot.sigmoidthcie12;
|
||||
locallab.spots.at(j).sigmoidblcie12 = locallab.spots.at(j).sigmoidblcie12 && pSpot.sigmoidblcie12 == otherSpot.sigmoidblcie12;
|
||||
|
||||
locallab.spots.at(j).sigmoidldacie = locallab.spots.at(j).sigmoidldacie && pSpot.sigmoidldacie == otherSpot.sigmoidldacie;
|
||||
locallab.spots.at(j).sigmoidthcie = locallab.spots.at(j).sigmoidthcie && pSpot.sigmoidthcie == otherSpot.sigmoidthcie;
|
||||
locallab.spots.at(j).sigmoidsenscie = locallab.spots.at(j).sigmoidsenscie && pSpot.sigmoidsenscie == otherSpot.sigmoidsenscie;
|
||||
locallab.spots.at(j).sigmoidblcie = locallab.spots.at(j).sigmoidblcie && pSpot.sigmoidblcie == otherSpot.sigmoidblcie;
|
||||
|
||||
locallab.spots.at(j).comprcie = locallab.spots.at(j).comprcie && pSpot.comprcie == otherSpot.comprcie;
|
||||
locallab.spots.at(j).strcielog = locallab.spots.at(j).strcielog && pSpot.strcielog == otherSpot.strcielog;
|
||||
locallab.spots.at(j).comprcieth = locallab.spots.at(j).comprcieth && pSpot.comprcieth == otherSpot.comprcieth;
|
||||
locallab.spots.at(j).gamjcie = locallab.spots.at(j).gamjcie && pSpot.gamjcie == otherSpot.gamjcie;
|
||||
locallab.spots.at(j).smoothcieth = locallab.spots.at(j).smoothcieth && pSpot.smoothcieth == otherSpot.smoothcieth;
|
||||
locallab.spots.at(j).slopjcie = locallab.spots.at(j).slopjcie && pSpot.slopjcie == otherSpot.slopjcie;
|
||||
locallab.spots.at(j).slopesmo = locallab.spots.at(j).slopesmo && pSpot.slopesmo == otherSpot.slopesmo;
|
||||
locallab.spots.at(j).slopesmoq = locallab.spots.at(j).slopesmoq && pSpot.slopesmoq == otherSpot.slopesmoq;
|
||||
locallab.spots.at(j).slopesmor = locallab.spots.at(j).slopesmor && pSpot.slopesmor == otherSpot.slopesmor;
|
||||
locallab.spots.at(j).slopesmog = locallab.spots.at(j).slopesmog && pSpot.slopesmog == otherSpot.slopesmog;
|
||||
locallab.spots.at(j).slopesmob = locallab.spots.at(j).slopesmob && pSpot.slopesmob == otherSpot.slopesmob;
|
||||
locallab.spots.at(j).contsig = locallab.spots.at(j).contsig && pSpot.contsig == otherSpot.contsig;
|
||||
locallab.spots.at(j).skewsig = locallab.spots.at(j).skewsig && pSpot.skewsig == otherSpot.skewsig;
|
||||
locallab.spots.at(j).whitsig = locallab.spots.at(j).whitsig && pSpot.whitsig == otherSpot.whitsig;
|
||||
|
||||
locallab.spots.at(j).kslopesmor = locallab.spots.at(j).kslopesmor && pSpot.kslopesmor == otherSpot.kslopesmor;
|
||||
locallab.spots.at(j).kslopesmog = locallab.spots.at(j).kslopesmog && pSpot.kslopesmog == otherSpot.kslopesmog;
|
||||
locallab.spots.at(j).kslopesmob = locallab.spots.at(j).kslopesmob && pSpot.kslopesmob == otherSpot.kslopesmob;
|
||||
locallab.spots.at(j).midtcie = locallab.spots.at(j).midtcie && pSpot.midtcie == otherSpot.midtcie;
|
||||
locallab.spots.at(j).grexl = locallab.spots.at(j).grexl && pSpot.grexl == otherSpot.grexl;
|
||||
locallab.spots.at(j).greyl = locallab.spots.at(j).greyl && pSpot.greyl == otherSpot.greyl;
|
||||
@ -2001,9 +2032,14 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).smoothciemet = locallab.spots.at(j).smoothciemet && pSpot.smoothciemet == otherSpot.smoothciemet;
|
||||
locallab.spots.at(j).primMethod = locallab.spots.at(j).primMethod && pSpot.primMethod == otherSpot.primMethod;
|
||||
locallab.spots.at(j).catMethod = locallab.spots.at(j).catMethod && pSpot.catMethod == otherSpot.catMethod;
|
||||
locallab.spots.at(j).sigmoidldajzcie12 = locallab.spots.at(j).sigmoidldajzcie12 && pSpot.sigmoidldajzcie12 == otherSpot.sigmoidldajzcie12;
|
||||
locallab.spots.at(j).sigmoidthjzcie12 = locallab.spots.at(j).sigmoidthjzcie12 && pSpot.sigmoidthjzcie12 == otherSpot.sigmoidthjzcie12;
|
||||
locallab.spots.at(j).sigmoidbljzcie12 = locallab.spots.at(j).sigmoidbljzcie12 && pSpot.sigmoidbljzcie12 == otherSpot.sigmoidbljzcie12;
|
||||
|
||||
locallab.spots.at(j).sigmoidldajzcie = locallab.spots.at(j).sigmoidldajzcie && pSpot.sigmoidldajzcie == otherSpot.sigmoidldajzcie;
|
||||
locallab.spots.at(j).sigmoidthjzcie = locallab.spots.at(j).sigmoidthjzcie && pSpot.sigmoidthjzcie == otherSpot.sigmoidthjzcie;
|
||||
locallab.spots.at(j).sigmoidbljzcie = locallab.spots.at(j).sigmoidbljzcie && pSpot.sigmoidbljzcie == otherSpot.sigmoidbljzcie;
|
||||
|
||||
locallab.spots.at(j).contqcie = locallab.spots.at(j).contqcie && pSpot.contqcie == otherSpot.contqcie;
|
||||
locallab.spots.at(j).contsigqcie = locallab.spots.at(j).contsigqcie && pSpot.contsigqcie == otherSpot.contsigqcie;
|
||||
locallab.spots.at(j).colorflcie = locallab.spots.at(j).colorflcie && pSpot.colorflcie == otherSpot.colorflcie;
|
||||
@ -2129,9 +2165,14 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
icm.outputProfile = icm.outputProfile && p.icm.outputProfile == other.icm.outputProfile;
|
||||
icm.outputIntent = icm.outputIntent && p.icm.outputIntent == other.icm.outputIntent;
|
||||
icm.outputBPC = icm.outputBPC && p.icm.outputBPC == other.icm.outputBPC ;
|
||||
icm.workingTRCGamma = icm.workingTRCGamma && p.icm.workingTRCGamma == other.icm.workingTRCGamma;
|
||||
icm.workingTRCSlope = icm.workingTRCSlope && p.icm.workingTRCSlope == other.icm.workingTRCSlope;
|
||||
icm.wGamma = icm.wGamma && p.icm.wGamma == other.icm.wGamma;
|
||||
icm.wSlope = icm.wSlope && p.icm.wSlope == other.icm.wSlope;
|
||||
icm.wmidtcie = icm.wmidtcie && p.icm.wmidtcie == other.icm.wmidtcie;
|
||||
icm.sigmatrc = icm.sigmatrc && p.icm.sigmatrc == other.icm.sigmatrc;
|
||||
icm.offstrc = icm.offstrc && p.icm.offstrc == other.icm.offstrc;
|
||||
icm.residtrc = icm.residtrc && p.icm.residtrc == other.icm.residtrc;
|
||||
icm.pyrwavtrc = icm.pyrwavtrc && p.icm.pyrwavtrc == other.icm.pyrwavtrc;
|
||||
icm.opacityCurveWLI = icm.opacityCurveWLI && p.icm.opacityCurveWLI == other.icm.opacityCurveWLI;
|
||||
icm.wsmoothcie = icm.wsmoothcie && p.icm.wsmoothcie == other.icm.wsmoothcie;
|
||||
icm.redx = icm.redx && p.icm.redx == other.icm.redx;
|
||||
icm.redy = icm.redy && p.icm.redy == other.icm.redy;
|
||||
@ -2155,6 +2196,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
icm.preser = icm.preser && p.icm.preser == other.icm.preser;
|
||||
icm.fbw = icm.fbw && p.icm.fbw == other.icm.fbw;
|
||||
icm.trcExp = icm.trcExp && p.icm.trcExp == other.icm.trcExp;
|
||||
icm.wavExp = icm.wavExp && p.icm.wavExp == other.icm.wavExp;
|
||||
icm.gamut = icm.gamut && p.icm.gamut == other.icm.gamut;
|
||||
icm.aRendIntent = icm.aRendIntent && p.icm.aRendIntent == other.icm.aRendIntent;
|
||||
icm.workingTRC = icm.workingTRC && p.icm.workingTRC == other.icm.workingTRC;
|
||||
@ -5449,6 +5491,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).sigmalc = mods.locallab.spots.at(i).sigmalc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).offslc) {
|
||||
toEdit.locallab.spots.at(i).offslc = mods.locallab.spots.at(i).offslc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).levelwav) {
|
||||
toEdit.locallab.spots.at(i).levelwav = mods.locallab.spots.at(i).levelwav;
|
||||
}
|
||||
@ -5654,6 +5700,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).origlc = mods.locallab.spots.at(i).origlc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).processwav) {
|
||||
toEdit.locallab.spots.at(i).processwav = mods.locallab.spots.at(i).processwav;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).localcontMethod) {
|
||||
toEdit.locallab.spots.at(i).localcontMethod = mods.locallab.spots.at(i).localcontMethod;
|
||||
}
|
||||
@ -6188,12 +6238,8 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).Autograycie = mods.locallab.spots.at(i).Autograycie;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).forcejz) {
|
||||
toEdit.locallab.spots.at(i).forcejz = mods.locallab.spots.at(i).forcejz;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).forcebw) {
|
||||
toEdit.locallab.spots.at(i).forcebw = mods.locallab.spots.at(i).forcebw;
|
||||
if (locallab.spots.at(i).sigybjz12) {
|
||||
toEdit.locallab.spots.at(i).sigybjz12 = mods.locallab.spots.at(i).sigybjz12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).qtoj) {
|
||||
@ -6208,6 +6254,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).comprcieauto = mods.locallab.spots.at(i).comprcieauto;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).normcie12) {
|
||||
toEdit.locallab.spots.at(i).normcie12 = mods.locallab.spots.at(i).normcie12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).normcie) {
|
||||
toEdit.locallab.spots.at(i).normcie = mods.locallab.spots.at(i).normcie;
|
||||
}
|
||||
@ -6240,6 +6290,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).smoothcie = mods.locallab.spots.at(i).smoothcie;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).smoothcietrc) {
|
||||
toEdit.locallab.spots.at(i).smoothcietrc = mods.locallab.spots.at(i).smoothcietrc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).smoothcietrcrel) {
|
||||
toEdit.locallab.spots.at(i).smoothcietrcrel = mods.locallab.spots.at(i).smoothcietrcrel;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).smoothcieyb) {
|
||||
toEdit.locallab.spots.at(i).smoothcieyb = mods.locallab.spots.at(i).smoothcieyb;
|
||||
}
|
||||
@ -6248,14 +6306,34 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).smoothcielum = mods.locallab.spots.at(i).smoothcielum;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).smoothciehigh) {
|
||||
toEdit.locallab.spots.at(i).smoothciehigh = mods.locallab.spots.at(i).smoothciehigh;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).smoothcielnk) {
|
||||
toEdit.locallab.spots.at(i).smoothcielnk = mods.locallab.spots.at(i).smoothcielnk;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).logjz) {
|
||||
toEdit.locallab.spots.at(i).logjz = mods.locallab.spots.at(i).logjz;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigjz12) {
|
||||
toEdit.locallab.spots.at(i).sigjz12 = mods.locallab.spots.at(i).sigjz12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigjz) {
|
||||
toEdit.locallab.spots.at(i).sigjz = mods.locallab.spots.at(i).sigjz;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).forcebw) {
|
||||
toEdit.locallab.spots.at(i).forcebw = mods.locallab.spots.at(i).forcebw;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigq12) {
|
||||
toEdit.locallab.spots.at(i).sigq12 = mods.locallab.spots.at(i).sigq12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigq) {
|
||||
toEdit.locallab.spots.at(i).sigq = mods.locallab.spots.at(i).sigq;
|
||||
}
|
||||
@ -6280,6 +6358,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).modecam = mods.locallab.spots.at(i).modecam;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).modeQJ) {
|
||||
toEdit.locallab.spots.at(i).modeQJ = mods.locallab.spots.at(i).modeQJ;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).bwevMethod12) {
|
||||
toEdit.locallab.spots.at(i).bwevMethod12 = mods.locallab.spots.at(i).bwevMethod12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).bwevMethod) {
|
||||
toEdit.locallab.spots.at(i).bwevMethod = mods.locallab.spots.at(i).bwevMethod;
|
||||
}
|
||||
@ -6444,6 +6530,19 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).targetjz = mods.locallab.spots.at(i).targetjz;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigmoidldacie12) {
|
||||
toEdit.locallab.spots.at(i).sigmoidldacie12 = mods.locallab.spots.at(i).sigmoidldacie12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigmoidthcie12) {
|
||||
toEdit.locallab.spots.at(i).sigmoidthcie12 = mods.locallab.spots.at(i).sigmoidthcie12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigmoidblcie12) {
|
||||
toEdit.locallab.spots.at(i).sigmoidblcie12 = mods.locallab.spots.at(i).sigmoidblcie12;
|
||||
}
|
||||
|
||||
|
||||
if (locallab.spots.at(i).sigmoidldacie) {
|
||||
toEdit.locallab.spots.at(i).sigmoidldacie = mods.locallab.spots.at(i).sigmoidldacie;
|
||||
}
|
||||
@ -6476,14 +6575,34 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).gamjcie = mods.locallab.spots.at(i).gamjcie;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).smoothcieth) {
|
||||
toEdit.locallab.spots.at(i).smoothcieth = mods.locallab.spots.at(i).smoothcieth;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).slopjcie) {
|
||||
toEdit.locallab.spots.at(i).slopjcie = mods.locallab.spots.at(i).slopjcie;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).contsig) {
|
||||
toEdit.locallab.spots.at(i).contsig = mods.locallab.spots.at(i).contsig;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).skewsig) {
|
||||
toEdit.locallab.spots.at(i).skewsig = mods.locallab.spots.at(i).skewsig;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).whitsig) {
|
||||
toEdit.locallab.spots.at(i).whitsig = mods.locallab.spots.at(i).whitsig;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).slopesmo) {
|
||||
toEdit.locallab.spots.at(i).slopesmo = mods.locallab.spots.at(i).slopesmo;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).slopesmoq) {
|
||||
toEdit.locallab.spots.at(i).slopesmoq = mods.locallab.spots.at(i).slopesmoq;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).slopesmor) {
|
||||
toEdit.locallab.spots.at(i).slopesmor = mods.locallab.spots.at(i).slopesmor;
|
||||
}
|
||||
@ -6496,6 +6615,18 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).slopesmob = mods.locallab.spots.at(i).slopesmob;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).kslopesmor) {
|
||||
toEdit.locallab.spots.at(i).kslopesmor = mods.locallab.spots.at(i).kslopesmor;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).kslopesmog) {
|
||||
toEdit.locallab.spots.at(i).kslopesmog = mods.locallab.spots.at(i).kslopesmog;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).kslopesmob) {
|
||||
toEdit.locallab.spots.at(i).kslopesmob = mods.locallab.spots.at(i).kslopesmob;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).midtcie) {
|
||||
toEdit.locallab.spots.at(i).midtcie = mods.locallab.spots.at(i).midtcie;
|
||||
}
|
||||
@ -6600,6 +6731,18 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).catMethod = mods.locallab.spots.at(i).catMethod;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigmoidldajzcie12) {
|
||||
toEdit.locallab.spots.at(i).sigmoidldajzcie12 = mods.locallab.spots.at(i).sigmoidldajzcie12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigmoidthjzcie12) {
|
||||
toEdit.locallab.spots.at(i).sigmoidthjzcie12 = mods.locallab.spots.at(i).sigmoidthjzcie12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigmoidbljzcie12) {
|
||||
toEdit.locallab.spots.at(i).sigmoidbljzcie12 = mods.locallab.spots.at(i).sigmoidbljzcie12;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sigmoidldajzcie) {
|
||||
toEdit.locallab.spots.at(i).sigmoidldajzcie = mods.locallab.spots.at(i).sigmoidldajzcie;
|
||||
}
|
||||
@ -7030,18 +7173,38 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.icm.outputBPC = mods.icm.outputBPC;
|
||||
}
|
||||
|
||||
if (icm.workingTRCGamma) {
|
||||
toEdit.icm.workingTRCGamma = mods.icm.workingTRCGamma;
|
||||
if (icm.wGamma) {
|
||||
toEdit.icm.wGamma = mods.icm.wGamma;
|
||||
}
|
||||
|
||||
if (icm.workingTRCSlope) {
|
||||
toEdit.icm.workingTRCSlope = mods.icm.workingTRCSlope;
|
||||
if (icm.wSlope) {
|
||||
toEdit.icm.wSlope = mods.icm.wSlope;
|
||||
}
|
||||
|
||||
if (icm.wmidtcie) {
|
||||
toEdit.icm.wmidtcie = mods.icm.wmidtcie;
|
||||
}
|
||||
|
||||
if (icm.sigmatrc) {
|
||||
toEdit.icm.sigmatrc = mods.icm.sigmatrc;
|
||||
}
|
||||
|
||||
if (icm.offstrc) {
|
||||
toEdit.icm.offstrc = mods.icm.offstrc;
|
||||
}
|
||||
|
||||
if (icm.residtrc) {
|
||||
toEdit.icm.residtrc = mods.icm.residtrc;
|
||||
}
|
||||
|
||||
if (icm.pyrwavtrc) {
|
||||
toEdit.icm.pyrwavtrc = mods.icm.pyrwavtrc;
|
||||
}
|
||||
|
||||
if (icm.opacityCurveWLI) {
|
||||
toEdit.icm.opacityCurveWLI = mods.icm.opacityCurveWLI;
|
||||
}
|
||||
|
||||
if (icm.wsmoothcie) {
|
||||
toEdit.icm.wsmoothcie = mods.icm.wsmoothcie;
|
||||
}
|
||||
@ -7094,6 +7257,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.icm.trcExp = mods.icm.trcExp;
|
||||
}
|
||||
|
||||
if (icm.wavExp) {
|
||||
toEdit.icm.wavExp = mods.icm.wavExp;
|
||||
}
|
||||
|
||||
if (icm.gamut) {
|
||||
toEdit.icm.gamut = mods.icm.gamut;
|
||||
}
|
||||
@ -8558,6 +8725,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
lcdarkness(v),
|
||||
lclightness(v),
|
||||
sigmalc(v),
|
||||
offslc(v),
|
||||
levelwav(v),
|
||||
residcont(v),
|
||||
residsha(v),
|
||||
@ -8609,6 +8777,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
wavgradl(v),
|
||||
wavcompre(v),
|
||||
origlc(v),
|
||||
processwav(v),
|
||||
localcontMethod(v),
|
||||
localedgMethod(v),
|
||||
localneiMethod(v),
|
||||
@ -8745,11 +8914,11 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
reparcie(v),
|
||||
sensicie(v),
|
||||
Autograycie(v),
|
||||
forcejz(v),
|
||||
forcebw(v),
|
||||
sigybjz12(v),
|
||||
qtoj(v),
|
||||
jabcie(v),
|
||||
comprcieauto(v),
|
||||
normcie12(v),
|
||||
normcie(v),
|
||||
gamutcie(v),
|
||||
bwcie(v),
|
||||
@ -8758,16 +8927,25 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
satcie(v),
|
||||
logcieq(v),
|
||||
smoothcie(v),
|
||||
smoothcietrc(v),
|
||||
smoothcietrcrel(v),
|
||||
smoothcieyb(v),
|
||||
smoothcielum(v),
|
||||
smoothciehigh(v),
|
||||
smoothcielnk(v),
|
||||
logjz(v),
|
||||
sigjz12(v),
|
||||
sigjz(v),
|
||||
forcebw(v),
|
||||
sigq12(v),
|
||||
sigq(v),
|
||||
chjzcie(v),
|
||||
sourceGraycie(v),
|
||||
sourceabscie(v),
|
||||
sursourcie(v),
|
||||
modecam(v),
|
||||
modeQJ(v),
|
||||
bwevMethod12(v),
|
||||
bwevMethod(v),
|
||||
modecie(v),
|
||||
saturlcie(v),
|
||||
@ -8810,6 +8988,9 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
blackEvjz(v),
|
||||
whiteEvjz(v),
|
||||
targetjz(v),
|
||||
sigmoidldacie12(v),
|
||||
sigmoidthcie12(v),
|
||||
sigmoidblcie12(v),
|
||||
sigmoidldacie(v),
|
||||
sigmoidthcie(v),
|
||||
sigmoidsenscie(v),
|
||||
@ -8818,11 +8999,19 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
strcielog(v),
|
||||
comprcieth(v),
|
||||
gamjcie(v),
|
||||
smoothcieth(v),
|
||||
slopjcie(v),
|
||||
contsig(v),
|
||||
skewsig(v),
|
||||
whitsig(v),
|
||||
slopesmo(v),
|
||||
slopesmoq(v),
|
||||
slopesmor(v),
|
||||
slopesmog(v),
|
||||
slopesmob(v),
|
||||
kslopesmor(v),
|
||||
kslopesmog(v),
|
||||
kslopesmob(v),
|
||||
midtcie(v),
|
||||
redxl(v),
|
||||
redyl(v),
|
||||
@ -8849,6 +9038,9 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
smoothciemet(v),
|
||||
primMethod(v),
|
||||
catMethod(v),
|
||||
sigmoidldajzcie12(v),
|
||||
sigmoidthjzcie12(v),
|
||||
sigmoidbljzcie12(v),
|
||||
sigmoidldajzcie(v),
|
||||
sigmoidthjzcie(v),
|
||||
sigmoidbljzcie(v),
|
||||
@ -9321,6 +9513,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
lcdarkness = v;
|
||||
lclightness = v;
|
||||
sigmalc = v;
|
||||
offslc = v;
|
||||
levelwav = v;
|
||||
residcont = v;
|
||||
residsha = v;
|
||||
@ -9372,6 +9565,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
wavgradl = v;
|
||||
wavcompre = v;
|
||||
origlc = v;
|
||||
processwav = v;
|
||||
localcontMethod = v;
|
||||
localedgMethod = v;
|
||||
localneiMethod = v;
|
||||
@ -9512,11 +9706,11 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
reparcie = v;
|
||||
sensicie = v;
|
||||
Autograycie = v;
|
||||
forcejz = v;
|
||||
forcebw = v;
|
||||
sigybjz12 = v;
|
||||
qtoj = v;
|
||||
jabcie = v;
|
||||
comprcieauto = v;
|
||||
normcie12 = v;
|
||||
normcie = v;
|
||||
gamutcie = v;
|
||||
bwcie = v;
|
||||
@ -9525,16 +9719,25 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
satcie = v;
|
||||
logcieq = v;
|
||||
smoothcie = v;
|
||||
smoothcietrc = v;
|
||||
smoothcietrcrel = v;
|
||||
smoothcieyb = v;
|
||||
smoothcielum = v;
|
||||
smoothciehigh = v;
|
||||
smoothcielnk = v;
|
||||
logjz = v;
|
||||
sigjz12 = v;
|
||||
sigjz = v;
|
||||
forcebw = v;
|
||||
sigq12 = v;
|
||||
sigq = v;
|
||||
chjzcie = v;
|
||||
sourceGraycie = v;
|
||||
sourceabscie = v;
|
||||
sursourcie = v;
|
||||
modecam = v;
|
||||
modeQJ = v;
|
||||
bwevMethod12 = v;
|
||||
bwevMethod = v;
|
||||
modecie = v;
|
||||
saturlcie = v;
|
||||
@ -9577,6 +9780,10 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
blackEvjz = v;
|
||||
whiteEvjz = v;
|
||||
targetjz = v;
|
||||
sigmoidldacie12 = v;
|
||||
sigmoidthcie12 = v;
|
||||
sigmoidblcie12 = v;
|
||||
|
||||
sigmoidldacie = v;
|
||||
sigmoidthcie = v;
|
||||
sigmoidsenscie = v;
|
||||
@ -9585,11 +9792,19 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
strcielog = v;
|
||||
comprcieth = v;
|
||||
gamjcie = v;
|
||||
smoothcieth = v;
|
||||
slopjcie = v;
|
||||
contsig = v;
|
||||
skewsig = v;
|
||||
whitsig = v;
|
||||
slopesmo = v;
|
||||
slopesmoq = v;
|
||||
slopesmor = v;
|
||||
slopesmog = v;
|
||||
slopesmob = v;
|
||||
kslopesmor = v;
|
||||
kslopesmog = v;
|
||||
kslopesmob = v;
|
||||
midtcie = v;
|
||||
redxl = v;
|
||||
redyl = v;
|
||||
@ -9616,6 +9831,9 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
smoothciemet = v;
|
||||
primMethod = v;
|
||||
catMethod = v;
|
||||
sigmoidldajzcie12 = v;
|
||||
sigmoidthjzcie12 = v;
|
||||
sigmoidbljzcie12 = v;
|
||||
sigmoidldajzcie = v;
|
||||
sigmoidthjzcie = v;
|
||||
sigmoidbljzcie = v;
|
||||
|
@ -845,6 +845,7 @@ public:
|
||||
bool lcdarkness;
|
||||
bool lclightness;
|
||||
bool sigmalc;
|
||||
bool offslc;
|
||||
bool levelwav;
|
||||
bool residcont;
|
||||
bool residsha;
|
||||
@ -896,6 +897,7 @@ public:
|
||||
bool wavgradl;
|
||||
bool wavcompre;
|
||||
bool origlc;
|
||||
bool processwav;
|
||||
bool localcontMethod;
|
||||
bool localedgMethod;
|
||||
bool localneiMethod;
|
||||
@ -1032,11 +1034,11 @@ public:
|
||||
bool reparcie;
|
||||
bool sensicie;
|
||||
bool Autograycie;
|
||||
bool forcejz;
|
||||
bool forcebw;
|
||||
bool sigybjz12;
|
||||
bool qtoj;
|
||||
bool jabcie;
|
||||
bool comprcieauto;
|
||||
bool normcie12;
|
||||
bool normcie;
|
||||
bool gamutcie;
|
||||
bool bwcie;
|
||||
@ -1045,16 +1047,25 @@ public:
|
||||
bool satcie;
|
||||
bool logcieq;
|
||||
bool smoothcie;
|
||||
bool smoothcietrc;
|
||||
bool smoothcietrcrel;
|
||||
bool smoothcieyb;
|
||||
bool smoothcielum;
|
||||
bool smoothciehigh;
|
||||
bool smoothcielnk;
|
||||
bool logjz;
|
||||
bool sigjz12;
|
||||
bool sigjz;
|
||||
bool forcebw;
|
||||
bool sigq12;
|
||||
bool sigq;
|
||||
bool chjzcie;
|
||||
bool sourceGraycie;
|
||||
bool sourceabscie;
|
||||
bool sursourcie;
|
||||
bool modecam;
|
||||
bool modeQJ;
|
||||
bool bwevMethod12;
|
||||
bool bwevMethod;
|
||||
bool modecie;
|
||||
bool saturlcie;
|
||||
@ -1097,6 +1108,9 @@ public:
|
||||
bool blackEvjz;
|
||||
bool whiteEvjz;
|
||||
bool targetjz;
|
||||
bool sigmoidldacie12;
|
||||
bool sigmoidthcie12;
|
||||
bool sigmoidblcie12;
|
||||
bool sigmoidldacie;
|
||||
bool sigmoidthcie;
|
||||
bool sigmoidsenscie;
|
||||
@ -1105,11 +1119,19 @@ public:
|
||||
bool strcielog;
|
||||
bool comprcieth;
|
||||
bool gamjcie;
|
||||
bool smoothcieth;
|
||||
bool slopjcie;
|
||||
bool contsig;
|
||||
bool skewsig;
|
||||
bool whitsig;
|
||||
bool slopesmo;
|
||||
bool slopesmoq;
|
||||
bool slopesmor;
|
||||
bool slopesmog;
|
||||
bool slopesmob;
|
||||
bool kslopesmor;
|
||||
bool kslopesmog;
|
||||
bool kslopesmob;
|
||||
bool midtcie;
|
||||
bool redxl;
|
||||
bool redyl;
|
||||
@ -1136,9 +1158,14 @@ public:
|
||||
bool smoothciemet;
|
||||
bool primMethod;
|
||||
bool catMethod;
|
||||
bool sigmoidldajzcie12;
|
||||
bool sigmoidthjzcie12;
|
||||
bool sigmoidbljzcie12;
|
||||
|
||||
bool sigmoidldajzcie;
|
||||
bool sigmoidthjzcie;
|
||||
bool sigmoidbljzcie;
|
||||
|
||||
bool contqcie;
|
||||
bool contsigqcie;
|
||||
bool colorflcie;
|
||||
@ -1347,9 +1374,15 @@ struct ColorManagementParamsEdited {
|
||||
|
||||
bool workingProfile;
|
||||
bool workingTRC;
|
||||
bool workingTRCGamma;
|
||||
bool workingTRCSlope;
|
||||
bool wGamma;
|
||||
bool wSlope;
|
||||
bool wmidtcie;
|
||||
bool sigmatrc;
|
||||
bool offstrc;
|
||||
bool residtrc;
|
||||
bool pyrwavtrc;
|
||||
bool opacityCurveWLI;
|
||||
|
||||
bool wsmoothcie;
|
||||
bool will;
|
||||
bool wprim;
|
||||
@ -1366,6 +1399,7 @@ struct ColorManagementParamsEdited {
|
||||
bool preser;
|
||||
bool fbw;
|
||||
bool trcExp;
|
||||
bool wavExp;
|
||||
bool gamut;
|
||||
bool labgridcieALow;
|
||||
bool labgridcieBLow;
|
||||
|
@ -343,6 +343,7 @@ Wavelet::Wavelet() :
|
||||
daubcoeffmethod->append(M("TP_WAVELET_DAUB6"));
|
||||
daubcoeffmethod->append(M("TP_WAVELET_DAUB10"));
|
||||
daubcoeffmethod->append(M("TP_WAVELET_DAUB14"));
|
||||
daubcoeffmethod->append(M("TP_WAVELET_DAUB20"));
|
||||
daubcoeffmethodconn = daubcoeffmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::daubcoeffmethodChanged));
|
||||
daubcoeffmethod->set_tooltip_text(M("TP_WAVELET_DAUB_TOOLTIP"));
|
||||
Gtk::Label* const daubcoeffLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_DAUB") + ":"));
|
||||
@ -1609,6 +1610,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
daubcoeffmethod->set_active(3);
|
||||
} else if (pp->wavelet.daubcoeffmethod == "14_") {
|
||||
daubcoeffmethod->set_active(4);
|
||||
} else if (pp->wavelet.daubcoeffmethod == "20_") {
|
||||
daubcoeffmethod->set_active(5);
|
||||
}
|
||||
|
||||
//Dirmethod->set_active (3);
|
||||
@ -2546,6 +2549,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->wavelet.daubcoeffmethod = "10_";
|
||||
} else if (daubcoeffmethod->get_active_row_number() == 4) {
|
||||
pp->wavelet.daubcoeffmethod = "14_";
|
||||
} else if (daubcoeffmethod->get_active_row_number() == 5) {
|
||||
pp->wavelet.daubcoeffmethod = "20_";
|
||||
}
|
||||
|
||||
if (Dirmethod->get_active_row_number() == 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user