Merge with branch 'dev/newlocallab'...
This commit is contained in:
commit
8c90b560d7
@ -1358,6 +1358,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1442,6 +1443,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
|
||||
!MAIN_MSG_WRITEFAILED;Failed to write\n<b>"%1"</b>\n\nMake sure that the folder exists and that you have write permission to it.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
|
||||
@ -2132,6 +2135,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
|
||||
!TP_RGBCURVES_LUMAMODE_TOOLTIP;<b>Luminosity mode</b> allows to vary the contribution of R, G and B channels to the luminosity of the image, without altering image color.
|
||||
!TP_SAVEDIALOG_OK_TIP;Shortcut: <b>Ctrl-Enter</b>
|
||||
!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SOFTLIGHT_LABEL;Soft Light
|
||||
|
@ -1429,6 +1429,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1511,6 +1512,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
|
||||
!MAIN_MSG_WRITEFAILED;Failed to write\n<b>"%1"</b>\n\nMake sure that the folder exists and that you have write permission to it.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: <b>theme-based</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: <b>black</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: <b>white</b>\nShortcut: <b>9</b>
|
||||
@ -2102,6 +2105,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
|
||||
!TP_RETINEX_VIEW_TRAN;Transmission - Auto
|
||||
!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed
|
||||
!TP_RETINEX_VIEW_UNSHARP;Unsharp mask
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_LABEL;Microcontrast
|
||||
|
@ -1026,6 +1026,7 @@ TP_WBALANCE_TEMPERATURE;色溫
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1125,6 +1126,8 @@ TP_WBALANCE_TEMPERATURE;色溫
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2067,6 +2070,7 @@ TP_WBALANCE_TEMPERATURE;色溫
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -2344,3 +2344,11 @@ ZOOMPANEL_ZOOMFITSCREEN;Přizpůsobit celý obrázek obrazovce\nZkratka: <b>Alt<
|
||||
ZOOMPANEL_ZOOMIN;Přiblížit\nZkratka: <b>+</b>
|
||||
ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: <b>-</b>
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Untranslated keys follow; remove the ! prefix after an entry is translated.
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
|
@ -1021,6 +1021,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1121,6 +1122,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2065,6 +2068,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -2408,3 +2408,11 @@ ZOOMPANEL_ZOOMFITSCREEN;An Bildschirm anpassen.\nTaste: <b>Alt</b> + <b>f</b>
|
||||
ZOOMPANEL_ZOOMIN;Hineinzoomen\nTaste: <b>+</b>
|
||||
ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: <b>-</b>
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Untranslated keys follow; remove the ! prefix after an entry is translated.
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
|
@ -865,6 +865,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
|
||||
!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
|
||||
@ -1002,6 +1003,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE;Exposure
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_FILTER; Filter
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_IPTC;IPTC
|
||||
@ -2044,6 +2047,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_AMOUNT;Amount
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENING_EDRADIUS;Radius
|
||||
!TP_SHARPENING_EDTOLERANCE;Edge tolerance
|
||||
|
@ -776,6 +776,7 @@
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -915,6 +916,8 @@
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE;Exposure
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_FILTER; Filter
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_IPTC;IPTC
|
||||
@ -2034,6 +2037,7 @@
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_AMOUNT;Amount
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENING_EDRADIUS;Radius
|
||||
!TP_SHARPENING_EDTOLERANCE;Edge tolerance
|
||||
|
@ -2459,3 +2459,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: <b>-</b>
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
|
@ -1022,6 +1022,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1122,6 +1123,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2066,6 +2069,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -2333,3 +2333,11 @@ ZOOMPANEL_ZOOMFITSCREEN;Affiche l'image entière\nRaccourci: <b>Alt</b>-<b>f</b>
|
||||
ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: <b>+</b>
|
||||
ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: <b>-</b>
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Untranslated keys follow; remove the ! prefix after an entry is translated.
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
|
@ -1021,6 +1021,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1121,6 +1122,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2065,6 +2068,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -1022,6 +1022,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1122,6 +1123,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2066,6 +2069,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -1605,6 +1605,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1681,6 +1682,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
|
||||
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
|
||||
@ -2141,6 +2144,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
|
||||
!TP_RETINEX_VIEW_TRAN;Transmission - Auto
|
||||
!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed
|
||||
!TP_RETINEX_VIEW_UNSHARP;Unsharp mask
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SOFTLIGHT_LABEL;Soft Light
|
||||
|
@ -2337,3 +2337,11 @@ ZOOMPANEL_ZOOMFITSCREEN;画像全体を画面に合わせる\nショートカッ
|
||||
ZOOMPANEL_ZOOMIN;ズームイン\nショートカット: <b>+</b>
|
||||
ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: <b>-</b>
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Untranslated keys follow; remove the ! prefix after an entry is translated.
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
|
@ -1022,6 +1022,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1122,6 +1123,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2066,6 +2069,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -1291,6 +1291,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1375,6 +1376,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
|
||||
!MAIN_MSG_WRITEFAILED;Failed to write\n<b>"%1"</b>\n\nMake sure that the folder exists and that you have write permission to it.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: <b>theme-based</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: <b>black</b>\nShortcut: <b>9</b>
|
||||
@ -2124,6 +2127,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
|
||||
!TP_RGBCURVES_LUMAMODE_TOOLTIP;<b>Luminosity mode</b> allows to vary the contribution of R, G and B channels to the luminosity of the image, without altering image color.
|
||||
!TP_SAVEDIALOG_OK_TIP;Shortcut: <b>Ctrl-Enter</b>
|
||||
!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SOFTLIGHT_LABEL;Soft Light
|
||||
|
@ -2135,6 +2135,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -2185,6 +2186,8 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
|
||||
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
|
||||
!OPTIONS_BUNDLED_MISSING;The bundled profile "<b>%1</b>" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead.
|
||||
@ -2343,6 +2346,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
|
||||
!TP_RETINEX_GAINTRANSMISSION;Gain transmission
|
||||
!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain.
|
||||
!TP_RETINEX_MAP;Method
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SOFTLIGHT_LABEL;Soft Light
|
||||
|
@ -1021,6 +1021,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1121,6 +1122,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2065,6 +2068,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -1687,6 +1687,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1763,6 +1764,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
|
||||
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
|
||||
@ -2147,6 +2150,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
|
||||
!TP_RETINEX_VIEW_TRAN;Transmission - Auto
|
||||
!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed
|
||||
!TP_RETINEX_VIEW_UNSHARP;Unsharp mask
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SOFTLIGHT_LABEL;Soft Light
|
||||
|
@ -1687,6 +1687,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1763,6 +1764,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
|
||||
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
|
||||
@ -2147,6 +2150,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
|
||||
!TP_RETINEX_VIEW_TRAN;Transmission - Auto
|
||||
!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed
|
||||
!TP_RETINEX_VIEW_UNSHARP;Unsharp mask
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SOFTLIGHT_LABEL;Soft Light
|
||||
|
@ -2248,8 +2248,11 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
|
||||
!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries
|
||||
!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!PARTIALPASTE_DEHAZE;Haze removal
|
||||
!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift
|
||||
!PREFERENCES_APPEARANCE;Appearance
|
||||
@ -2313,5 +2316,6 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
|
||||
!TP_RETINEX_CONTEDIT_MAP;Equalizer
|
||||
!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain.
|
||||
!TP_RETINEX_MAP;Method
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_TM_FATTAL_THRESHOLD;Detail
|
||||
!TP_WBALANCE_PICKER;Pick
|
||||
|
@ -1770,6 +1770,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!ICCPROFCREATOR_COPYRIGHT;Copyright:
|
||||
@ -1814,6 +1815,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
|
||||
!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking.
|
||||
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
|
||||
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
|
||||
!MONITOR_PROFILE_SYSTEM;System default
|
||||
@ -2158,6 +2161,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
|
||||
!TP_RETINEX_VIEW_TRAN;Transmission - Auto
|
||||
!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed
|
||||
!TP_RETINEX_VIEW_UNSHARP;Unsharp mask
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_WAVELET_1;Level 1
|
||||
!TP_WAVELET_2;Level 2
|
||||
!TP_WAVELET_3;Level 3
|
||||
|
@ -1581,6 +1581,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1656,6 +1657,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
|
||||
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
|
||||
@ -2142,6 +2145,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
|
||||
!TP_RETINEX_VIEW_TRAN;Transmission - Auto
|
||||
!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed
|
||||
!TP_RETINEX_VIEW_UNSHARP;Unsharp mask
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SOFTLIGHT_LABEL;Soft Light
|
||||
|
@ -1581,6 +1581,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1656,6 +1657,8 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
|
||||
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
|
||||
@ -2142,6 +2145,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
|
||||
!TP_RETINEX_VIEW_TRAN;Transmission - Auto
|
||||
!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed
|
||||
!TP_RETINEX_VIEW_UNSHARP;Unsharp mask
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SOFTLIGHT_LABEL;Soft Light
|
||||
|
@ -1083,6 +1083,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1177,6 +1178,8 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2075,6 +2078,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -1023,6 +1023,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1123,6 +1124,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2066,6 +2069,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -1940,6 +1940,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -2015,6 +2016,8 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
|
||||
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
|
||||
!MAIN_TAB_ADVANCED;Advanced
|
||||
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
|
||||
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
|
||||
!OPTIONS_BUNDLED_MISSING;The bundled profile "<b>%1</b>" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead.
|
||||
@ -2271,6 +2274,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
|
||||
!TP_RETINEX_TRANSMISSION_TOOLTIP;Transmission according to transmission.\nAbscissa: transmission from negative values (min), mean, and positives values (max).\nOrdinate: amplification or reduction.
|
||||
!TP_RETINEX_VIEW_MASK;Mask
|
||||
!TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible.
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
!TP_SOFTLIGHT_LABEL;Soft Light
|
||||
|
@ -1022,6 +1022,7 @@ TP_WBALANCE_TEMPERATURE;Isı
|
||||
!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift
|
||||
!HISTORY_MSG_RAW_BORDER;Raw border
|
||||
!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
|
||||
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
|
||||
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
|
||||
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
|
||||
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
|
||||
@ -1122,6 +1123,8 @@ TP_WBALANCE_TEMPERATURE;Isı
|
||||
!MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
!MAIN_TAB_EXPORT; Fast Export
|
||||
!MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
!MAIN_TAB_FAVORITES;Favorites
|
||||
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
!MAIN_TAB_INSPECT; Inspect
|
||||
!MAIN_TAB_METADATA_TOOLTIP;Shortcut: <b>Alt-m</b>
|
||||
!MAIN_TAB_RAW;Raw
|
||||
@ -2065,6 +2068,7 @@ TP_WBALANCE_TEMPERATURE;Isı
|
||||
!TP_SHARPENEDGE_LABEL;Edges
|
||||
!TP_SHARPENEDGE_PASSES;Iterations
|
||||
!TP_SHARPENEDGE_THREE;Luminance only
|
||||
!TP_SHARPENING_BLUR;Blur radius
|
||||
!TP_SHARPENING_CONTRAST;Contrast threshold
|
||||
!TP_SHARPENMICRO_AMOUNT;Quantity
|
||||
!TP_SHARPENMICRO_CONTRAST;Contrast threshold
|
||||
|
@ -864,8 +864,14 @@ HISTORY_MSG_608;Local - Color Mask L
|
||||
HISTORY_MSG_609;Local - Exp Mask C
|
||||
HISTORY_MSG_610;Local - Exp Mask L
|
||||
HISTORY_MSG_611;Local - Color Mask H
|
||||
HISTORY_MSG_612;Local - Use Color Mask
|
||||
HISTORY_MSG_613;Local - Use Exp Mask
|
||||
HISTORY_MSG_612;Local - Color Structure
|
||||
HISTORY_MSG_613;Local - Exp Structure
|
||||
HISTORY_MSG_614;Local - Exp Mask H
|
||||
HISTORY_MSG_615;Local - Blend color
|
||||
HISTORY_MSG_616;Local - Blend Exp
|
||||
HISTORY_MSG_617;Local - Blur Exp
|
||||
HISTORY_MSG_618;Local - Use Color Mask
|
||||
HISTORY_MSG_619;Local - Use Exp Mask
|
||||
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
||||
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
||||
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
||||
@ -1042,8 +1048,6 @@ MAIN_TAB_ADVANCED;Advanced
|
||||
MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
|
||||
MAIN_TAB_COLOR;Color
|
||||
MAIN_TAB_COLOR_TOOLTIP;Shortcut: <b>Alt-c</b>
|
||||
MAIN_TAB_FAVORITES;Favorites
|
||||
MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
MAIN_TAB_DETAIL;Detail
|
||||
MAIN_TAB_DETAIL_TOOLTIP;Shortcut: <b>Alt-d</b>
|
||||
MAIN_TAB_DEVELOP; Batch Edit
|
||||
@ -1051,6 +1055,8 @@ MAIN_TAB_EXIF;Exif
|
||||
MAIN_TAB_EXPORT; Fast Export
|
||||
MAIN_TAB_EXPOSURE;Exposure
|
||||
MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: <b>Alt-e</b>
|
||||
MAIN_TAB_FAVORITES;Favorites
|
||||
MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
|
||||
MAIN_TAB_FILTER; Filter
|
||||
MAIN_TAB_INSPECT; Inspect
|
||||
MAIN_TAB_IPTC;IPTC
|
||||
@ -1934,8 +1940,10 @@ TP_LOCALLAB_ARTIF;Reduce artifacts - Improve algoritm
|
||||
TP_LOCALLAB_ARTIF_TOOLTIP;Only active for Color-light, Exposure, Retinex, Vibrance, ToneMapping, CBDL.
|
||||
TP_LOCALLAB_AVOID;Avoid color shift
|
||||
TP_LOCALLAB_BILATERAL;Bilateral filter
|
||||
TP_LOCALLAB_BLENDMASKCOL;Blend
|
||||
TP_LOCALLAB_BLMETHOD_TOOLTIP;Normal - direct blur and noise with all settings.\nInverse - Inverse blur and noise without scope and whithout enhanced algorithm.\nSymmetric - inverse blur and noise with all settings. Be careful some results may be curious
|
||||
TP_LOCALLAB_BLUFR;Blur & Noise
|
||||
TP_LOCALLAB_BLURDE;Blur Shape detection
|
||||
TP_LOCALLAB_BLNORM;Normal
|
||||
TP_LOCALLAB_BLINV;Inverse
|
||||
TP_LOCALLAB_BLSYM;Symmetric
|
||||
@ -2038,10 +2046,12 @@ TP_LOCALLAB_SHOWMNONE;None
|
||||
TP_LOCALLAB_SHOWMODIF;Show modifications whithout mask
|
||||
TP_LOCALLAB_SHOWMODIFMASK;Show modifications whith mask
|
||||
TP_LOCALLAB_SHOWMASK;Show mask
|
||||
TP_LOCALLAB_SHOWSTRUC;Show structure
|
||||
TP_LOCALLAB_USEMASK;Use mask
|
||||
TP_LOCALLAB_SOFT;Soft Light
|
||||
TP_LOCALLAB_STRENG;Strength
|
||||
TP_LOCALLAB_STRENGTH;Noise
|
||||
TP_LOCALLAB_STRUCCOL;Structure
|
||||
TP_LOCALLAB_STYPE;Shape method
|
||||
TP_LOCALLAB_STYPE_TOOLTIP;You can choose between:\nSymmetrical - left handle linked to right, top handle linked to bottom.\nIndependent - all handles are independent.
|
||||
TP_LOCALLAB_SYMSL;Symmetrical (mouse + sliders)
|
||||
|
@ -1054,8 +1054,8 @@ void CurveFactory::complexCurve(double ecomp, double black, double hlcompr, doub
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
void CurveFactory::complexCurvelocal(double ecomp, double black, double hlcompr, double hlcomprthresh,
|
||||
double shcompr, double br, double cont, LUTu & histogram,
|
||||
LUTf & hlCurve, LUTf & shCurve, LUTf & outCurve, LUTf & lightCurveloc,
|
||||
double shcompr, double br, double cont, LUTu & histogram, double lumare,
|
||||
LUTf & hlCurve, LUTf & shCurve, LUTf & outCurve, LUTf & lightCurveloc, float avg,
|
||||
int skip)
|
||||
{
|
||||
|
||||
@ -1124,19 +1124,22 @@ void CurveFactory::complexCurvelocal(double ecomp, double black, double hlcompr,
|
||||
if (cont > 0.00001 || cont < -0.00001) {
|
||||
|
||||
// compute mean luminance of the image with the curve applied
|
||||
int sum = 0;
|
||||
float avg = 0;
|
||||
|
||||
for (int i = 0; i < 32768; i++) {
|
||||
avg += lightCurveloc[i] * histogram[i];
|
||||
sum += histogram[i];
|
||||
}
|
||||
// int sum = 0;
|
||||
// float avg = 0;
|
||||
|
||||
// for (int i = 0; i < 32768; i++) {
|
||||
// avg += lightCurveloc[i] * histogram[i];
|
||||
// sum += histogram[i];
|
||||
// }
|
||||
|
||||
int k = avg * 32768;
|
||||
avg = lightCurveloc[k];
|
||||
// printf("avg=%f lumaref=%f\n", avg, lumare/100.f);
|
||||
std::vector<double> contrastcurvePoints;
|
||||
|
||||
if (sum) {
|
||||
avg /= sum;
|
||||
|
||||
bool lumm = true;
|
||||
if (lumm) {
|
||||
// avg /= sum;
|
||||
// avg = lumare / 100.f;
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
contrastcurvePoints.resize(9);
|
||||
contrastcurvePoints.at(0) = double (DCT_NURBS);
|
||||
@ -1570,6 +1573,55 @@ void LocretigainCurverab::Set(const std::vector<double> &curvePoints)
|
||||
}
|
||||
}
|
||||
|
||||
LocHHmaskexpCurve::LocHHmaskexpCurve() : sum(0.f) {};
|
||||
|
||||
void LocHHmaskexpCurve::Reset()
|
||||
{
|
||||
lutLocHHmaskexpCurve.reset();
|
||||
sum = 0.f;
|
||||
}
|
||||
|
||||
|
||||
void LocHHmaskexpCurve::Set(const Curve &pCurve)
|
||||
{
|
||||
if (pCurve.isIdentity()) {
|
||||
Reset(); // raise this value if the quality suffers from this number of samples
|
||||
return;
|
||||
}
|
||||
|
||||
lutLocHHmaskexpCurve(501); // raise this value if the quality suffers from this number of samples
|
||||
sum = 0.f;
|
||||
|
||||
for (int i = 0; i < 501; i++) {
|
||||
lutLocHHmaskexpCurve[i] = pCurve.getVal(double (i) / 500.);
|
||||
|
||||
if (lutLocHHmaskexpCurve[i] < 0.02f) {
|
||||
lutLocHHmaskexpCurve[i] = 0.02f;
|
||||
}
|
||||
|
||||
sum += lutLocHHmaskexpCurve[i];
|
||||
}
|
||||
|
||||
//lutLocHHCurve.dump("wav");
|
||||
}
|
||||
|
||||
|
||||
|
||||
void LocHHmaskexpCurve::Set(const std::vector<double> &curvePoints, bool & lhmasexputili)
|
||||
{
|
||||
// if (HHutili && !curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
FlatCurve ttcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2);
|
||||
ttcurve.setIdentityValue(0.);
|
||||
lhmasexputili = true;
|
||||
Set(ttcurve);
|
||||
} else {
|
||||
Reset();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
LocLLmaskexpCurve::LocLLmaskexpCurve() : sum(0.f) {};
|
||||
|
||||
void LocLLmaskexpCurve::Reset()
|
||||
@ -1603,12 +1655,13 @@ void LocLLmaskexpCurve::Set(const Curve &pCurve)
|
||||
|
||||
|
||||
|
||||
void LocLLmaskexpCurve::Set(const std::vector<double> &curvePoints)
|
||||
void LocLLmaskexpCurve::Set(const std::vector<double> &curvePoints, bool & llmasexputili)
|
||||
{
|
||||
// if (HHutili && !curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
FlatCurve ttcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2);
|
||||
ttcurve.setIdentityValue(0.);
|
||||
llmasexputili = true;
|
||||
Set(ttcurve);
|
||||
} else {
|
||||
Reset();
|
||||
@ -1651,12 +1704,13 @@ void LocCCmaskexpCurve::Set(const Curve &pCurve)
|
||||
|
||||
|
||||
|
||||
void LocCCmaskexpCurve::Set(const std::vector<double> &curvePoints)
|
||||
void LocCCmaskexpCurve::Set(const std::vector<double> &curvePoints, bool & lcmasexputili)
|
||||
{
|
||||
// if (HHutili && !curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
FlatCurve ttcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2);
|
||||
ttcurve.setIdentityValue(0.);
|
||||
lcmasexputili = true;
|
||||
Set(ttcurve);
|
||||
} else {
|
||||
Reset();
|
||||
@ -1697,12 +1751,13 @@ void LocHHmaskCurve::Set(const Curve &pCurve)
|
||||
|
||||
|
||||
|
||||
void LocHHmaskCurve::Set(const std::vector<double> &curvePoints)
|
||||
void LocHHmaskCurve::Set(const std::vector<double> &curvePoints, bool & lhmasutili)
|
||||
{
|
||||
// if (HHutili && !curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
FlatCurve ttcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2);
|
||||
ttcurve.setIdentityValue(0.);
|
||||
lhmasutili = true;
|
||||
Set(ttcurve);
|
||||
} else {
|
||||
Reset();
|
||||
@ -1746,12 +1801,13 @@ void LocCCmaskCurve::Set(const Curve &pCurve)
|
||||
|
||||
|
||||
|
||||
void LocCCmaskCurve::Set(const std::vector<double> &curvePoints)
|
||||
void LocCCmaskCurve::Set(const std::vector<double> &curvePoints, bool & lcmasutili)
|
||||
{
|
||||
// if (HHutili && !curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
FlatCurve ttcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2);
|
||||
ttcurve.setIdentityValue(0.);
|
||||
lcmasutili = true;
|
||||
Set(ttcurve);
|
||||
} else {
|
||||
Reset();
|
||||
@ -1791,12 +1847,13 @@ void LocLLmaskCurve::Set(const Curve &pCurve)
|
||||
|
||||
|
||||
|
||||
void LocLLmaskCurve::Set(const std::vector<double> &curvePoints)
|
||||
void LocLLmaskCurve::Set(const std::vector<double> &curvePoints, bool & llmasutili)
|
||||
{
|
||||
// if (HHutili && !curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
FlatCurve ttcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2);
|
||||
ttcurve.setIdentityValue(0.);
|
||||
llmasutili = true;
|
||||
Set(ttcurve);
|
||||
} else {
|
||||
Reset();
|
||||
|
@ -345,8 +345,8 @@ public:
|
||||
|
||||
int skip = 1);
|
||||
|
||||
static void complexCurvelocal(double ecomp, double black, double hlcompr, double hlcomprthresh, double shcompr, double br, double cont, LUTu & histogram,
|
||||
LUTf & hlCurve, LUTf & shCurve, LUTf & outCurve, LUTf & lightCurveloc,
|
||||
static void complexCurvelocal(double ecomp, double black, double hlcompr, double hlcomprthresh, double shcompr, double br, double cont, LUTu & histogram, double lumare,
|
||||
LUTf & hlCurve, LUTf & shCurve, LUTf & outCurve, LUTf & lightCurveloc, float avg,
|
||||
int skip = 1);
|
||||
|
||||
static void curveBW(const std::vector<double>& curvePointsbw, const std::vector<double>& curvePointsbw2, const LUTu & histogrambw, LUTu & outBeforeCCurveHistogrambw,
|
||||
@ -632,6 +632,35 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class LocHHmaskexpCurve
|
||||
{
|
||||
private:
|
||||
LUTf lutLocHHmaskexpCurve; // 0xffff range
|
||||
void Set(const Curve &pCurve);
|
||||
|
||||
public:
|
||||
float sum;
|
||||
|
||||
virtual ~LocHHmaskexpCurve() {};
|
||||
LocHHmaskexpCurve();
|
||||
void Reset();
|
||||
void Set(const std::vector<double> &curvePoints, bool & lhmasexputili);
|
||||
float getSum() const
|
||||
{
|
||||
return sum;
|
||||
}
|
||||
|
||||
float operator[](float index) const
|
||||
{
|
||||
return lutLocHHmaskexpCurve[index];
|
||||
}
|
||||
operator bool (void) const
|
||||
{
|
||||
return lutLocHHmaskexpCurve;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class LocCCmaskexpCurve
|
||||
{
|
||||
private:
|
||||
@ -644,7 +673,7 @@ public:
|
||||
virtual ~LocCCmaskexpCurve() {};
|
||||
LocCCmaskexpCurve();
|
||||
void Reset();
|
||||
void Set(const std::vector<double> &curvePoints);
|
||||
void Set(const std::vector<double> &curvePoints, bool & lcmasexputili);
|
||||
float getSum() const
|
||||
{
|
||||
return sum;
|
||||
@ -672,7 +701,7 @@ public:
|
||||
virtual ~LocLLmaskexpCurve() {};
|
||||
LocLLmaskexpCurve();
|
||||
void Reset();
|
||||
void Set(const std::vector<double> &curvePoints);
|
||||
void Set(const std::vector<double> &curvePoints, bool & llmasexputili);
|
||||
float getSum() const
|
||||
{
|
||||
return sum;
|
||||
@ -700,7 +729,7 @@ public:
|
||||
virtual ~LocHHmaskCurve() {};
|
||||
LocHHmaskCurve();
|
||||
void Reset();
|
||||
void Set(const std::vector<double> &curvePoints);
|
||||
void Set(const std::vector<double> &curvePoints, bool & lhmasutili);
|
||||
float getSum() const
|
||||
{
|
||||
return sum;
|
||||
@ -729,7 +758,7 @@ public:
|
||||
virtual ~LocCCmaskCurve() {};
|
||||
LocCCmaskCurve();
|
||||
void Reset();
|
||||
void Set(const std::vector<double> &curvePoints);
|
||||
void Set(const std::vector<double> &curvePoints, bool & lcmasutili);
|
||||
float getSum() const
|
||||
{
|
||||
return sum;
|
||||
@ -757,7 +786,7 @@ public:
|
||||
virtual ~LocLLmaskCurve() {};
|
||||
LocLLmaskCurve();
|
||||
void Reset();
|
||||
void Set(const std::vector<double> &curvePoints);
|
||||
void Set(const std::vector<double> &curvePoints, bool & llmasutili);
|
||||
float getSum() const
|
||||
{
|
||||
return sum;
|
||||
|
@ -895,6 +895,14 @@ void Crop::update(int todo)
|
||||
LUTu lhist16loc2(32770, 0);
|
||||
bool LHutili = parent->LHutili;
|
||||
bool HHutili = parent->HHutili;
|
||||
bool llmasutili = parent->llmasutili;
|
||||
bool lhmasutili = parent->lhmasutili;
|
||||
bool lcmasutili = parent->lcmasutili;
|
||||
bool lhmasexputili = parent->lhmasexputili;
|
||||
bool lcmasexputili = parent->lcmasexputili;
|
||||
bool llmasexputili = parent->llmasexputili;
|
||||
|
||||
float avg = parent->avg;
|
||||
LUTu dummy;
|
||||
bool needslocal = params.locallab.enabled;
|
||||
LocretigainCurve locRETgainCurve;
|
||||
@ -905,6 +913,7 @@ void Crop::update(int todo)
|
||||
LocHHmaskCurve lochhmasCurve;
|
||||
LocCCmaskexpCurve locccmasexpCurve;
|
||||
LocLLmaskexpCurve locllmasexpCurve;
|
||||
LocHHmaskexpCurve lochhmasexpCurve;
|
||||
|
||||
LocretigainCurverab locRETgainCurverab;
|
||||
locallutili = false;
|
||||
@ -918,11 +927,12 @@ void Crop::update(int todo)
|
||||
locRETgainCurve.Set(params.locallab.spots.at(sp).localTgaincurve);
|
||||
loclhCurve.Set(params.locallab.spots.at(sp).LHcurve, LHutili);
|
||||
lochhCurve.Set(params.locallab.spots.at(sp).HHcurve, HHutili);
|
||||
locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve);
|
||||
locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve);
|
||||
lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve);
|
||||
locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve);
|
||||
locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve);
|
||||
locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve, lcmasutili);
|
||||
locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve, llmasutili);
|
||||
lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve, lhmasutili);
|
||||
locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili);
|
||||
locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve, llmasexputili);
|
||||
lochhmasexpCurve.Set(params.locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili);
|
||||
locallutili = false;
|
||||
CurveFactory::curveLocal(locallutili, params.locallab.spots.at(sp).llcurve, lllocalcurve2, sca);
|
||||
localcutili = false;
|
||||
@ -947,23 +957,32 @@ void Crop::update(int todo)
|
||||
chromare = parent->chromarefs[sp];
|
||||
lumare = parent->lumarefs[sp];
|
||||
sobelre = parent->sobelrefs[sp];
|
||||
CurveFactory::complexCurvelocal(ecomp, black / 65535., hlcompr, hlcomprthresh, shcompr, br, cont, lhist16loc2,
|
||||
hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2,
|
||||
CurveFactory::complexCurvelocal(ecomp, black / 65535., hlcompr, hlcomprthresh, shcompr, br, cont, lhist16loc2, lumare,
|
||||
hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, avg,
|
||||
sca);
|
||||
|
||||
// Locallab mask are only shown for selected spot
|
||||
if (sp == parent->params.locallab.selspot) {
|
||||
parent->ipf.Lab_Local(1, sp, parent->sobelrefs, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, lllocalcurve2,
|
||||
loclhCurve, lochhCurve, locccmasCurve, locllmasCurve, lochhmasCurve, locccmasexpCurve, locllmasexpCurve, LHutili, HHutili, cclocalcurve2, localskutili, sklocalcurve2, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, huere, chromare, lumare, sobelre, parent->locallColorMask, parent->locallExpMask);
|
||||
parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, lllocalcurve2,
|
||||
loclhCurve, lochhCurve, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, LHutili, HHutili, cclocalcurve2, localskutili, sklocalcurve2, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, huere, chromare, lumare, sobelre, parent->locallColorMask, parent->locallExpMask);
|
||||
} else {
|
||||
parent->ipf.Lab_Local(1, sp, parent->sobelrefs, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, lllocalcurve2,
|
||||
loclhCurve, lochhCurve, locccmasCurve, locllmasCurve, lochhmasCurve, locccmasexpCurve, locllmasexpCurve, LHutili, HHutili, cclocalcurve2, localskutili, sklocalcurve2, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, huere, chromare, lumare, sobelre, 0, 0);
|
||||
parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, lllocalcurve2,
|
||||
loclhCurve, lochhCurve, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, LHutili, HHutili, cclocalcurve2, localskutili, sklocalcurve2, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, huere, chromare, lumare, sobelre, 0, 0);
|
||||
}
|
||||
|
||||
lllocalcurve2.clear();
|
||||
cclocalcurve2.clear();
|
||||
sklocalcurve2.clear();
|
||||
exlocalcurve2.clear();
|
||||
locRETgainCurve.Reset();
|
||||
loclhCurve.Reset();
|
||||
lochhCurve.Reset();
|
||||
locccmasCurve.Reset();
|
||||
locllmasCurve.Reset();
|
||||
lochhmasCurve.Reset();
|
||||
locllmasexpCurve.Reset();
|
||||
locccmasexpCurve.Reset();
|
||||
lochhmasexpCurve.Reset();
|
||||
|
||||
if (skip <= 2) {
|
||||
usleep(settings->cropsleep); //wait to avoid crash when crop 100% and move window
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include <unistd.h>
|
||||
#include "jaggedarray.h"
|
||||
|
||||
#include "iccstore.h"
|
||||
#include <iostream>
|
||||
@ -122,6 +123,7 @@ ImProcCoordinator::ImProcCoordinator()
|
||||
lastspotdup(false),
|
||||
locallColorMask(0),
|
||||
locallExpMask(0),
|
||||
avg(0),
|
||||
retistrsav(nullptr)
|
||||
{}
|
||||
|
||||
@ -774,6 +776,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
float **shbuffer = nullptr;
|
||||
int sca = 1;
|
||||
double huere, chromare, lumare, huerefblu, sobelre;
|
||||
JaggedArray<float> blend(pW, pH);
|
||||
|
||||
for (int sp = 0; sp < params.locallab.nbspot && sp < (int)params.locallab.spots.size(); sp++) {
|
||||
// Set local curves of current spot to LUT
|
||||
@ -783,14 +786,21 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
localexutili = false;
|
||||
localcutili = false;
|
||||
localskutili = false;
|
||||
llmasutili = false;
|
||||
lcmasexputili = false;
|
||||
lhmasexputili = false;
|
||||
llmasexputili = false;
|
||||
lhmasutili = false;
|
||||
lcmasutili = false;
|
||||
locRETgainCurve.Set(params.locallab.spots.at(sp).localTgaincurve);
|
||||
loclhCurve.Set(params.locallab.spots.at(sp).LHcurve, LHutili);
|
||||
lochhCurve.Set(params.locallab.spots.at(sp).HHcurve, HHutili);
|
||||
locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve);
|
||||
locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve);
|
||||
lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve);
|
||||
locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve);
|
||||
locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve);
|
||||
locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve, lcmasutili);
|
||||
locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve, llmasutili);
|
||||
lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve, lhmasutili);
|
||||
locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve, llmasexputili);
|
||||
locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili);
|
||||
lochhmasexpCurve.Set(params.locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili);
|
||||
CurveFactory::curveLocal(locallutili, params.locallab.spots.at(sp).llcurve, lllocalcurve, sca);
|
||||
CurveFactory::curveCCLocal(localcutili, params.locallab.spots.at(sp).cccurve, cclocalcurve, sca);
|
||||
CurveFactory::curveskLocal(localskutili, params.locallab.spots.at(sp).skintonescurve, sklocalcurve, sca);
|
||||
@ -804,22 +814,22 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
double cont = params.locallab.spots.at(sp).contrast;
|
||||
lhist16loc.clear();
|
||||
|
||||
|
||||
// Reference parameters computation
|
||||
if (params.locallab.spots.at(sp).spotMethod == "exc") {
|
||||
ipf.calc_ref(sp, reserv, reserv, 0, 0, pW, pH, scale, huerefblu, huere, chromare, lumare, sobelre, lhist16loc);
|
||||
ipf.calc_ref(sp, reserv, reserv, 0, 0, pW, pH, scale, huerefblu, huere, chromare, lumare, sobelre, lhist16loc, avg);
|
||||
} else {
|
||||
ipf.calc_ref(sp, nprevl, nprevl, 0, 0, pW, pH, scale, huerefblu, huere, chromare, lumare, sobelre, lhist16loc);
|
||||
ipf.calc_ref(sp, nprevl, nprevl, 0, 0, pW, pH, scale, huerefblu, huere, chromare, lumare, sobelre, lhist16loc, avg);
|
||||
}
|
||||
CurveFactory::complexCurvelocal(ecomp, black / 65535., hlcompr, hlcomprthresh, shcompr, br, cont, lhist16loc,
|
||||
hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||
sca);
|
||||
|
||||
// printf("improc avg=%f\n", avg);
|
||||
huerblu = huerefblurs[sp] = huerefblu;
|
||||
huer = huerefs[sp] = huere;
|
||||
chromar = chromarefs[sp] = chromare;
|
||||
lumar = lumarefs[sp] = lumare ;
|
||||
sobeler = sobelrefs[sp] = sobelre;
|
||||
CurveFactory::complexCurvelocal(ecomp, black / 65535., hlcompr, hlcomprthresh, shcompr, br, cont, lhist16loc, lumar,
|
||||
hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, avg,
|
||||
sca);
|
||||
|
||||
if (locallListener) {
|
||||
locallListener->refChanged(huer, lumar, chromar);
|
||||
@ -833,13 +843,28 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
*/
|
||||
// Locallab mask are only shown for selected spot
|
||||
if (sp == params.locallab.selspot) {
|
||||
ipf.Lab_Local(3, sp, sobelrefs, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, lllocalcurve, loclhCurve, lochhCurve, locccmasCurve, locllmasCurve, lochhmasCurve, locccmasexpCurve, locllmasexpCurve,
|
||||
LHutili, HHutili, cclocalcurve, localskutili, sklocalcurve, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, huer, chromar, lumar, sobeler, locallColorMask, locallExpMask);
|
||||
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, lllocalcurve, loclhCurve, lochhCurve, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||
LHutili, HHutili, cclocalcurve, localskutili, sklocalcurve, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, huer, chromar, lumar, sobeler, locallColorMask, locallExpMask);
|
||||
} else {
|
||||
ipf.Lab_Local(3, sp, sobelrefs, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, lllocalcurve, loclhCurve, lochhCurve, locccmasCurve, locllmasCurve, lochhmasCurve, locccmasexpCurve, locllmasexpCurve,
|
||||
LHutili, HHutili, cclocalcurve, localskutili, sklocalcurve, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, huer, chromar, lumar, sobeler, 0, 0);
|
||||
ipf.Lab_Local(3, sp, (float**)shbuffer, nprevl, nprevl, reserv, 0, 0, pW, pH, scale, locRETgainCurve, lllocalcurve, loclhCurve, lochhCurve, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||
LHutili, HHutili, cclocalcurve, localskutili, sklocalcurve, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerblu, huer, chromar, lumar, sobeler, 0, 0);
|
||||
}
|
||||
|
||||
lllocalcurve.clear();
|
||||
cclocalcurve.clear();
|
||||
sklocalcurve.clear();
|
||||
exlocalcurve.clear();
|
||||
locRETgainCurve.Reset();
|
||||
loclhCurve.Reset();
|
||||
lochhCurve.Reset();
|
||||
locccmasCurve.Reset();
|
||||
locllmasCurve.Reset();
|
||||
lochhmasCurve.Reset();
|
||||
locllmasexpCurve.Reset();
|
||||
locccmasexpCurve.Reset();
|
||||
lochhmasexpCurve.Reset();
|
||||
|
||||
/*
|
||||
if (params.locallab.spots.at(sp).spotMethod == "exc") {
|
||||
ipf.calc_ref(sp, reserv, reserv, 0, 0, pW, pH, scale, huerefblu, huere, chromare, lumare, sobelre, lhist16loc);
|
||||
} else {
|
||||
@ -851,7 +876,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
cclocalcurve.clear();
|
||||
sklocalcurve.clear();
|
||||
exlocalcurve.clear();
|
||||
*/
|
||||
}
|
||||
/*
|
||||
for (int sp = 0; sp < params.locallab.nbspot && sp < (int)params.locallab.spots.size(); sp++) {
|
||||
//update references after threatment
|
||||
if (params.locallab.spots.at(sp).spotMethod == "exc") {
|
||||
@ -864,7 +891,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
chromar = chromarefs[sp] = chromare;
|
||||
lumar = lumarefs[sp] = lumare ;
|
||||
sobeler = sobelrefs[sp] = sobelre;
|
||||
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//*************************************************************
|
||||
|
@ -240,11 +240,18 @@ protected:
|
||||
LocHHmaskCurve lochhmasCurve;
|
||||
LocCCmaskexpCurve locccmasexpCurve;
|
||||
LocLLmaskexpCurve locllmasexpCurve;
|
||||
LocHHmaskexpCurve lochhmasexpCurve;
|
||||
ProcParams nextParams2;
|
||||
bool locallutili;
|
||||
bool localcutili;
|
||||
bool localskutili;
|
||||
bool localexutili;
|
||||
bool llmasutili;
|
||||
bool lhmasutili;
|
||||
bool lcmasutili;
|
||||
bool lcmasexputili;
|
||||
bool lhmasexputili;
|
||||
bool llmasexputili;
|
||||
bool LHutili;
|
||||
bool HHutili;
|
||||
LUTf huerefs;
|
||||
@ -256,6 +263,7 @@ protected:
|
||||
bool lastspotdup;
|
||||
int locallColorMask;
|
||||
int locallExpMask;
|
||||
float avg;
|
||||
|
||||
public:
|
||||
|
||||
|
@ -286,10 +286,10 @@ public:
|
||||
//locallab
|
||||
void MSRLocal(int sp, float** luminance, float** templ, const float* const *originalLuminance, const int width, const int height, const LocallabParams &loc, const int skip, const LocretigainCurve &locRETgainCcurve, const int chrome, const int scall, const float krad, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax);
|
||||
// void calc_ref (LabImage* original, LabImage* transformed, int cx, int cy, int oW, int oH, int sk, double &huere, double &chromare, double &lumare, double &sobelref);
|
||||
void calc_ref(int sp, LabImage* original, LabImage* transformed, int cx, int cy, int oW, int oH, int sk, double &huerefblur, double &huere, double &chromare, double &lumare, double &sobelref, LUTu & histogram);
|
||||
void calc_ref(int sp, LabImage* original, LabImage* transformed, int cx, int cy, int oW, int oH, int sk, double &huerefblur, double &huere, double &chromare, double &lumare, double &sobelref, LUTu & histogram, float &avg);
|
||||
void copy_ref(LabImage* spotbuffer, LabImage* original, LabImage* transformed, int cx, int cy, int sk, const struct local_params & lp, double &huerefspot, double &chromarefspot, double &lumarefspot);
|
||||
void paste_ref(LabImage* spotbuffer, LabImage* transformed, int cx, int cy, int sk, const struct local_params & lp);
|
||||
void Lab_Local(int call, int sp, LUTf & sobelrefs, float** shbuffer, LabImage* original, LabImage* transformed, LabImage* reserved, int cx, int cy, int oW, int oH, int sk, const LocretigainCurve & locRETgainCcurve, LUTf & lllocalcurve, const LocLHCurve & loclhCurve, const LocHHCurve & lochhCurve, const LocCCmaskCurve & locccmasCurve, const LocLLmaskCurve & locllmasCurve, const LocHHmaskCurve & lochhmasCurve, const LocCCmaskexpCurve & locccmasexpCurve, const LocLLmaskexpCurve & locllmasexpCurve, bool &LHutili, bool &HHutili, LUTf & cclocalcurve, bool & localskutili, LUTf & sklocalcurve, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurve, LUTf & shtonecurve, LUTf & tonecurve, LUTf & lightCurveloc, double & huerefblur, double &hueref, double &chromaref, double &lumaref, double &sobelref, int llColorMask, int llExpMask);
|
||||
void Lab_Local(int call, int sp, float** shbuffer, LabImage* original, LabImage* transformed, LabImage* reserved, int cx, int cy, int oW, int oH, int sk, const LocretigainCurve & locRETgainCcurve, LUTf & lllocalcurve, const LocLHCurve & loclhCurve, const LocHHCurve & lochhCurve, const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili, const LocCCmaskexpCurve & locccmasexpCurve, bool &lcmasexputili, const LocLLmaskexpCurve & locllmasexpCurve, bool &llmasexputili, const LocHHmaskexpCurve & lochhmasexpCurve, bool & lhmasexputili, bool &LHutili, bool &HHutili, LUTf & cclocalcurve, bool & localskutili, LUTf & sklocalcurve, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurve, LUTf & shtonecurve, LUTf & tonecurve, LUTf & lightCurveloc, double & huerefblur, double &hueref, double &chromaref, double &lumaref, double &sobelref, int llColorMask, int llExpMask);
|
||||
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);
|
||||
void InverseBlurNoise_Local(const struct local_params& lp, LabImage* original, LabImage* transformed, const LabImage* const tmp1, int cx, int cy);
|
||||
@ -302,7 +302,7 @@ public:
|
||||
|
||||
void vibrancelocal(int sp, int bfw, int bfh, LabImage* lab, LabImage* dest, bool & localskutili, LUTf & sklocalcurve);
|
||||
// void Expo_vibr_Local(float moddE, float powdE, int senstype, float **buflight, float **bufchro, const float hueplus, const float huemoins, const float hueref, const float dhue, const float chromaref, const float lumaref, const struct local_params & lp, LabImage * original, LabImage * transformed, const LabImage * const tmp1, int cx, int cy, int sk);
|
||||
void Expo_vibr_Local(float moddE, float powdE, int senstype, LabImage * originalmask, float **buflight, float **bufchro, float **buf_a_cat, float ** buf_b_cat, const float hueplus, const float huemoins, const float hueref, const float dhue, const float chromaref, const float lumaref, const struct local_params & lp, LabImage * original, LabImage * transformed, LabImage * difLab, const LabImage * const tmp1, int cx, int cy, int sk);
|
||||
void Expo_vibr_Local(int senstype, LabImage * bufexporig, LabImage * originalmask, float **buflight, float **bufchro, float **buf_a_cat, float ** buf_b_cat, const float hueref, const float chromaref, const float lumaref, float sobelref, float ** blend2, const struct local_params & lp, LabImage * original, LabImage * transformed, int cx, int cy, int sk);
|
||||
void exlabLocal(const local_params& lp, int bfh, int bfw, LabImage* bufexporig, LabImage* lab, LUTf & hltonecurve, LUTf & shtonecurve, LUTf & tonecurve);
|
||||
void Exclude_Local(float moddE, float powdE, int sen, float **deltaso, float **buflight, float **bufchro, const float hueplus, const float huemoins, const float hueref, const float dhue, const float chromaref, const float lumaref, const struct local_params & lp, LabImage * original, LabImage * transformed, LabImage * rsv, LabImage * reserv, int cx, int cy, int sk);
|
||||
|
||||
@ -311,7 +311,7 @@ public:
|
||||
|
||||
void fftw_denoise(int GW, int GH, int max_numblox_W, int min_numblox_W, float **tmp1, array2D<float> *Lin, int numThreads, const struct local_params & lp, int chrom);
|
||||
|
||||
void ColorLight_Local(float moddE, float powdE, int call, LabImage * bufcolorig, LabImage * originalmask, float **buflight, float **bufchro, float **bufchroslid, float ** bufhh, float ** buflightslid, bool &LHutili, bool &HHutili, const float hueplus, const float huemoins, const float hueref, const float dhue, const float chromaref, const float lumaref, LUTf & lllocalcurve, const LocLHCurve & loclhCurve, const LocHHCurve & lochhCurve, LUTf & lightCurveloc, const local_params& lp, LabImage* original, LabImage* transformed, int cx, int cy, int sk);
|
||||
void ColorLight_Local(float moddE, float powdE, int call, LabImage * bufcolorig, LabImage * originalmask, float **buflight, float **bufchro, float **bufchroslid, float ** bufhh, float ** buflightslid, bool &LHutili, bool &HHutili, const float hueplus, const float huemoins, const float hueref, const float dhue, const float chromaref, const float lumaref, float sobelref, float ** blend2, LUTf & lllocalcurve, const LocLHCurve & loclhCurve, const LocHHCurve & lochhCurve, LUTf & lightCurveloc, const local_params& lp, LabImage* original, LabImage* transformed, int cx, int cy, int sk);
|
||||
void InverseColorLight_Local(const struct local_params& lp, LUTf & lightCurveloc, LabImage* original, LabImage* transformed, int cx, int cy, const float hueplus, const float huemoins, const float hueref, const float dhue, const float chromaref, const float lumaref, int sk);
|
||||
|
||||
void Sharp_Local(int call, float **loctemp, int senstype, const float hueplus, const float huemoins, const float hueref, const float dhue, const float chromaref, const local_params& lp, LabImage* original, LabImage* transformed, int cx, int cy, int sk);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -638,8 +638,14 @@ enum ProcEventCode {
|
||||
EvlocallabCCmaskexpshape = 608,
|
||||
EvlocallabLLmaskexpshape = 609,
|
||||
EvlocallabHHmaskshape = 610,
|
||||
EvLocallabEnaColorMask = 611,
|
||||
EvLocallabEnaExpMask = 612,
|
||||
Evlocallabstructcol = 611,
|
||||
Evlocallabstructexp = 612,
|
||||
EvlocallabHHmaskexpshape = 613,
|
||||
Evlocallabblendmaskcol = 614,
|
||||
Evlocallabblendmaskexp = 615,
|
||||
Evlocallabblurexpde = 616,
|
||||
EvLocallabEnaColorMask = 617,
|
||||
EvLocallabEnaExpMask = 618,
|
||||
NUMOFEVENTS
|
||||
};
|
||||
|
||||
|
@ -2362,6 +2362,8 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
contrast(0),
|
||||
chroma(0),
|
||||
sensi(19),
|
||||
structcol(0),
|
||||
blendmaskcol(0),
|
||||
qualitycurveMethod("none"),
|
||||
llcurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
|
||||
cccurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
|
||||
@ -2369,22 +2371,26 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
HHcurve{(double)FCT_MinMaxCPoints, 0.0, 0.50, 0.35, 0.35, 0.166, 0.50, 0.35, 0.35, 0.333, 0.50, 0.35, 0.35, 0.50, 0.50, 0.35, 0.35, 0.666, 0.50, 0.35, 0.35, 0.833, 0.50, 0.35, 0.35},
|
||||
invers(false),
|
||||
enaColorMask(false),
|
||||
CCmaskcurve{(double)FCT_MinMaxCPoints, 0., 1., 0.35, 0.35, 1., 1., 0.35, 0.35},
|
||||
LLmaskcurve{(double)FCT_MinMaxCPoints, 0., 1., 0.35, 0.35, 1., 1., 0.35, 0.35},
|
||||
HHmaskcurve{(double)FCT_MinMaxCPoints, 0., 1., 0.35, 0.35, 1., 1., 0.35, 0.35},
|
||||
CCmaskcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.00, 1.0, 0.35, 0.35 },
|
||||
LLmaskcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.00, 1.0, 0.35, 0.35 },
|
||||
HHmaskcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.00, 1.0, 0.35, 0.35 },
|
||||
// Exposure
|
||||
expexpose(false),
|
||||
expcomp(0),
|
||||
hlcompr(20),
|
||||
hlcompr(60),
|
||||
hlcomprthresh(33),
|
||||
black(0),
|
||||
shcompr(50),
|
||||
warm(0),
|
||||
sensiex(19),
|
||||
sensiex(15),
|
||||
structexp(0),
|
||||
blurexpde(5),
|
||||
excurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
|
||||
enaExpMask(false),
|
||||
CCmaskexpcurve{(double)FCT_MinMaxCPoints, 0., 1., 0.35, 0.35, 1., 1., 0.35, 0.35},
|
||||
LLmaskexpcurve{(double)FCT_MinMaxCPoints, 0., 1., 0.35, 0.35, 1., 1., 0.35, 0.35},
|
||||
CCmaskexpcurve{(double)FCT_MinMaxCPoints,0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35 },
|
||||
LLmaskexpcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
HHmaskexpcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
blendmaskexp(0),
|
||||
// Vibrance
|
||||
expvibrance(false),
|
||||
saturated(0),
|
||||
@ -2497,6 +2503,8 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& contrast == other.contrast
|
||||
&& chroma == other.chroma
|
||||
&& sensi == other.sensi
|
||||
&& structcol == other.structcol
|
||||
&& blendmaskcol == other.blendmaskcol
|
||||
&& qualitycurveMethod == other.qualitycurveMethod
|
||||
&& llcurve == other.llcurve
|
||||
&& cccurve == other.cccurve
|
||||
@ -2516,10 +2524,14 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& shcompr == other.shcompr
|
||||
&& warm == other.warm
|
||||
&& sensiex == other.sensiex
|
||||
&& structexp == other.structexp
|
||||
&& blurexpde == other.blurexpde
|
||||
&& excurve == other.excurve
|
||||
&& enaExpMask == other.enaExpMask
|
||||
&& CCmaskexpcurve == other.CCmaskexpcurve
|
||||
&& LLmaskexpcurve == other.LLmaskexpcurve
|
||||
&& HHmaskexpcurve == other.HHmaskexpcurve
|
||||
&& blendmaskexp == other.blendmaskexp
|
||||
// Vibrance
|
||||
&& expvibrance == other.expvibrance
|
||||
&& saturated == other.saturated
|
||||
@ -3585,6 +3597,8 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).contrast, "Locallab", "Contrast_" + std::to_string(i), spot.contrast, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).chroma, "Locallab", "Chroma_" + std::to_string(i), spot.chroma, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sensi, "Locallab", "Sensi_" + std::to_string(i), spot.sensi, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).structcol, "Locallab", "Structcol_" + std::to_string(i), spot.structcol, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).blendmaskcol, "Locallab", "Blendmaskcol_" + std::to_string(i), spot.blendmaskcol, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).qualitycurveMethod, "Locallab", "QualityCurveMethod_" + std::to_string(i), spot.qualitycurveMethod, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).llcurve, "Locallab", "LLCurve_" + std::to_string(i), spot.llcurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).cccurve, "Locallab", "CCCurve_" + std::to_string(i), spot.cccurve, keyFile);
|
||||
@ -3604,10 +3618,14 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).shcompr, "Locallab", "Shcompr_" + std::to_string(i), spot.shcompr, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).warm, "Locallab", "Warm_" + std::to_string(i), spot.warm, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sensiex, "Locallab", "Sensiex_" + std::to_string(i), spot.sensiex, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).structexp, "Locallab", "Structexp_" + std::to_string(i), spot.structexp, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).blurexpde, "Locallab", "Blurexpde_" + std::to_string(i), spot.blurexpde, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).excurve, "Locallab", "ExCurve_" + std::to_string(i), spot.excurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).enaExpMask, "Locallab", "EnaExpMask_" + std::to_string(i), spot.enaExpMask, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).CCmaskexpcurve, "Locallab", "CCmaskexpCurve_" + std::to_string(i), spot.CCmaskexpcurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmaskexpcurve, "Locallab", "LLmaskexpCurve_" + std::to_string(i), spot.LLmaskexpcurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).HHmaskexpcurve, "Locallab", "HHmaskexpCurve_" + std::to_string(i), spot.HHmaskexpcurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).blendmaskexp, "Locallab", "Blendmaskexp_" + std::to_string(i), spot.blendmaskexp, keyFile);
|
||||
// Vibrance
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expvibrance, "Locallab", "Expvibrance_" + std::to_string(i), spot.expvibrance, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).saturated, "Locallab", "Saturated_" + std::to_string(i), spot.saturated, keyFile);
|
||||
@ -4800,6 +4818,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "Contrast_" + std::to_string(i), pedited, spot.contrast, spotEdited.contrast);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Chroma_" + std::to_string(i), pedited, spot.chroma, spotEdited.chroma);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sensi_" + std::to_string(i), pedited, spot.sensi, spotEdited.sensi);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Structcol_" + std::to_string(i), pedited, spot.structcol, spotEdited.structcol);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Blendmaskcol_" + std::to_string(i), pedited, spot.blendmaskcol, spotEdited.blendmaskcol);
|
||||
assignFromKeyfile(keyFile, "Locallab", "QualityCurveMethod_" + std::to_string(i), pedited, spot.qualitycurveMethod, spotEdited.qualitycurveMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LLCurve_" + std::to_string(i), pedited, spot.llcurve, spotEdited.llcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "CCCurve_" + std::to_string(i), pedited, spot.cccurve, spotEdited.cccurve);
|
||||
@ -4819,10 +4839,14 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "Shcompr_" + std::to_string(i), pedited, spot.shcompr, spotEdited.shcompr);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Warm_" + std::to_string(i), pedited, spot.warm, spotEdited.warm);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sensiex_" + std::to_string(i), pedited, spot.sensiex, spotEdited.sensiex);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Structexp_" + std::to_string(i), pedited, spot.structexp, spotEdited.structexp);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Blurexpde_" + std::to_string(i), pedited, spot.blurexpde, spotEdited.blurexpde);
|
||||
assignFromKeyfile(keyFile, "Locallab", "ExCurve_" + std::to_string(i), pedited, spot.excurve, spotEdited.excurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "EnaExpMask_" + std::to_string(i), pedited, spot.enaExpMask, spotEdited.enaExpMask);
|
||||
assignFromKeyfile(keyFile, "Locallab", "CCmaskexpCurve_" + std::to_string(i), pedited, spot.CCmaskexpcurve, spotEdited.CCmaskexpcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LLmaskexpCurve_" + std::to_string(i), pedited, spot.LLmaskexpcurve, spotEdited.LLmaskexpcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "HHmaskexpCurve_" + std::to_string(i), pedited, spot.HHmaskexpcurve, spotEdited.HHmaskexpcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Blendmaskexp_" + std::to_string(i), pedited, spot.blendmaskexp, spotEdited.blendmaskexp);
|
||||
// Vibrance
|
||||
assignFromKeyfile(keyFile, "Locallab", "Expvibrance_" + std::to_string(i), pedited, spot.expvibrance, spotEdited.expvibrance);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Saturated_" + std::to_string(i), pedited, spot.saturated, spotEdited.saturated);
|
||||
|
@ -50,6 +50,9 @@ class LocHHCurve;
|
||||
class LocLLmaskCurve;
|
||||
class LocCCmaskCurve;
|
||||
class LocHHmaskCurve;
|
||||
class LocLLmaskexpCurve;
|
||||
class LocCCmaskexpCurve;
|
||||
class LocHHmaskexpCurve;
|
||||
|
||||
enum RenderingIntent {
|
||||
RI_PERCEPTUAL = INTENT_PERCEPTUAL,
|
||||
@ -959,6 +962,8 @@ struct LocallabParams {
|
||||
int contrast;
|
||||
int chroma;
|
||||
int sensi;
|
||||
int structcol;
|
||||
int blendmaskcol;
|
||||
Glib::ustring qualitycurveMethod;
|
||||
std::vector<double> llcurve;
|
||||
std::vector<double> cccurve;
|
||||
@ -978,10 +983,14 @@ struct LocallabParams {
|
||||
int shcompr;
|
||||
int warm;
|
||||
int sensiex;
|
||||
int structexp;
|
||||
int blurexpde;
|
||||
std::vector<double> excurve;
|
||||
bool enaExpMask;
|
||||
std::vector<double> CCmaskexpcurve;
|
||||
std::vector<double> LLmaskexpcurve;
|
||||
std::vector<double> HHmaskexpcurve;
|
||||
int blendmaskexp;
|
||||
// Vibrance
|
||||
bool expvibrance;
|
||||
int saturated;
|
||||
|
@ -638,6 +638,12 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
LUMINANCECURVE, // EvlocallabCCmaskexpshape
|
||||
LUMINANCECURVE, // EvlocallabLLmaskexpshape
|
||||
LUMINANCECURVE, // EvlocallabHHmaskshape
|
||||
LUMINANCECURVE, // Evlocallabstructcol
|
||||
LUMINANCECURVE, // Evlocallabstructexp
|
||||
LUMINANCECURVE, // EvlocallabHHmaskexpshape
|
||||
LUMINANCECURVE, // Evlocallabblendmaskcol
|
||||
LUMINANCECURVE, // Evlocallabblendmaskexp
|
||||
LUMINANCECURVE, // Evlocallabblurexpde
|
||||
LUMINANCECURVE, // EvLocallabEnaColorMask
|
||||
LUMINANCECURVE // EvLocallabEnaExpMask
|
||||
};
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include "jaggedarray.h"
|
||||
|
||||
|
||||
#undef THREAD_PRIORITY_NORMAL
|
||||
@ -1079,6 +1080,7 @@ private:
|
||||
LocHHmaskCurve lochhmasCurve;
|
||||
LocCCmaskexpCurve locccmasexpCurve;
|
||||
LocLLmaskexpCurve locllmasexpCurve;
|
||||
LocHHmaskexpCurve lochhmasexpCurve;
|
||||
LUTf lllocalcurve(65536, 0);
|
||||
LUTf cclocalcurve(65536, 0);
|
||||
LUTf sklocalcurve(65536, 0);
|
||||
@ -1086,11 +1088,12 @@ private:
|
||||
LUTf shtonecurveloc(65536, 0);
|
||||
LUTf tonecurveloc(65536, 0);
|
||||
LUTf lightCurveloc(32770, 0);
|
||||
LUTu lhist16loc(32768, 0);
|
||||
LUTu lhist16loc(32770, 0);
|
||||
LUTf exlocalcurve(65536, 0);
|
||||
|
||||
// int maxspot = 1;
|
||||
float** shbuffer = nullptr;
|
||||
JaggedArray<float> blend(fw, fh);
|
||||
|
||||
for (int sp = 0; sp < params.locallab.nbspot && sp < (int)params.locallab.spots.size(); sp++) {
|
||||
if (params.locallab.spots.at(sp).inverssha) {
|
||||
@ -1108,14 +1111,21 @@ private:
|
||||
bool localcutili = false;
|
||||
bool localskutili = false;
|
||||
bool localexutili = false;
|
||||
bool llmasutili = false;
|
||||
bool lcmasexputili = false;
|
||||
bool lhmasexputili = false;
|
||||
bool llmasexputili = false;
|
||||
bool lcmasutili = false;
|
||||
bool lhmasutili = false;
|
||||
locRETgainCurve.Set(params.locallab.spots.at(sp).localTgaincurve);
|
||||
loclhCurve.Set(params.locallab.spots.at(sp).LHcurve, LHutili);
|
||||
lochhCurve.Set(params.locallab.spots.at(sp).HHcurve, HHutili);
|
||||
locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve);
|
||||
locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve);
|
||||
lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve);
|
||||
locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve);
|
||||
locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve);
|
||||
locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve, lcmasutili);
|
||||
locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve, llmasutili);
|
||||
lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve, lhmasutili);
|
||||
locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili);
|
||||
locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve, llmasexputili);
|
||||
lochhmasexpCurve.Set(params.locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili);
|
||||
CurveFactory::curveLocal(locallutili, params.locallab.spots.at(sp).llcurve, lllocalcurve, 1);
|
||||
CurveFactory::curveCCLocal(localcutili, params.locallab.spots.at(sp).cccurve, cclocalcurve, 1);
|
||||
CurveFactory::curveskLocal(localskutili, params.locallab.spots.at(sp).skintonescurve, sklocalcurve, 1);
|
||||
@ -1131,18 +1141,18 @@ private:
|
||||
|
||||
// Reference parameters computation
|
||||
double huere, chromare, lumare, huerefblu, sobelre;
|
||||
|
||||
float avg = 0.f;
|
||||
if (params.locallab.spots.at(sp).spotMethod == "exc") {
|
||||
ipf.calc_ref(sp, reservView, reservView, 0, 0, fw, fh, 1, huerefblu, huere, chromare, lumare, sobelre, lhist16loc);
|
||||
ipf.calc_ref(sp, reservView, reservView, 0, 0, fw, fh, 1, huerefblu, huere, chromare, lumare, sobelre, lhist16loc, avg);
|
||||
} else {
|
||||
ipf.calc_ref(sp, labView, labView, 0, 0, fw, fh, 1, huerefblu, huere, chromare, lumare, sobelre, lhist16loc);
|
||||
ipf.calc_ref(sp, labView, labView, 0, 0, fw, fh, 1, huerefblu, huere, chromare, lumare, sobelre, lhist16loc, avg);
|
||||
}
|
||||
CurveFactory::complexCurvelocal(ecomp, black / 65535., hlcompr, hlcomprthresh, shcompr, br, cont, lhist16loc,
|
||||
hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||
CurveFactory::complexCurvelocal(ecomp, black / 65535., hlcompr, hlcomprthresh, shcompr, br, cont, lhist16loc, lumare,
|
||||
hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, avg,
|
||||
1);
|
||||
|
||||
// No Locallab mask is shown in exported picture
|
||||
ipf.Lab_Local(2, sp, sobelrefs, (float**)shbuffer, labView, labView, reservView, 0, 0, fw, fh, 1, locRETgainCurve, lllocalcurve, loclhCurve, lochhCurve, locccmasCurve, locllmasCurve, lochhmasCurve, locccmasexpCurve, locllmasexpCurve,
|
||||
ipf.Lab_Local(2, sp, (float**)shbuffer, labView, labView, reservView, 0, 0, fw, fh, 1, locRETgainCurve, lllocalcurve, loclhCurve, lochhCurve, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||
LHutili, HHutili, cclocalcurve, localskutili, sklocalcurve, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, huerefblu, huere, chromare, lumare, sobelre, 0, 0);
|
||||
|
||||
// Clear local curves
|
||||
|
@ -1427,5 +1427,21 @@ static INLINE void vconvertrgbrgbrgbrgb2rrrrggggbbbb (const float * src, vfloat
|
||||
bv = _mm_setr_ps(src[2],src[5],src[8],src[11]);
|
||||
}
|
||||
|
||||
#if defined( __SSE4_1__ ) && defined( __x86_64__ )
|
||||
static INLINE vfloat vceilf(vfloat x) {
|
||||
return _mm_round_ps(x, _MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static INLINE vfloat vceilf(vfloat x) {
|
||||
__m128i zerov = _mm_setzero_si128();
|
||||
zerov = _mm_cmpeq_epi32(zerov, zerov);
|
||||
const vfloat onev = (vfloat)_mm_slli_epi32(_mm_srli_epi32(zerov, 25), 23); //create vector 1.0f
|
||||
const vfloat xi = _mm_cvtepi32_ps(_mm_cvttps_epi32(x));
|
||||
return xi + _mm_and_ps(_mm_cmplt_ps(xi, x), onev);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __SSE2__
|
||||
#endif // SLEEFSSEAVX
|
||||
|
@ -960,59 +960,62 @@ void RawImageSource::xtrans_interpolate (const int passes, const bool useCieLab)
|
||||
#undef CLIP
|
||||
void RawImageSource::fast_xtrans_interpolate (const array2D<float> &rawData, array2D<float> &red, array2D<float> &green, array2D<float> &blue)
|
||||
{
|
||||
// if (settings->verbose) {
|
||||
// printf("fast X-Trans interpolation...\n");
|
||||
// }
|
||||
|
||||
double progress = 0.0;
|
||||
const bool plistenerActive = plistener;
|
||||
|
||||
if (plistenerActive) {
|
||||
plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), "fast Xtrans"));
|
||||
plistener->setProgress (progress);
|
||||
if (plistener) {
|
||||
plistener->setProgressStr(Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), "fast Xtrans"));
|
||||
plistener->setProgress(0.0);
|
||||
}
|
||||
|
||||
const int height = H, width = W;
|
||||
|
||||
xtransborder_interpolate (1, red, green, blue);
|
||||
xtransborder_interpolate(1, red, green, blue);
|
||||
int xtrans[6][6];
|
||||
ri->getXtransMatrix(xtrans);
|
||||
|
||||
#pragma omp parallel for
|
||||
const float weight[3][3] = {
|
||||
{0.25f, 0.5f, 0.25f},
|
||||
{0.5f, 0.f, 0.5f},
|
||||
{0.25f, 0.5f, 0.25f}
|
||||
};
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for schedule(dynamic, 16)
|
||||
#endif
|
||||
for (int row = 1; row < H - 1; ++row) {
|
||||
for (int col = 1; col < W - 1; ++col) {
|
||||
float sum[3] = {};
|
||||
|
||||
for(int row = 1; row < height - 1; row++) {
|
||||
for(int col = 1; col < width - 1; col++) {
|
||||
float sum[3] = {0.f};
|
||||
|
||||
for(int v = -1; v <= 1; v++) {
|
||||
for(int h = -1; h <= 1; h++) {
|
||||
sum[fcol(row + v, col + h)] += rawData[row + v][(col + h)];
|
||||
for (int v = -1; v <= 1; v++) {
|
||||
for (int h = -1; h <= 1; h++) {
|
||||
sum[fcol(row + v, col + h)] += rawData[row + v][(col + h)] * weight[v + 1][h + 1];
|
||||
}
|
||||
}
|
||||
|
||||
switch(fcol(row, col)) {
|
||||
case 0:
|
||||
case 0: // red pixel
|
||||
red[row][col] = rawData[row][col];
|
||||
green[row][col] = sum[1] * 0.2f;
|
||||
blue[row][col] = sum[2] * 0.33333333f;
|
||||
green[row][col] = sum[1] * 0.5f;
|
||||
blue[row][col] = sum[2];
|
||||
break;
|
||||
|
||||
case 1:
|
||||
red[row][col] = sum[0] * 0.5f;
|
||||
case 1: // green pixel
|
||||
green[row][col] = rawData[row][col];
|
||||
blue[row][col] = sum[2] * 0.5f;
|
||||
if (fcol(row, col - 1) == fcol(row, col + 1)) { // Solitary green pixel always has exactly two direct red and blue neighbors in 3x3 grid
|
||||
red[row][col] = sum[0];
|
||||
blue[row][col] = sum[2];
|
||||
} else { // Non solitary green pixel always has one direct and one diagonal red and blue neighbor in 3x3 grid
|
||||
red[row][col] = sum[0] * 1.3333333f;
|
||||
blue[row][col] = sum[2] * 1.3333333f;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
red[row][col] = sum[0] * 0.33333333f;
|
||||
green[row][col] = sum[1] * 0.2f;
|
||||
case 2: // blue pixel
|
||||
red[row][col] = sum[0];
|
||||
green[row][col] = sum[1] * 0.5f;
|
||||
blue[row][col] = rawData[row][col];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (plistenerActive) {
|
||||
if (plistener) {
|
||||
plistener->setProgress (1.0);
|
||||
}
|
||||
}
|
||||
|
@ -1083,6 +1083,10 @@ void EditorPanel::open (Thumbnail* tmb, rtengine::InitialImage* isrc)
|
||||
|
||||
history->resetSnapShotNumber();
|
||||
navigator->setInvalid(ipc->getFullWidth(),ipc->getFullHeight());
|
||||
|
||||
// When passing a photo as an argument to the RawTherapee executable, the user wants
|
||||
// this auto-loaded photo's thumbnail to be selected and visible in the Filmstrip.
|
||||
EditorPanel::syncFileBrowser();
|
||||
}
|
||||
|
||||
void EditorPanel::close ()
|
||||
|
@ -76,14 +76,19 @@ Locallab::Locallab():
|
||||
contrast(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CONTRAST"), -100, 100, 1, 0))),
|
||||
chroma(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CHROMA"), -100, 150, 1, 0))),
|
||||
sensi(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSI"), 0, 100, 1, 19))),
|
||||
structcol(Gtk::manage(new Adjuster(M("TP_LOCALLAB_STRUCCOL"), 0, 100, 1, 0))),
|
||||
blendmaskcol(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLENDMASKCOL"), -100, 150, 1, 0))),
|
||||
// Exposure
|
||||
expcomp(Gtk::manage(new Adjuster(M("TP_EXPOSURE_EXPCOMP"), -200, 200, 5, 0))),
|
||||
expcomp(Gtk::manage(new Adjuster(M("TP_EXPOSURE_EXPCOMP"), -200, 400, 5, 0))),
|
||||
hlcompr(Gtk::manage(new Adjuster(M("TP_EXPOSURE_COMPRHIGHLIGHTS"), 0, 500, 1, 60))),
|
||||
hlcomprthresh(Gtk::manage(new Adjuster(M("TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD"), 0, 100, 1, 33))),
|
||||
black(Gtk::manage(new Adjuster(M("TP_EXPOSURE_BLACKLEVEL"), -16384, 32768, 50, 0))),
|
||||
shcompr(Gtk::manage(new Adjuster(M("TP_EXPOSURE_COMPRSHADOWS"), 0, 100, 1, 50))),
|
||||
warm(Gtk::manage(new Adjuster(M("TP_LOCALLAB_WARM"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-orange-small.png"))))),
|
||||
sensiex(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSI"), 0, 100, 1, 19))),
|
||||
sensiex(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSI"), 0, 100, 1, 15))),
|
||||
structexp(Gtk::manage(new Adjuster(M("TP_LOCALLAB_STRUCCOL"), 0, 100, 1, 0))),
|
||||
blurexpde(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLURDE"), 2, 100, 1, 5))),
|
||||
blendmaskexp(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLENDMASKCOL"), -100, 150, 1, 0))),
|
||||
// Vibrance
|
||||
saturated(Gtk::manage(new Adjuster(M("TP_VIBRANCE_SATURATED"), -100., 100., 1., 0.))),
|
||||
pastels(Gtk::manage(new Adjuster(M("TP_VIBRANCE_PASTELS"), -100., 100., 1., 0.))),
|
||||
@ -105,7 +110,7 @@ Locallab::Locallab():
|
||||
// Retinex
|
||||
str(Gtk::manage(new Adjuster(M("TP_LOCALLAB_STR"), 0, 100, 1, 0))),
|
||||
chrrt(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CHRRT"), 0, 100, 1, 0))),
|
||||
neigh(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NEIGH"), 14, 150, 1, 50))),
|
||||
neigh(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NEIGH"), -100, 150, 1, 100))),//14, 150, 1, 50))),
|
||||
vart(Gtk::manage(new Adjuster(M("TP_LOCALLAB_VART"), 50, 500, 1, 200))),
|
||||
dehaz(Gtk::manage(new Adjuster(M("TP_LOCALLAB_DEHAZ"), 0, 100, 1, 0))),
|
||||
sensih(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIH"), 0, 100, 1, 19))),
|
||||
@ -221,6 +226,10 @@ Locallab::Locallab():
|
||||
sensi->set_tooltip_text(M("TP_LOCALLAB_SENSI_TOOLTIP"));
|
||||
sensi->setAdjusterListener(this);
|
||||
|
||||
structcol->setAdjusterListener(this);
|
||||
|
||||
blendmaskcol->setAdjusterListener(this);
|
||||
|
||||
qualitycurveMethod->append(M("TP_LOCALLAB_CURVNONE"));
|
||||
qualitycurveMethod->append(M("TP_LOCALLAB_CURVCURR"));
|
||||
qualitycurveMethod->append(M("TP_LOCALLAB_CURVENH"));
|
||||
@ -293,6 +302,7 @@ Locallab::Locallab():
|
||||
showmaskcolMethod->append(M("TP_LOCALLAB_SHOWMODIF"));
|
||||
showmaskcolMethod->append(M("TP_LOCALLAB_SHOWMODIFMASK"));
|
||||
showmaskcolMethod->append(M("TP_LOCALLAB_SHOWMASK"));
|
||||
showmaskcolMethod->append(M("TP_LOCALLAB_SHOWSTRUC"));
|
||||
|
||||
showmaskcolMethod->set_active(0);
|
||||
showmaskcolMethod->set_tooltip_markup(M("TP_LOCALLAB_SHOWMASKCOL_TOOLTIP"));
|
||||
@ -317,7 +327,7 @@ Locallab::Locallab():
|
||||
|
||||
HHmaskshape = static_cast<FlatCurveEditor *>(maskCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true));
|
||||
HHmaskshape->setIdentityValue(0.);
|
||||
HHmaskshape->setResetCurve(FlatCurveType(defSpot.LLmaskcurve.at(0)), defSpot.LLmaskcurve);
|
||||
HHmaskshape->setResetCurve(FlatCurveType(defSpot.HHmaskcurve.at(0)), defSpot.HHmaskcurve);
|
||||
HHmaskshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP"));
|
||||
HHmaskshape->setCurveColorProvider(this, 6);
|
||||
HHmaskshape->setBottomBarColorProvider(this, 6);
|
||||
@ -335,6 +345,7 @@ Locallab::Locallab():
|
||||
superFrame->add(*superBox);
|
||||
colorBox->pack_start(*superFrame);
|
||||
colorBox->pack_start(*sensi);
|
||||
colorBox->pack_start(*structcol);
|
||||
Gtk::HBox* const qualcurvbox = Gtk::manage(new Gtk::HBox());
|
||||
qualcurvbox->pack_start(*labqualcurv, Gtk::PACK_SHRINK, 4);
|
||||
qualcurvbox->pack_start(*qualitycurveMethod);
|
||||
@ -347,6 +358,7 @@ Locallab::Locallab():
|
||||
maskcolBox->pack_start(*showmaskcolMethod, Gtk::PACK_SHRINK, 0);
|
||||
maskcolBox->pack_start(*enaColorMask, Gtk::PACK_SHRINK, 0);
|
||||
maskcolBox->pack_start(*maskCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
maskcolBox->pack_start(*blendmaskcol, Gtk::PACK_SHRINK, 0);
|
||||
maskcolFrame->add(*maskcolBox);
|
||||
colorBox->pack_start(*maskcolFrame);
|
||||
|
||||
@ -375,6 +387,12 @@ Locallab::Locallab():
|
||||
sensiex->set_tooltip_text(M("TP_LOCALLAB_SENSI_TOOLTIP"));
|
||||
sensiex->setAdjusterListener(this);
|
||||
|
||||
structexp->setAdjusterListener(this);
|
||||
|
||||
blurexpde->setAdjusterListener(this);
|
||||
|
||||
blendmaskexp->setAdjusterListener(this);
|
||||
|
||||
curveEditorG->setCurveListener(this);
|
||||
|
||||
shapeexpos = static_cast<DiagonalCurveEditor*>(curveEditorG->addCurve(CT_Diagonal, ""));
|
||||
@ -394,6 +412,7 @@ Locallab::Locallab():
|
||||
showmaskexpMethod->append(M("TP_LOCALLAB_SHOWMODIF"));
|
||||
showmaskexpMethod->append(M("TP_LOCALLAB_SHOWMODIFMASK"));
|
||||
showmaskexpMethod->append(M("TP_LOCALLAB_SHOWMASK"));
|
||||
showmaskexpMethod->append(M("TP_LOCALLAB_SHOWSTRUC"));
|
||||
|
||||
showmaskexpMethod->set_active(0);
|
||||
showmaskexpMethod->set_tooltip_markup(M("TP_LOCALLAB_SHOWMASKCOL_TOOLTIP"));
|
||||
@ -413,6 +432,13 @@ Locallab::Locallab():
|
||||
LLmaskexpshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP"));
|
||||
LLmaskexpshape->setBottomBarBgGradient(mllshape);
|
||||
|
||||
HHmaskexpshape = static_cast<FlatCurveEditor *>(maskexpCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true));
|
||||
HHmaskexpshape->setIdentityValue(0.);
|
||||
HHmaskexpshape->setResetCurve(FlatCurveType(defSpot.HHmaskexpcurve.at(0)), defSpot.HHmaskexpcurve);
|
||||
HHmaskexpshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP"));
|
||||
HHmaskexpshape->setCurveColorProvider(this, 6);
|
||||
HHmaskexpshape->setBottomBarColorProvider(this, 6);
|
||||
|
||||
maskexpCurveEditorG->curveListComplete();
|
||||
|
||||
ToolParamBlock* const exposeBox = Gtk::manage(new ToolParamBlock());
|
||||
@ -423,14 +449,17 @@ Locallab::Locallab():
|
||||
exposeBox->pack_start(*shcompr);
|
||||
exposeBox->pack_start(*warm);
|
||||
exposeBox->pack_start(*sensiex);
|
||||
exposeBox->pack_start(*structexp);
|
||||
exposeBox->pack_start(*blurexpde);
|
||||
exposeBox->pack_start(*curveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
Gtk::Frame* const maskexpFrame = Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_SHOW")));
|
||||
maskexpFrame->set_label_align(0.025, 0.5);
|
||||
ToolParamBlock* const maskexpBox = Gtk::manage(new ToolParamBlock());
|
||||
maskexpBox->pack_start(*transLabels2, Gtk::PACK_SHRINK, 4);
|
||||
maskexpBox->pack_start(*enaExpMask, Gtk::PACK_SHRINK, 0);
|
||||
maskexpBox->pack_start(*showmaskexpMethod, Gtk::PACK_SHRINK, 0);
|
||||
maskexpBox->pack_start(*enaExpMask, Gtk::PACK_SHRINK, 0);
|
||||
maskexpBox->pack_start(*maskexpCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
maskexpBox->pack_start(*blendmaskexp, Gtk::PACK_SHRINK, 0);
|
||||
maskexpFrame->add(*maskexpBox);
|
||||
exposeBox->pack_start(*maskexpFrame);
|
||||
|
||||
@ -1480,6 +1509,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->locallab.spots.at(pp->locallab.selspot).contrast = contrast->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).chroma = chroma->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).sensi = sensi->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).structcol = structcol->getIntValue();
|
||||
|
||||
if (qualitycurveMethod->get_active_row_number() == 0) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).qualitycurveMethod = "none";
|
||||
@ -1498,6 +1528,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->locallab.spots.at(pp->locallab.selspot).CCmaskcurve = CCmaskshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).LLmaskcurve = LLmaskshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).HHmaskcurve = HHmaskshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).blendmaskcol = blendmaskcol->getIntValue();
|
||||
// Exposure
|
||||
pp->locallab.spots.at(pp->locallab.selspot).expexpose = expexpose->getEnabled();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).expcomp = expcomp->getIntValue();
|
||||
@ -1507,10 +1538,14 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->locallab.spots.at(pp->locallab.selspot).shcompr = shcompr->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).warm = warm->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).sensiex = sensiex->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).structexp = structexp->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).blurexpde = blurexpde->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).excurve = shapeexpos->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).enaExpMask = enaExpMask->get_active();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).LLmaskexpcurve = LLmaskexpshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).CCmaskexpcurve = CCmaskexpshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).HHmaskexpcurve = HHmaskexpshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).blendmaskexp = blendmaskexp->getIntValue();
|
||||
// Vibrance
|
||||
pp->locallab.spots.at(pp->locallab.selspot).expvibrance = expvibrance->getEnabled();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).saturated = saturated->getIntValue();
|
||||
@ -1641,6 +1676,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pe->locallab.spots.at(pp->locallab.selspot).contrast = pe->locallab.spots.at(pp->locallab.selspot).contrast || contrast->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).chroma = pe->locallab.spots.at(pp->locallab.selspot).chroma || chroma->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).sensi = pe->locallab.spots.at(pp->locallab.selspot).sensi || sensi->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).structcol = pe->locallab.spots.at(pp->locallab.selspot).structcol || structcol->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).qualitycurveMethod = pe->locallab.spots.at(pp->locallab.selspot).qualitycurveMethod || qualitycurveMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
pe->locallab.spots.at(pp->locallab.selspot).llcurve = pe->locallab.spots.at(pp->locallab.selspot).llcurve || !llshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).cccurve = pe->locallab.spots.at(pp->locallab.selspot).cccurve || !ccshape->isUnChanged();
|
||||
@ -1651,6 +1687,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pe->locallab.spots.at(pp->locallab.selspot).CCmaskcurve = pe->locallab.spots.at(pp->locallab.selspot).CCmaskcurve || !CCmaskshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).LLmaskcurve = pe->locallab.spots.at(pp->locallab.selspot).LLmaskcurve || !LLmaskshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).HHmaskcurve = pe->locallab.spots.at(pp->locallab.selspot).HHmaskcurve || !HHmaskshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).blendmaskcol = pe->locallab.spots.at(pp->locallab.selspot).blendmaskcol || blendmaskcol->getEditedState();
|
||||
// Exposure
|
||||
pe->locallab.spots.at(pp->locallab.selspot).expexpose = pe->locallab.spots.at(pp->locallab.selspot).expexpose || !expexpose->get_inconsistent();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).expcomp = pe->locallab.spots.at(pp->locallab.selspot).expcomp || expcomp->getEditedState();
|
||||
@ -1660,10 +1697,14 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pe->locallab.spots.at(pp->locallab.selspot).shcompr = pe->locallab.spots.at(pp->locallab.selspot).shcompr || shcompr->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).warm = pe->locallab.spots.at(pp->locallab.selspot).warm || warm->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).sensiex = pe->locallab.spots.at(pp->locallab.selspot).sensiex || sensiex->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).structexp = pe->locallab.spots.at(pp->locallab.selspot).structexp || structexp->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).blurexpde = pe->locallab.spots.at(pp->locallab.selspot).blurexpde || blurexpde->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).excurve = pe->locallab.spots.at(pp->locallab.selspot).excurve || !shapeexpos->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).enaExpMask = pe->locallab.spots.at(pp->locallab.selspot).enaExpMask || !enaExpMask->get_inconsistent();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).CCmaskexpcurve = pe->locallab.spots.at(pp->locallab.selspot).CCmaskexpcurve || !CCmaskexpshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).LLmaskexpcurve = pe->locallab.spots.at(pp->locallab.selspot).LLmaskexpcurve || !LLmaskexpshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).HHmaskexpcurve = pe->locallab.spots.at(pp->locallab.selspot).HHmaskexpcurve || !HHmaskexpshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).blendmaskexp = pe->locallab.spots.at(pp->locallab.selspot).blendmaskexp || blendmaskexp->getEditedState();
|
||||
// Vibrance
|
||||
pe->locallab.spots.at(pp->locallab.selspot).expvibrance = pe->locallab.spots.at(pp->locallab.selspot).expvibrance || !expvibrance->get_inconsistent();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).saturated = pe->locallab.spots.at(pp->locallab.selspot).saturated || saturated->getEditedState();
|
||||
@ -1781,6 +1822,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).contrast = pedited->locallab.spots.at(pp->locallab.selspot).contrast || contrast->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).chroma = pedited->locallab.spots.at(pp->locallab.selspot).chroma || chroma->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).sensi = pedited->locallab.spots.at(pp->locallab.selspot).sensi || sensi->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).structcol = pedited->locallab.spots.at(pp->locallab.selspot).structcol || structcol->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).qualitycurveMethod = pedited->locallab.spots.at(pp->locallab.selspot).qualitycurveMethod || qualitycurveMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).llcurve = pedited->locallab.spots.at(pp->locallab.selspot).llcurve || !llshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).cccurve = pedited->locallab.spots.at(pp->locallab.selspot).cccurve || !ccshape->isUnChanged();
|
||||
@ -1791,6 +1833,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).CCmaskcurve = pedited->locallab.spots.at(pp->locallab.selspot).CCmaskcurve || !CCmaskshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).LLmaskcurve = pedited->locallab.spots.at(pp->locallab.selspot).LLmaskcurve || !LLmaskshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).HHmaskcurve = pedited->locallab.spots.at(pp->locallab.selspot).HHmaskcurve || !HHmaskshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).blendmaskcol = pedited->locallab.spots.at(pp->locallab.selspot).blendmaskcol || blendmaskcol->getEditedState();
|
||||
// Exposure
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).expexpose = pedited->locallab.spots.at(pp->locallab.selspot).expexpose || !expexpose->get_inconsistent();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).expcomp = pedited->locallab.spots.at(pp->locallab.selspot).expcomp || expcomp->getEditedState();
|
||||
@ -1800,10 +1843,14 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).shcompr = pedited->locallab.spots.at(pp->locallab.selspot).shcompr || shcompr->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).warm = pedited->locallab.spots.at(pp->locallab.selspot).warm || warm->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).sensiex = pedited->locallab.spots.at(pp->locallab.selspot).sensiex || sensiex->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).structexp = pedited->locallab.spots.at(pp->locallab.selspot).structexp || structexp->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).blurexpde = pedited->locallab.spots.at(pp->locallab.selspot).blurexpde || blurexpde->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).excurve = pedited->locallab.spots.at(pp->locallab.selspot).excurve || !shapeexpos->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).enaExpMask = pedited->locallab.spots.at(pp->locallab.selspot).enaExpMask || !enaExpMask->get_inconsistent();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).CCmaskexpcurve = pedited->locallab.spots.at(pp->locallab.selspot).CCmaskexpcurve || !CCmaskexpshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).LLmaskexpcurve = pedited->locallab.spots.at(pp->locallab.selspot).LLmaskexpcurve || !LLmaskexpshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).HHmaskexpcurve = pedited->locallab.spots.at(pp->locallab.selspot).HHmaskexpcurve || !HHmaskexpshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).blendmaskexp = pedited->locallab.spots.at(pp->locallab.selspot).blendmaskexp || blendmaskexp->getEditedState();
|
||||
// Vibrance
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).expvibrance = pedited->locallab.spots.at(pp->locallab.selspot).expvibrance || !expvibrance->get_inconsistent();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).saturated = pedited->locallab.spots.at(pp->locallab.selspot).saturated || saturated->getEditedState();
|
||||
@ -2053,7 +2100,12 @@ void Locallab::curveChanged(CurveEditor* ce)
|
||||
listener->panelChanged(EvlocallabLLmaskexpshape, M("HISTORY_CUSTOMCURVE"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (ce == HHmaskexpshape) {
|
||||
if (listener) {
|
||||
listener->panelChanged(EvlocallabHHmaskexpshape, M("HISTORY_CUSTOMCURVE"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Vibrance
|
||||
@ -2463,6 +2515,8 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
|
||||
contrast->setDefault((double)defSpot->contrast);
|
||||
chroma->setDefault((double)defSpot->chroma);
|
||||
sensi->setDefault((double)defSpot->sensi);
|
||||
structcol->setDefault((double)defSpot->structcol);
|
||||
blendmaskcol->setDefault((double)defSpot->blendmaskcol);
|
||||
// Exposure
|
||||
expcomp->setDefault((double)defSpot->expcomp);
|
||||
hlcompr->setDefault((double)defSpot->hlcompr);
|
||||
@ -2471,6 +2525,9 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
|
||||
shcompr->setDefault((double)defSpot->shcompr);
|
||||
warm->setDefault((double)defSpot->warm);
|
||||
sensiex->setDefault((double)defSpot->sensiex);
|
||||
structexp->setDefault((double)defSpot->structexp);
|
||||
blurexpde->setDefault((double)defSpot->blurexpde);
|
||||
blendmaskexp->setDefault((double)defSpot->blendmaskexp);
|
||||
// Vibrance
|
||||
saturated->setDefault((double)defSpot->saturated);
|
||||
pastels->setDefault((double)defSpot->pastels);
|
||||
@ -2537,6 +2594,8 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
|
||||
contrast->setDefaultEditedState(Irrelevant);
|
||||
chroma->setDefaultEditedState(Irrelevant);
|
||||
sensi->setDefaultEditedState(Irrelevant);
|
||||
structcol->setDefaultEditedState(Irrelevant);
|
||||
blendmaskcol->setDefaultEditedState(Irrelevant);
|
||||
// Exposure
|
||||
expcomp->setDefaultEditedState(Irrelevant);
|
||||
hlcompr->setDefaultEditedState(Irrelevant);
|
||||
@ -2545,6 +2604,9 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
|
||||
shcompr->setDefaultEditedState(Irrelevant);
|
||||
warm->setDefaultEditedState(Irrelevant);
|
||||
sensiex->setDefaultEditedState(Irrelevant);
|
||||
structexp->setDefaultEditedState(Irrelevant);
|
||||
blurexpde->setDefaultEditedState(Irrelevant);
|
||||
blendmaskexp->setDefaultEditedState(Irrelevant);
|
||||
// Vibrance
|
||||
saturated->setDefaultEditedState(Irrelevant);
|
||||
pastels->setDefaultEditedState(Irrelevant);
|
||||
@ -2615,6 +2677,8 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
|
||||
contrast->setDefaultEditedState(defSpotState->contrast ? Edited : UnEdited);
|
||||
chroma->setDefaultEditedState(defSpotState->chroma ? Edited : UnEdited);
|
||||
sensi->setDefaultEditedState(defSpotState->sensi ? Edited : UnEdited);
|
||||
structcol->setDefaultEditedState(defSpotState->structcol ? Edited : UnEdited);
|
||||
blendmaskcol->setDefaultEditedState(defSpotState->blendmaskcol ? Edited : UnEdited);
|
||||
// Exposure
|
||||
expcomp->setDefaultEditedState(defSpotState->expcomp ? Edited : UnEdited);
|
||||
hlcompr->setDefaultEditedState(defSpotState->hlcompr ? Edited : UnEdited);
|
||||
@ -2623,6 +2687,9 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
|
||||
shcompr->setDefaultEditedState(defSpotState->shcompr ? Edited : UnEdited);
|
||||
warm->setDefaultEditedState(defSpotState->warm ? Edited : UnEdited);
|
||||
sensiex->setDefaultEditedState(defSpotState->sensiex ? Edited : UnEdited);
|
||||
structexp->setDefaultEditedState(defSpotState->structexp ? Edited : UnEdited);
|
||||
blurexpde->setDefaultEditedState(defSpotState->blurexpde ? Edited : UnEdited);
|
||||
blendmaskexp->setDefaultEditedState(defSpotState->blendmaskexp ? Edited : UnEdited);
|
||||
// Vibrance
|
||||
saturated->setDefaultEditedState(defSpotState->saturated ? Edited : UnEdited);
|
||||
pastels->setDefaultEditedState(defSpotState->pastels ? Edited : UnEdited);
|
||||
@ -2748,6 +2815,19 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
|
||||
listener->panelChanged(Evlocallabsensi, sensi->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == structcol) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabstructcol, structcol->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == blendmaskcol) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabblendmaskcol, blendmaskcol->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Exposure
|
||||
@ -2802,6 +2882,25 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
|
||||
listener->panelChanged(Evlocallabsensiex, sensiex->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == structexp) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabstructexp, structexp->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == blurexpde) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabblurexpde, blurexpde->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == blendmaskexp) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabblendmaskexp, blendmaskexp->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Vibrance
|
||||
@ -3187,6 +3286,8 @@ void Locallab::setBatchMode(bool batchMode)
|
||||
contrast->showEditedCB();
|
||||
chroma->showEditedCB();
|
||||
sensi->showEditedCB();
|
||||
structcol->showEditedCB();
|
||||
blendmaskcol->showEditedCB();
|
||||
// Exposure
|
||||
expcomp->showEditedCB();
|
||||
hlcompr->showEditedCB();
|
||||
@ -3195,6 +3296,9 @@ void Locallab::setBatchMode(bool batchMode)
|
||||
shcompr->showEditedCB();
|
||||
warm->showEditedCB();
|
||||
sensiex->showEditedCB();
|
||||
structexp->showEditedCB();
|
||||
blurexpde->showEditedCB();
|
||||
blendmaskexp->showEditedCB();
|
||||
// Vibrance
|
||||
saturated->showEditedCB();
|
||||
pastels->showEditedCB();
|
||||
@ -3400,12 +3504,12 @@ void Locallab::enableListener()
|
||||
curvactivConn.block(false);
|
||||
qualitycurveMethodConn.block(false);
|
||||
inversConn.block(false);
|
||||
enaColorMaskConn.block(false);
|
||||
showmaskcolMethodConn.block(false);
|
||||
enaColorMaskConn.block(false);
|
||||
// Exposure
|
||||
enableexposeConn.block(false);
|
||||
enaExpMaskConn.block(false);
|
||||
showmaskexpMethodConn.block(false);
|
||||
enaExpMaskConn.block(false);
|
||||
// Vibrance
|
||||
enablevibranceConn.block(false);
|
||||
pskinsconn.block(false);
|
||||
@ -3447,12 +3551,12 @@ void Locallab::disableListener()
|
||||
curvactivConn.block(true);
|
||||
qualitycurveMethodConn.block(true);
|
||||
inversConn.block(true);
|
||||
enaColorMaskConn.block(true);
|
||||
showmaskcolMethodConn.block(true);
|
||||
enaColorMaskConn.block(true);
|
||||
// Exposure
|
||||
enableexposeConn.block(true);
|
||||
enaExpMaskConn.block(true);
|
||||
showmaskexpMethodConn.block(true);
|
||||
enaExpMaskConn.block(true);
|
||||
// Vibrance
|
||||
enablevibranceConn.block(true);
|
||||
pskinsconn.block(true);
|
||||
@ -3497,6 +3601,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
contrast->setValue(pp->locallab.spots.at(index).contrast);
|
||||
chroma->setValue(pp->locallab.spots.at(index).chroma);
|
||||
sensi->setValue(pp->locallab.spots.at(index).sensi);
|
||||
structcol->setValue(pp->locallab.spots.at(index).structcol);
|
||||
|
||||
if (pp->locallab.spots.at(index).qualitycurveMethod == "none") {
|
||||
qualitycurveMethod->set_active(0);
|
||||
@ -3521,6 +3626,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
CCmaskshape->setCurve(pp->locallab.spots.at(index).CCmaskcurve);
|
||||
LLmaskshape->setCurve(pp->locallab.spots.at(index).LLmaskcurve);
|
||||
HHmaskshape->setCurve(pp->locallab.spots.at(index).HHmaskcurve);
|
||||
blendmaskcol->setValue(pp->locallab.spots.at(index).blendmaskcol);
|
||||
|
||||
// Exposure
|
||||
expexpose->setEnabled(pp->locallab.spots.at(index).expexpose);
|
||||
@ -3531,10 +3637,14 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
shcompr->setValue(pp->locallab.spots.at(index).shcompr);
|
||||
warm->setValue(pp->locallab.spots.at(index).warm);
|
||||
sensiex->setValue(pp->locallab.spots.at(index).sensiex);
|
||||
structexp->setValue(pp->locallab.spots.at(index).structexp);
|
||||
blurexpde->setValue(pp->locallab.spots.at(index).blurexpde);
|
||||
shapeexpos->setCurve(pp->locallab.spots.at(index).excurve);
|
||||
enaExpMask->set_active(pp->locallab.spots.at(index).enaExpMask);
|
||||
CCmaskexpshape->setCurve(pp->locallab.spots.at(index).CCmaskexpcurve);
|
||||
LLmaskexpshape->setCurve(pp->locallab.spots.at(index).LLmaskexpcurve);
|
||||
HHmaskexpshape->setCurve(pp->locallab.spots.at(index).HHmaskexpcurve);
|
||||
blendmaskexp->setValue(pp->locallab.spots.at(index).blendmaskexp);
|
||||
|
||||
// Vibrance
|
||||
expvibrance->setEnabled(pp->locallab.spots.at(index).expvibrance);
|
||||
@ -3687,6 +3797,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
contrast->setEditedState(spotState->contrast ? Edited : UnEdited);
|
||||
chroma->setEditedState(spotState->chroma ? Edited : UnEdited);
|
||||
sensi->setEditedState(spotState->sensi ? Edited : UnEdited);
|
||||
structcol->setEditedState(spotState->structcol ? Edited : UnEdited);
|
||||
|
||||
if (!spotState->qualitycurveMethod) {
|
||||
qualitycurveMethod->set_active_text(M("GENERAL_UNCHANGED"));
|
||||
@ -3701,7 +3812,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
CCmaskshape->setUnChanged(!spotState->CCmaskcurve);
|
||||
LLmaskshape->setUnChanged(!spotState->LLmaskcurve);
|
||||
HHmaskshape->setUnChanged(!spotState->HHmaskcurve);
|
||||
|
||||
blendmaskcol->setEditedState(spotState->blendmaskcol ? Edited : UnEdited);
|
||||
|
||||
// Exposure
|
||||
expexpose->set_inconsistent(!spotState->expexpose);
|
||||
@ -3712,10 +3823,14 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
warm->setEditedState(spotState->warm ? Edited : UnEdited);
|
||||
shcompr->setEditedState(spotState->shcompr ? Edited : UnEdited);
|
||||
sensiex->setEditedState(spotState->sensiex ? Edited : UnEdited);
|
||||
structexp->setEditedState(spotState->structexp ? Edited : UnEdited);
|
||||
blurexpde->setEditedState(spotState->blurexpde ? Edited : UnEdited);
|
||||
shapeexpos->setUnChanged(!spotState->excurve);
|
||||
enaExpMask->set_inconsistent(multiImage && !spotState->enaExpMask);
|
||||
CCmaskexpshape->setUnChanged(!spotState->CCmaskexpcurve);
|
||||
LLmaskexpshape->setUnChanged(!spotState->LLmaskexpcurve);
|
||||
HHmaskexpshape->setUnChanged(!spotState->HHmaskexpcurve);
|
||||
blendmaskexp->setEditedState(spotState->blendmaskexp ? Edited : UnEdited);
|
||||
|
||||
// Vibrance
|
||||
expvibrance->set_inconsistent(!spotState->expvibrance);
|
||||
|
@ -78,6 +78,7 @@ private:
|
||||
DiagonalCurveEditor* shapeexpos;
|
||||
FlatCurveEditor* CCmaskexpshape;
|
||||
FlatCurveEditor* LLmaskexpshape;
|
||||
FlatCurveEditor* HHmaskexpshape;
|
||||
// Vibrance
|
||||
CurveEditorGroup* const curveEditorGG;
|
||||
DiagonalCurveEditor* skinTonesCurve;
|
||||
@ -91,6 +92,8 @@ private:
|
||||
Adjuster* const contrast;
|
||||
Adjuster* const chroma;
|
||||
Adjuster* const sensi;
|
||||
Adjuster* const structcol;
|
||||
Adjuster* const blendmaskcol;
|
||||
// Exposure
|
||||
Adjuster* const expcomp;
|
||||
Adjuster* const hlcompr;
|
||||
@ -99,6 +102,9 @@ private:
|
||||
Adjuster* const shcompr;
|
||||
Adjuster* const warm;
|
||||
Adjuster* const sensiex;
|
||||
Adjuster* const structexp;
|
||||
Adjuster* const blurexpde;
|
||||
Adjuster* const blendmaskexp;
|
||||
// Vibrance
|
||||
Adjuster* const saturated;
|
||||
Adjuster* const pastels;
|
||||
|
@ -209,6 +209,27 @@ Glib::ustring MultiLangMgr::getOSUserLanguage ()
|
||||
{
|
||||
Glib::ustring langName ("default");
|
||||
|
||||
#if defined (WIN32)
|
||||
|
||||
const LCID localeID = GetUserDefaultLCID ();
|
||||
TCHAR localeName[18];
|
||||
|
||||
const int langLen = GetLocaleInfo (localeID, LOCALE_SISO639LANGNAME, localeName, 9);
|
||||
if (langLen <= 0) {
|
||||
return langName;
|
||||
}
|
||||
|
||||
localeName[langLen - 1] = '-';
|
||||
|
||||
const int countryLen = GetLocaleInfo (localeID, LOCALE_SISO3166CTRYNAME, &localeName[langLen], 9);
|
||||
if (countryLen <= 0) {
|
||||
return langName;
|
||||
}
|
||||
|
||||
langName = localeToLang (localeName);
|
||||
|
||||
#elif defined (__linux__) || defined (__APPLE__)
|
||||
|
||||
// Query the current locale and force decimal point to dot.
|
||||
const char *locale = getenv("LANG");
|
||||
if (locale || (locale = setlocale (LC_CTYPE, ""))) {
|
||||
@ -217,5 +238,7 @@ Glib::ustring MultiLangMgr::getOSUserLanguage ()
|
||||
|
||||
setlocale (LC_NUMERIC, "C");
|
||||
|
||||
#endif
|
||||
|
||||
return langName;
|
||||
}
|
||||
|
@ -948,6 +948,8 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).contrast = locallab.spots.at(j).contrast && pSpot.contrast == otherSpot.contrast;
|
||||
locallab.spots.at(j).chroma = locallab.spots.at(j).chroma && pSpot.chroma == otherSpot.chroma;
|
||||
locallab.spots.at(j).sensi = locallab.spots.at(j).sensi && pSpot.sensi == otherSpot.sensi;
|
||||
locallab.spots.at(j).structcol = locallab.spots.at(j).structcol && pSpot.structcol == otherSpot.structcol;
|
||||
locallab.spots.at(j).blendmaskcol = locallab.spots.at(j).blendmaskcol && pSpot.blendmaskcol == otherSpot.blendmaskcol;
|
||||
locallab.spots.at(j).qualitycurveMethod = locallab.spots.at(j).qualitycurveMethod && pSpot.qualitycurveMethod == otherSpot.qualitycurveMethod;
|
||||
locallab.spots.at(j).llcurve = locallab.spots.at(j).llcurve && pSpot.llcurve == otherSpot.llcurve;
|
||||
locallab.spots.at(j).cccurve = locallab.spots.at(j).cccurve && pSpot.cccurve == otherSpot.cccurve;
|
||||
@ -967,10 +969,14 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).shcompr = locallab.spots.at(j).shcompr && pSpot.shcompr == otherSpot.shcompr;
|
||||
locallab.spots.at(j).warm = locallab.spots.at(j).warm && pSpot.warm == otherSpot.warm;
|
||||
locallab.spots.at(j).sensiex = locallab.spots.at(j).sensiex && pSpot.sensiex == otherSpot.sensiex;
|
||||
locallab.spots.at(j).structexp = locallab.spots.at(j).structexp && pSpot.structexp == otherSpot.structexp;
|
||||
locallab.spots.at(j).blurexpde = locallab.spots.at(j).blurexpde && pSpot.blurexpde == otherSpot.blurexpde;
|
||||
locallab.spots.at(j).excurve = locallab.spots.at(j).excurve && pSpot.excurve == otherSpot.excurve;
|
||||
locallab.spots.at(j).enaExpMask = locallab.spots.at(j).enaExpMask && pSpot.enaExpMask == otherSpot.enaExpMask;
|
||||
locallab.spots.at(j).CCmaskexpcurve = locallab.spots.at(j).CCmaskexpcurve && pSpot.CCmaskexpcurve == otherSpot.CCmaskexpcurve;
|
||||
locallab.spots.at(j).LLmaskexpcurve = locallab.spots.at(j).LLmaskexpcurve && pSpot.LLmaskexpcurve == otherSpot.LLmaskexpcurve;
|
||||
locallab.spots.at(j).HHmaskexpcurve = locallab.spots.at(j).HHmaskexpcurve && pSpot.HHmaskexpcurve == otherSpot.HHmaskexpcurve;
|
||||
locallab.spots.at(j).blendmaskexp = locallab.spots.at(j).blendmaskexp && pSpot.blendmaskexp == otherSpot.blendmaskexp;
|
||||
// Vibrance
|
||||
locallab.spots.at(j).expvibrance = locallab.spots.at(j).expvibrance && pSpot.expvibrance == otherSpot.expvibrance;
|
||||
locallab.spots.at(j).saturated = locallab.spots.at(j).saturated && pSpot.saturated == otherSpot.saturated;
|
||||
@ -2575,6 +2581,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).sensi = mods.locallab.spots.at(i).sensi;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).structcol) {
|
||||
toEdit.locallab.spots.at(i).structcol = mods.locallab.spots.at(i).structcol;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).blendmaskcol) {
|
||||
toEdit.locallab.spots.at(i).blendmaskcol = mods.locallab.spots.at(i).blendmaskcol;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).qualitycurveMethod) {
|
||||
toEdit.locallab.spots.at(i).qualitycurveMethod = mods.locallab.spots.at(i).qualitycurveMethod;
|
||||
}
|
||||
@ -2648,6 +2662,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).sensiex = mods.locallab.spots.at(i).sensiex;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).structexp) {
|
||||
toEdit.locallab.spots.at(i).structexp = mods.locallab.spots.at(i).structexp;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).blurexpde) {
|
||||
toEdit.locallab.spots.at(i).blurexpde = mods.locallab.spots.at(i).blurexpde;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).excurve) {
|
||||
toEdit.locallab.spots.at(i).excurve = mods.locallab.spots.at(i).excurve;
|
||||
}
|
||||
@ -2664,6 +2686,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).LLmaskexpcurve = mods.locallab.spots.at(i).LLmaskexpcurve;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).HHmaskexpcurve) {
|
||||
toEdit.locallab.spots.at(i).HHmaskexpcurve = mods.locallab.spots.at(i).HHmaskexpcurve;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).blendmaskexp) {
|
||||
toEdit.locallab.spots.at(i).blendmaskexp = mods.locallab.spots.at(i).blendmaskexp;
|
||||
}
|
||||
|
||||
// Vibrance
|
||||
if (locallab.spots.at(i).expvibrance) {
|
||||
toEdit.locallab.spots.at(i).expvibrance = mods.locallab.spots.at(i).expvibrance;
|
||||
@ -3915,6 +3945,8 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
contrast(v),
|
||||
chroma(v),
|
||||
sensi(v),
|
||||
structcol(v),
|
||||
blendmaskcol(v),
|
||||
qualitycurveMethod(v),
|
||||
llcurve(v),
|
||||
cccurve(v),
|
||||
@ -3934,10 +3966,14 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
shcompr(v),
|
||||
warm(v),
|
||||
sensiex(v),
|
||||
structexp(v),
|
||||
blurexpde(v),
|
||||
excurve(v),
|
||||
enaExpMask(v),
|
||||
CCmaskexpcurve(v),
|
||||
LLmaskexpcurve(v),
|
||||
HHmaskexpcurve(v),
|
||||
blendmaskexp(v),
|
||||
// Vibrance
|
||||
expvibrance(v),
|
||||
saturated(v),
|
||||
@ -4047,6 +4083,8 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
contrast = v;
|
||||
chroma = v;
|
||||
sensi = v;
|
||||
structcol = v;
|
||||
blendmaskcol = v;
|
||||
qualitycurveMethod = v;
|
||||
llcurve = v;
|
||||
cccurve = v;
|
||||
@ -4066,10 +4104,14 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
shcompr = v;
|
||||
warm = v;
|
||||
sensiex = v;
|
||||
structexp = v;
|
||||
blurexpde = v;
|
||||
excurve = v;
|
||||
enaExpMask = v;
|
||||
CCmaskexpcurve = v;
|
||||
LLmaskexpcurve = v;
|
||||
HHmaskexpcurve = v;
|
||||
blendmaskexp = v;
|
||||
// Vibrance
|
||||
expvibrance = v;
|
||||
saturated = v;
|
||||
|
@ -487,6 +487,8 @@ public:
|
||||
bool contrast;
|
||||
bool chroma;
|
||||
bool sensi;
|
||||
bool structcol;
|
||||
bool blendmaskcol;
|
||||
bool qualitycurveMethod;
|
||||
bool llcurve;
|
||||
bool cccurve;
|
||||
@ -506,10 +508,14 @@ public:
|
||||
bool shcompr;
|
||||
bool warm;
|
||||
bool sensiex;
|
||||
bool structexp;
|
||||
bool blurexpde;
|
||||
bool excurve;
|
||||
bool enaExpMask;
|
||||
bool CCmaskexpcurve;
|
||||
bool LLmaskexpcurve;
|
||||
bool HHmaskexpcurve;
|
||||
bool blendmaskexp;
|
||||
// Vibrance
|
||||
bool expvibrance;
|
||||
bool saturated;
|
||||
|
Loading…
x
Reference in New Issue
Block a user