diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 2f8093799..19d1ac3b2 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -518,8 +518,6 @@ PREFERENCES_DARKFRAMESHOTS;trets PREFERENCES_DARKFRAMETEMPLATES;plantilles PREFERENCES_DATEFORMAT;Format de data PREFERENCES_DATEFORMATHINT;Podeu fer servir les següents cadenes formatades:\n%y : any\n%m : mes\n%d : dia\n\nPer exemple, el format de data hongarès és:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;Idioma per omissió -PREFERENCES_DEFAULTTHEME;Tema per omissió PREFERENCES_DIRDARKFRAMES;Carpeta de marcs foscos PREFERENCES_DIRHOME;directori home PREFERENCES_DIRLAST;Últim directori usat @@ -966,6 +964,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1018,6 +1017,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !GENERAL_AUTO;Automatic !GENERAL_CLOSE;Close !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_174;CIECAM02 @@ -1305,6 +1305,9 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1398,7 +1401,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1415,7 +1419,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1428,6 +1433,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size !PREFERENCES_LISS;Auto multi-zone smoothing @@ -1469,6 +1475,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1602,7 +1609,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1627,6 +1634,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index c726095bb..4a9120abb 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -417,8 +417,6 @@ PREFERENCES_D60;6000K PREFERENCES_D65;6500K PREFERENCES_DATEFORMAT;日期格式 PREFERENCES_DATEFORMATHINT;可以使用下列控制符:\n%y : 年\n%m : 月h\n%d : 日\n\n例如,中文日期格式:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;缺省语言 -PREFERENCES_DEFAULTTHEME;默认主题 PREFERENCES_DIRHOME;用户文件路径 PREFERENCES_DIRLAST;上次访问路径 PREFERENCES_DIROTHER;其他 @@ -797,6 +795,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !CURVEEDITOR_PARAMETRIC;Parametric !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -878,6 +877,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -1223,6 +1223,9 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1331,6 +1334,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency +!PREFERENCES_D50_OLD;5000K !PREFERENCES_DARKFRAME;Dark-Frame !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots @@ -1354,7 +1358,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1369,6 +1374,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1431,6 +1437,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1540,7 +1547,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORAPP_LABEL_SCENE;Scene Conditions !TP_COLORAPP_LABEL_VIEWING;Viewing Conditions !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1559,6 +1566,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index 24b6aed27..e2d457c14 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -253,8 +253,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height PREFERENCES_CLIPPINGIND;高光提示 PREFERENCES_DATEFORMAT;日期格式 PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;預設語言 -PREFERENCES_DEFAULTTHEME;Default theme PREFERENCES_DIRHOME;用戶檔路徑 PREFERENCES_DIRLAST;上次訪問路徑 PREFERENCES_DIROTHER;其他 @@ -457,6 +455,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -582,6 +581,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -963,6 +963,9 @@ TP_WBALANCE_TEMPERATURE;色溫 !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1134,7 +1137,8 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1163,7 +1167,8 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1178,6 +1183,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1243,6 +1249,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1403,7 +1410,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1428,6 +1435,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 7b64b64dc..d9646626c 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -1001,8 +1001,6 @@ PREFERENCES_DATEFORMAT;Formát data PREFERENCES_DATEFORMATHINT;Lze použít následující formátovací řetězce:\n%y\t- rok (year)\n%m\t- měsíc (month)\n%d\t- den (day)\n\nNapříklad český formát data:\n%d. %m. %y PREFERENCES_DAUB_LABEL;Použít D6 Daubechiesové vlnky namísto D4 PREFERENCES_DAUB_TOOLTIP;Nástroje Redukce šumu a Úrovně vlnky používají Daubechiesové mateřskou vlnku. Pokud místo D4 vyberete D6 zvýší se počet ortogonálních Daubechiesové koeficientů a pravděpodobně zvýší kvalitu úrovní malého měřítka. Není zde rozdíl ve spotřebě paměti nebo délce zpracování. -PREFERENCES_DEFAULTLANG;Výchozí jazyk -PREFERENCES_DEFAULTTHEME;Výchozí vzhled PREFERENCES_DIRDARKFRAMES;Složka tmavých snímků PREFERENCES_DIRHOME;Domovská složka PREFERENCES_DIRLAST;Poslední navštívená složka @@ -2167,3 +2165,17 @@ ZOOMPANEL_ZOOMFITSCREEN;Přizpůsobit obrázek obrazovce\nZkratka: f ZOOMPANEL_ZOOMIN;Přiblížit\nZkratka: + ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!DONT_SHOW_AGAIN;Don't show this message again. +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out +!PREFERENCES_D50_OLD;5000K +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 +!PREFERENCES_LANG;Language +!PREFERENCES_THEME;Theme +!TP_COLORAPP_YB;Yb (mean luminance) diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index 710b92b0e..fc4451910 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -244,8 +244,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Maksimal miniaturehøjde PREFERENCES_CLIPPINGIND;Indikator for udbrændte områder PREFERENCES_DATEFORMAT;Datoformat PREFERENCES_DATEFORMATHINT;Du kan bruge følgende formatindstillinger:\n%y : år\n%m : måned\n%d : dag\n\nDet typiske datoformat i danmark er:\n%d/%m/%y -PREFERENCES_DEFAULTLANG;Sprog -PREFERENCES_DEFAULTTHEME;Tema PREFERENCES_DIRHOME;Standardmappe PREFERENCES_DIRLAST;Sidst anvendte mappe PREFERENCES_DIROTHER;Andet @@ -449,6 +447,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -578,6 +577,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !GENERAL_OPEN;Open !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -959,6 +959,9 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1132,7 +1135,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1161,7 +1165,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1176,6 +1181,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1241,6 +1247,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1401,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1426,6 +1433,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 79b976185..48218cc8d 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -1021,8 +1021,6 @@ PREFERENCES_DATEFORMAT;Format PREFERENCES_DATEFORMATHINT;Die folgenden Variablen können verwendet werden:\n%y : Jahr\n%m : Monat\n%d : Tag\n\nBeispiele:\n%d.%m.%y (übliche deutsche Datumsschreibweise)\n%y-%m-%d (Datumsformat nach ISO 8601 und EN 28601) PREFERENCES_DAUB_LABEL;Benutze Daubechies D6-Wavelets anstatt D4 PREFERENCES_DAUB_TOOLTIP;Rauschreduzierung und Waveletebenen verwenden ein Debauchies Mutter-Wavelet. Wenn Sie D6 statt D4 wählen, erhöhen Sie die Anzahl der orthogonalen Daubechies-Koeffizienten, was die Qualität bei niedrigen Ebenen verbessern kann. Es gibt keinen Unterschied zwischen D4 und D6 im Speicherverbrauch oder in der Verarbeitungszeit. -PREFERENCES_DEFAULTLANG;Sprache für Menüs und Dialoge -PREFERENCES_DEFAULTTHEME;Oberflächendesign PREFERENCES_DIRDARKFRAMES;Dunkelbild-Verzeichnis PREFERENCES_DIRHOME;Benutzer-Verzeichnis PREFERENCES_DIRLAST;Zuletzt geöffnetes Verzeichnis @@ -2187,3 +2185,17 @@ ZOOMPANEL_ZOOMFITSCREEN;An Bildschirm anpassen\nTaste: f ZOOMPANEL_ZOOMIN;Hineinzoomen\nTaste: + ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!DONT_SHOW_AGAIN;Don't show this message again. +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out +!PREFERENCES_D50_OLD;5000K +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 +!PREFERENCES_LANG;Language +!PREFERENCES_THEME;Theme +!TP_COLORAPP_YB;Yb (mean luminance) diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index a9baed7ed..de265b960 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -58,7 +58,6 @@ TP_COLORAPP_CHROMA_M_TOOLTIP;Colourfulness in CIECAM02 differs from L*a*b* and R TP_COLORAPP_CURVEEDITOR3;Colour curve TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colourfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. TP_COLORAPP_LABEL;CIE Colour Appearance Model 2002 -TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Colour Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Colour Management. TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colours to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. TP_COLORAPP_TCMODE_COLORF;Colourfulness TP_COLORTONING_COLOR;Colour @@ -141,6 +140,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !CURVEEDITOR_TOOLTIPSAVE;Save current curve. !CURVEEDITOR_TYPE;Type: !DIRBROWSER_FOLDERS;Folders +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -334,6 +334,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !GENERAL_SAVE;Save !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_B;Show/Hide blue histogram. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. @@ -786,6 +787,9 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT;Add !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !HISTORY_SNAPSHOT;Snapshot @@ -1023,7 +1027,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1035,8 +1040,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y - year\n%m - month\n%d - day\n\nFor example, the ISO 8601 standard dictates the date format as follows:\n%y-%m-%d !PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 !PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. -!PREFERENCES_DEFAULTLANG;Default Language -!PREFERENCES_DEFAULTTHEME;Default Theme !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRHOME;Home directory !PREFERENCES_DIRLAST;Last visited directory @@ -1068,7 +1071,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1087,6 +1091,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_INTENT_PERCEPTUAL;Perceptual !PREFERENCES_INTENT_SATURATION;Saturation !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1172,6 +1177,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_TAB_IMPROC;Image Processing !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1359,6 +1365,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1381,6 +1388,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index d768da5e7..2f32e4419 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -37,6 +37,7 @@ !CURVEEDITOR_TOOLTIPSAVE;Save current curve. !CURVEEDITOR_TYPE;Type: !DIRBROWSER_FOLDERS;Folders +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -235,6 +236,7 @@ !GENERAL_SAVE;Save !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_B;Show/Hide blue histogram. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. @@ -705,6 +707,9 @@ !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT;Add !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !HISTORY_SNAPSHOT;Snapshot @@ -953,7 +958,8 @@ !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -965,8 +971,6 @@ !PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y - year\n%m - month\n%d - day\n\nFor example, the ISO 8601 standard dictates the date format as follows:\n%y-%m-%d !PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 !PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. -!PREFERENCES_DEFAULTLANG;Default Language -!PREFERENCES_DEFAULTTHEME;Default Theme !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRHOME;Home directory !PREFERENCES_DIRLAST;Last visited directory @@ -998,7 +1002,8 @@ !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1020,6 +1025,7 @@ !PREFERENCES_INTENT_RELATIVE;Relative Colorimetric !PREFERENCES_INTENT_SATURATION;Saturation !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1111,6 +1117,7 @@ !PREFERENCES_TAB_IMPROC;Image Processing !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1315,7 +1322,7 @@ !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1340,6 +1347,7 @@ !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index 9d7e4a78c..057c30f88 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -765,8 +765,6 @@ PREFERENCES_DARKFRAMESHOTS;disparos PREFERENCES_DARKFRAMETEMPLATES;plantillas PREFERENCES_DATEFORMAT;Formato de fecha PREFERENCES_DATEFORMATHINT;Puede usar las siguientes variables :\n%y : año\n%m : mes\n%d : dia\n\nPor ejemplo, la fecha en formato Húngaro es: \n%y/%m/%d -PREFERENCES_DEFAULTLANG;Idioma predeterminado -PREFERENCES_DEFAULTTHEME;Tema predeterminado PREFERENCES_DIRDARKFRAMES;Carpeta con las Tomas Negras PREFERENCES_DIRHOME;Carpeta de usuario PREFERENCES_DIRLAST;Última carpeta visitada @@ -1507,6 +1505,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1536,6 +1535,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_299;NR - Chrominance curve !HISTORY_MSG_300;- @@ -1698,6 +1698,9 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1760,11 +1763,13 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_CURVEBBOXPOS_BELOW;Below !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right +!PREFERENCES_D50_OLD;5000K !PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 !PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREYSC;Scene Yb luminance (%) !PREFERENCES_GREYSC18;Yb=18 CIE L#50 !PREFERENCES_GREYSCA;Automatic @@ -1772,6 +1777,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size !PREFERENCES_LISS;Auto multi-zone smoothing @@ -1809,6 +1815,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_SMA;Small (250x287) !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1826,6 +1833,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_CBDL_BEF;Before Black-and-White !TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. +!TP_COLORAPP_YB;Yb (mean luminance) !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index af995e34e..bc7f738f4 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -244,8 +244,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height PREFERENCES_CLIPPINGIND;Itzal/argi moztuen adierazlea PREFERENCES_DATEFORMAT;Data formatua PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;Hizkuntza -PREFERENCES_DEFAULTTHEME;Default theme PREFERENCES_DIRHOME;Etxe karpeta PREFERENCES_DIRLAST;Azkena ikusitako karpeta PREFERENCES_DIROTHER;Besterik @@ -449,6 +447,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -578,6 +577,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !GENERAL_OPEN;Open !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -959,6 +959,9 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1132,7 +1135,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1161,7 +1165,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1176,6 +1181,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1241,6 +1247,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1401,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1426,6 +1433,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 65cf503eb..9d9f32b3b 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -962,8 +962,6 @@ PREFERENCES_DATEFORMAT;Format PREFERENCES_DATEFORMATHINT;Vous pouvez utiliser les paramètres de chaînes formatées suivants:\n%y : année\n%m : mois\n%d : jour\n\nPar exemple, le format de date française est:\n%d/%m/%y PREFERENCES_DAUB_LABEL;Utiliser les ondelettes de Daubechies D6 au lieu de D4 PREFERENCES_DAUB_TOOLTIP;Les outils de Réduction de Bruit et de Niveaux d'Ondelettes utilisent une ondelette de Debauchie mère. Si vous choisissez D6 au lieu de D4 vous augmentez le nombre de coéf. orthogonaux de Daubechies et augmentez probablement la qualité des niveaux de taille moyenne. Il n'y a pas de différence de consommation mémoire ou de temps de traitement entre les deux. -PREFERENCES_DEFAULTLANG;Langue par défaut -PREFERENCES_DEFAULTTHEME;Thème par défaut PREFERENCES_DIRDARKFRAMES;Dossier des images de Trame Noire PREFERENCES_DIRHOME;Racine de mes documents personnels PREFERENCES_DIRLAST;Dernier dossier visité @@ -2129,3 +2127,17 @@ ZOOMPANEL_ZOOMFITSCREEN;Affiche l'image entière\nRaccourci: f ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: + ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!DONT_SHOW_AGAIN;Don't show this message again. +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out +!PREFERENCES_D50_OLD;5000K +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 +!PREFERENCES_LANG;Language +!PREFERENCES_THEME;Theme +!TP_COLORAPP_YB;Yb (mean luminance) diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index 9b9ef809f..ec127d7cd 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -244,8 +244,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height PREFERENCES_CLIPPINGIND;Ένδειξη ψαλιδίσματος PREFERENCES_DATEFORMAT;Διάταξη ημερομηνίας PREFERENCES_DATEFORMATHINT;YΜπορείτε να χρησιμοποιήσετε τις εξής εντολές μορφοποίησης:\n%y : χρονολογία\n%m : μήνας\n%d : ημέρα\n\nΓια παράδειγμα, η μορφοποίηση ημερομηνίας στην Ελλάδα είναι:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;Προεπιλεγμένη γλώσσα -PREFERENCES_DEFAULTTHEME;Προεπιλεγμένο θέμα PREFERENCES_DIRHOME;Τοποθεσία "Home" PREFERENCES_DIRLAST;Τελευταία τοποθεσία που χρησιμοποιήθηκε PREFERENCES_DIROTHER;Άλλο @@ -448,6 +446,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -577,6 +576,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !GENERAL_OPEN;Open !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -958,6 +958,9 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1131,7 +1134,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1160,7 +1164,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1175,6 +1180,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1240,6 +1246,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1400,7 +1407,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1425,6 +1432,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index 7a310e3af..9dc402fd7 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -244,8 +244,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height PREFERENCES_CLIPPINGIND;סימון קיצוץ PREFERENCES_DATEFORMAT;צורת תאריך PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;שפה ברירת המחדל -PREFERENCES_DEFAULTTHEME;Default theme PREFERENCES_DIRHOME;תיקיית הבית PREFERENCES_DIRLAST;תיקיה האחרונה שביקרתי בה PREFERENCES_DIROTHER;אחר @@ -449,6 +447,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -578,6 +577,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !GENERAL_OPEN;Open !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -959,6 +959,9 @@ TP_WBALANCE_TEMPERATURE;מידת חום !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1132,7 +1135,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1161,7 +1165,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1176,6 +1181,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1241,6 +1247,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1401,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1426,6 +1433,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index d6e441796..d26005bfa 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -667,8 +667,6 @@ PREFERENCES_DARKFRAMESHOTS;fotogrammi PREFERENCES_DARKFRAMETEMPLATES;modelli PREFERENCES_DATEFORMAT;Formato della data PREFERENCES_DATEFORMATHINT;Puoi usare le seguenti stringhe di formattazione:\n%y : anno\n%m : mese\n%d : giorno\n\nPer esempio, il formato italiano per la data è:\n%d/%m/%y -PREFERENCES_DEFAULTLANG;Lingua predefinita -PREFERENCES_DEFAULTTHEME;Tema predefinito PREFERENCES_DIRDARKFRAMES;Cartella dei fotogrammi di fondo (Dark Frame) PREFERENCES_DIRHOME;Cartella personale dell'utente (home directory) PREFERENCES_DIRLAST;Ultima cartella visitata @@ -1338,6 +1336,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1366,6 +1365,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_256;NR - Median type !HISTORY_MSG_257;Color Toning @@ -1571,6 +1571,9 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1630,12 +1633,14 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_CURVEBBOXPOS_BELOW;Below !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right +!PREFERENCES_D50_OLD;5000K !PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 !PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_EXPAUT;Expert !PREFERENCES_FILMSIMULATION;Film Simulation !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREYSC;Scene Yb luminance (%) !PREFERENCES_GREYSC18;Yb=18 CIE L#50 !PREFERENCES_GREYSCA;Automatic @@ -1643,6 +1648,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size !PREFERENCES_LISS;Auto multi-zone smoothing @@ -1680,6 +1686,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_SMA;Small (250x287) !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1697,6 +1704,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_CBDL_BEF;Before Black-and-White !TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 74249d80d..1ce714311 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -889,8 +889,6 @@ PREFERENCES_DATEFORMAT;日付の形式 PREFERENCES_DATEFORMATHINT;次の書式を使用することができます:\n%y : 年\n%m : 月\n%d : 日\n\n例として, ハンガリアン記法の日付:\n%y/%m/%d PREFERENCES_DAUB_LABEL;ドビッシー関数のタイプ D4の代わりにD6を使う PREFERENCES_DAUB_TOOLTIP;ノイズ低減とウェーブレットのレベルツールはマザーウェーブレットにドビッシーを使っています。このタイプでD4の代わりにD6を選択すると、直交系であるドビッシーの係数が増えるので、恐らくスケールの小さいレベルは質が向上するでしょう。タイプを変えても処理時間やメモリー使用量に影響はありません。 -PREFERENCES_DEFAULTLANG;デフォルトの言語 -PREFERENCES_DEFAULTTHEME;デフォルトテーマ PREFERENCES_DIRDARKFRAMES;ダークフレーム・ディレクトリ PREFERENCES_DIRHOME;ホーム・ディレクトリ PREFERENCES_DIRLAST;最近参照したディレクトリ @@ -1877,6 +1875,7 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1895,6 +1894,7 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !GENERAL_APPLY;Apply !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_407;Retinex - Method !HISTORY_MSG_408;Retinex - Radius @@ -1949,6 +1949,9 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1983,6 +1986,9 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - !PARTIALPASTE_RAW_PIXELSHIFT;PixelShift !PARTIALPASTE_RETINEX;Retinex !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_D50_OLD;5000K +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 +!PREFERENCES_LANG;Language !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1997,6 +2003,7 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_THEME;Theme !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PROFILEPANEL_PDYNAMIC;Dynamic !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. @@ -2007,6 +2014,7 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - !TP_CBDL_BEF;Before Black-and-White !TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. +!TP_COLORAPP_YB;Yb (mean luminance) !TP_DIRPYRDENOISE_3X3;3×3 !TP_DIRPYRDENOISE_3X3_SOFT;3×3 soft !TP_DIRPYRDENOISE_5X5;5×5 diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index f65d66ad4..c0ee7ec5f 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -244,8 +244,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Keša maksimālais sīktēla augstums PREFERENCES_CLIPPINGIND;Cirpšanas pazīme PREFERENCES_DATEFORMAT;Datuma formāts PREFERENCES_DATEFORMATHINT;Jūs varat lietot šāduas formatēšanas parametrus:\n%y : gads\n%m : mēnesis\n%d : diena\n\nPiemēram, ungāru datuma formāts ir:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;Noklusētā valoda -PREFERENCES_DEFAULTTHEME;Noklusētā tēma PREFERENCES_DIRHOME;Mājas mape PREFERENCES_DIRLAST;Pēdējā lietotā mape PREFERENCES_DIROTHER;Cita @@ -449,6 +447,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -578,6 +577,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !GENERAL_OPEN;Open !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -959,6 +959,9 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1132,7 +1135,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1161,7 +1165,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1176,6 +1181,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1241,6 +1247,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1401,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1426,6 +1433,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index ed93eeb98..557c31685 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -499,8 +499,6 @@ PREFERENCES_DARKFRAMESHOTS;kép PREFERENCES_DARKFRAMETEMPLATES;sablonok PREFERENCES_DATEFORMAT;Dátumformátum PREFERENCES_DATEFORMATHINT;A következő jeleket lehet használni:\n%y : év\n%m : hónap\n%d : nap\n\nPéldául a magyar dátumformátum:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;Alapértelmezett nyelv -PREFERENCES_DEFAULTTHEME;Alapértelmezett kinézet PREFERENCES_DIRDARKFRAMES;Dark frame könyvtára PREFERENCES_DIRHOME;Saját könyvtár PREFERENCES_DIRLAST;Utoljára látogatott könyvtár @@ -881,6 +879,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -939,6 +938,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !GENERAL_CLOSE;Close !GENERAL_OPEN;Open !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. !HISTORY_MSG_166;Exposure - Reset @@ -1234,6 +1234,9 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1334,7 +1337,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1351,7 +1355,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1364,6 +1369,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size !PREFERENCES_LISS;Auto multi-zone smoothing @@ -1406,6 +1412,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1553,7 +1560,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1578,6 +1585,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 737b8e252..2963f835f 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -974,8 +974,6 @@ PREFERENCES_DATEFORMAT;Datumformaat PREFERENCES_DATEFORMATHINT;U kunt de volgende formaten gebruiken:\n%y : jaar\n%m : maand\n%d : dag\n\nHet Nederlandse datumformaat is bijvoorbeeld:\n%d/%m/%y PREFERENCES_DAUB_LABEL;Gebruik Daubechies D6 wavelets in plaats van D4 PREFERENCES_DAUB_TOOLTIP;De Ruisonderdrukking en Wavelet niveaus gebruiken de Debauchies moeder wavelet. Als je D6 gebruikt in plaats van D4 vergroot het aantal orthogonale Daubechies coëfficiënten en dit verbeterd waarschijnlijk de kwaliteit van de lage niveaus. -PREFERENCES_DEFAULTLANG;Standaardtaal -PREFERENCES_DEFAULTTHEME;Standaardthema PREFERENCES_DIRDARKFRAMES;Map met donkerframes PREFERENCES_DIRHOME;Standaardmap PREFERENCES_DIRLAST;Laatst bezochte map @@ -2141,11 +2139,21 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!DONT_SHOW_AGAIN;Don't show this message again. +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_441;Retinex - Gain transmission !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. +!PREFERENCES_D50_OLD;5000K +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 +!PREFERENCES_LANG;Language !PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file !PREFERENCES_PROFILESAVELOCATION;Processing profile saving location +!PREFERENCES_THEME;Theme +!TP_COLORAPP_YB;Yb (mean luminance) !TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts. !TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Equalize per channel !TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Enabled: Equalize the RGB channels individually.\nDisabled: Use same equalization factor for all channels. diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index 1291fd772..12f9ce694 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -244,8 +244,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Maksimal Thumbnail Høyde PREFERENCES_CLIPPINGIND;Markerings-indikasjon PREFERENCES_DATEFORMAT;Datoformat PREFERENCES_DATEFORMATHINT;Du kan bruke følgende formattering:\n%y : år\n%m : måned\n%d : dag\n\nF. eks. er ungarsk datoformat:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;Programspråk -PREFERENCES_DEFAULTTHEME;Standard tema PREFERENCES_DIRHOME;Hjemmemappe PREFERENCES_DIRLAST;Sidste besøkte mappe PREFERENCES_DIROTHER;Annen @@ -448,6 +446,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -577,6 +576,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !GENERAL_OPEN;Open !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -958,6 +958,9 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1131,7 +1134,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1160,7 +1164,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1175,6 +1180,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1240,6 +1246,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1400,7 +1407,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1425,6 +1432,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 8b770dfcf..4ca9931d4 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -720,8 +720,6 @@ PREFERENCES_DARKFRAMESHOTS;zdjęć(ia) PREFERENCES_DARKFRAMETEMPLATES;szablonów(ny) PREFERENCES_DATEFORMAT;Format daty PREFERENCES_DATEFORMATHINT;Dozwolone są następujące kody formatujące:\n%y - rok\n%m - miesiąc\n%d - dzień\n\nNa przykład według standardu ISO 8601 format daty wygląda następująco:\n%y-%m-%d -PREFERENCES_DEFAULTLANG;Domyślny język -PREFERENCES_DEFAULTTHEME;Domyślny temat PREFERENCES_DIRDARKFRAMES;Katalog z czarnymi klatkami PREFERENCES_DIRHOME;Katalog domowy PREFERENCES_DIRLAST;Ostatnio odwiedzony katalog @@ -1465,6 +1463,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1493,6 +1492,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_299;NR - Chrominance curve !HISTORY_MSG_300;- @@ -1655,6 +1655,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1708,11 +1711,13 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_CURVEBBOXPOS_BELOW;Below !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right +!PREFERENCES_D50_OLD;5000K !PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 !PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREYSC;Scene Yb luminance (%) !PREFERENCES_GREYSC18;Yb=18 CIE L#50 !PREFERENCES_GREYSCA;Automatic @@ -1720,6 +1725,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size !PREFERENCES_LISS;Auto multi-zone smoothing @@ -1757,6 +1763,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_SMA;Small (250x287) !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1774,6 +1781,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_CBDL_BEF;Before Black-and-White !TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. +!TP_COLORAPP_YB;Yb (mean luminance) !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index 00b50d4a4..53f4593b8 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -720,8 +720,6 @@ PREFERENCES_DARKFRAMESHOTS;zdjec(ia) PREFERENCES_DARKFRAMETEMPLATES;szablonow(ny) PREFERENCES_DATEFORMAT;Format daty PREFERENCES_DATEFORMATHINT;Dozwolone sa nastepujace kody formatujace:\n%y - rok\n%m - miesiac\n%d - dzien\n\nNa przyklad wedlug standardu ISO 8601 format daty wyglada nastepujaco:\n%y-%m-%d -PREFERENCES_DEFAULTLANG;Domyslny jezyk -PREFERENCES_DEFAULTTHEME;Domyslny temat PREFERENCES_DIRDARKFRAMES;Katalog z czarnymi klatkami PREFERENCES_DIRHOME;Katalog domowy PREFERENCES_DIRLAST;Ostatnio odwiedzony katalog @@ -1465,6 +1463,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1493,6 +1492,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_299;NR - Chrominance curve !HISTORY_MSG_300;- @@ -1655,6 +1655,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1708,11 +1711,13 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_CURVEBBOXPOS_BELOW;Below !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right +!PREFERENCES_D50_OLD;5000K !PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 !PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREYSC;Scene Yb luminance (%) !PREFERENCES_GREYSC18;Yb=18 CIE L#50 !PREFERENCES_GREYSCA;Automatic @@ -1720,6 +1725,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size !PREFERENCES_LISS;Auto multi-zone smoothing @@ -1757,6 +1763,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_SMA;Small (250x287) !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1774,6 +1781,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_CBDL_BEF;Before Black-and-White !TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. +!TP_COLORAPP_YB;Yb (mean luminance) !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 93a0f5b9e..3f1416110 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -244,8 +244,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Tamanho máximo das miniaturas PREFERENCES_CLIPPINGIND;Recortando indicação PREFERENCES_DATEFORMAT;Formato de data PREFERENCES_DATEFORMATHINT;Você pode usar as seguintes formatações:\n%a : ano\n%m : mês\n%d : dia\n\nPor exemplo, o formato de data húngaro é:\n%a/%m/%d -PREFERENCES_DEFAULTLANG;Idioma padrão -PREFERENCES_DEFAULTTHEME;Tema padrão PREFERENCES_DIRHOME;Directory inicial PREFERENCES_DIRLAST;Último directory visitado PREFERENCES_DIROTHER;Outro @@ -449,6 +447,7 @@ TP_WBALANCE_TEMPERATURE;Temperatura !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -578,6 +577,7 @@ TP_WBALANCE_TEMPERATURE;Temperatura !GENERAL_OPEN;Open !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -959,6 +959,9 @@ TP_WBALANCE_TEMPERATURE;Temperatura !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1132,7 +1135,8 @@ TP_WBALANCE_TEMPERATURE;Temperatura !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1161,7 +1165,8 @@ TP_WBALANCE_TEMPERATURE;Temperatura !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1176,6 +1181,7 @@ TP_WBALANCE_TEMPERATURE;Temperatura !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1241,6 +1247,7 @@ TP_WBALANCE_TEMPERATURE;Temperatura !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1401,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;Temperatura !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1426,6 +1433,7 @@ TP_WBALANCE_TEMPERATURE;Temperatura !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index e04f36fe7..e8e120883 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -651,8 +651,6 @@ PREFERENCES_DARKFRAMESHOTS;снимков PREFERENCES_DARKFRAMETEMPLATES;шаблонов PREFERENCES_DATEFORMAT;Формат даты PREFERENCES_DATEFORMATHINT;Вы можете использовать следующие элементы форматирования:\n%y: год\n%m: месяц\n%d: день\n\nНапример, венгерский формат даты такой:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;Язык по умолчанию -PREFERENCES_DEFAULTTHEME;Тема по умолчанию PREFERENCES_DIRDARKFRAMES;Каталог размещения темновых кадров PREFERENCES_DIRHOME;Домашний каталог PREFERENCES_DIRLAST;Последний каталог @@ -1274,6 +1272,7 @@ ZOOMPANEL_ZOOMOUT;Удалить - !CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1305,6 +1304,7 @@ ZOOMPANEL_ZOOMOUT;Удалить - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_252;CbDL - Skin tar/prot !HISTORY_MSG_253;CbDL - Reduce artifacts @@ -1514,6 +1514,9 @@ ZOOMPANEL_ZOOMOUT;Удалить - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1584,12 +1587,14 @@ ZOOMPANEL_ZOOMOUT;Удалить - !PREFERENCES_CURVEBBOXPOS_BELOW;Below !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right +!PREFERENCES_D50_OLD;5000K !PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 !PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_EXPAUT;Expert !PREFERENCES_FILMSIMULATION;Film Simulation !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREYSC;Scene Yb luminance (%) !PREFERENCES_GREYSC18;Yb=18 CIE L#50 !PREFERENCES_GREYSCA;Automatic @@ -1599,6 +1604,7 @@ ZOOMPANEL_ZOOMOUT;Удалить - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size !PREFERENCES_LISS;Auto multi-zone smoothing @@ -1637,6 +1643,7 @@ ZOOMPANEL_ZOOMOUT;Удалить - !PREFERENCES_SMA;Small (250x287) !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1668,7 +1675,7 @@ ZOOMPANEL_ZOOMOUT;Удалить - !TP_COLORAPP_LABEL_VIEWING;Viewing Conditions !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SURROUND;Surround @@ -1691,6 +1698,7 @@ ZOOMPANEL_ZOOMOUT;Удалить - !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 35b317a09..be9d945e4 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -637,8 +637,6 @@ PREFERENCES_DARKFRAMESHOTS;снимака PREFERENCES_DARKFRAMETEMPLATES;шаблони PREFERENCES_DATEFORMAT;Формат датума PREFERENCES_DATEFORMATHINT;Можете задати следеће формате:\n%y :година\n%m : месец\n%d : дан\n\nУ Србији се највише користи:\n%d.%m.%y -PREFERENCES_DEFAULTLANG;Језик програма -PREFERENCES_DEFAULTTHEME;Тема програма PREFERENCES_DIRDARKFRAMES;Директоријум тамног кадра PREFERENCES_DIRHOME;Лични директоријум PREFERENCES_DIRLAST;Последњи директоријум @@ -1296,6 +1294,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !DIRBROWSER_FOLDERS;Folders +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1339,6 +1338,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_252;CbDL - Skin tar/prot !HISTORY_MSG_253;CbDL - Reduce artifacts !HISTORY_MSG_254;CbDL - Skin hue @@ -1547,6 +1547,9 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1616,12 +1619,14 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_CURVEBBOXPOS_BELOW;Below !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right +!PREFERENCES_D50_OLD;5000K !PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 !PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_EXPAUT;Expert !PREFERENCES_FILMSIMULATION;Film Simulation !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREYSC;Scene Yb luminance (%) !PREFERENCES_GREYSC18;Yb=18 CIE L#50 !PREFERENCES_GREYSCA;Automatic @@ -1631,6 +1636,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size !PREFERENCES_LISS;Auto multi-zone smoothing @@ -1669,6 +1675,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_SMA;Small (250x287) !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1689,6 +1696,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_CBDL_BEF;Before Black-and-White !TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index 136125eb2..6cfde941a 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -637,8 +637,6 @@ PREFERENCES_DARKFRAMESHOTS;snimaka PREFERENCES_DARKFRAMETEMPLATES;šabloni PREFERENCES_DATEFORMAT;Format datuma PREFERENCES_DATEFORMATHINT;Možete zadati sledeće formate:\n%y :godina\n%m : mesec\n%d : dan\n\nU Srbiji se najviše koristi:\n%d.%m.%y -PREFERENCES_DEFAULTLANG;Jezik programa -PREFERENCES_DEFAULTTHEME;Tema programa PREFERENCES_DIRDARKFRAMES;Direktorijum tamnog kadra PREFERENCES_DIRHOME;Lični direktorijum PREFERENCES_DIRLAST;Poslednji direktorijum @@ -1296,6 +1294,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !DIRBROWSER_FOLDERS;Folders +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1339,6 +1338,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_252;CbDL - Skin tar/prot !HISTORY_MSG_253;CbDL - Reduce artifacts !HISTORY_MSG_254;CbDL - Skin hue @@ -1547,6 +1547,9 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1616,12 +1619,14 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_CURVEBBOXPOS_BELOW;Below !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right +!PREFERENCES_D50_OLD;5000K !PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 !PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_EXPAUT;Expert !PREFERENCES_FILMSIMULATION;Film Simulation !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREYSC;Scene Yb luminance (%) !PREFERENCES_GREYSC18;Yb=18 CIE L#50 !PREFERENCES_GREYSCA;Automatic @@ -1631,6 +1636,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size !PREFERENCES_LISS;Auto multi-zone smoothing @@ -1669,6 +1675,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_SMA;Small (250x287) !PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1689,6 +1696,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_CBDL_BEF;Before Black-and-White !TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index 326608fb1..747ec5af5 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -288,8 +288,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Maximálna výška zmenšenín PREFERENCES_CLIPPINGIND;Indikácia orezu PREFERENCES_DATEFORMAT;Formát dátumu PREFERENCES_DATEFORMATHINT;Môžete použiť nasledujúce formátovacie reťazce:\n%y : rok\n%m : mesiac\n%d : deň\n\nNapríklad, slovenský formát je:\n%d.%m.%y -PREFERENCES_DEFAULTLANG;Predvolený jazyk -PREFERENCES_DEFAULTTHEME;Predvolený vzhľad PREFERENCES_DIRHOME;Domovský adresár PREFERENCES_DIRLAST;Posledný navštívený adresár PREFERENCES_DIROTHER;Iný @@ -530,6 +528,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !CURVEEDITOR_MINMAXCPOINTS;Equalizer !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -650,6 +649,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -1021,6 +1021,9 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1182,7 +1185,8 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1210,7 +1214,8 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1225,6 +1230,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1284,6 +1290,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1440,7 +1447,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1465,6 +1472,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index 78ea992cb..ed92a41a8 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -244,8 +244,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Suurin esikatselukuvan korkeus PREFERENCES_CLIPPINGIND;Leikkautuminen PREFERENCES_DATEFORMAT;Päivämäärän muoto PREFERENCES_DATEFORMATHINT;Voit käyttää seuraavia komentoja:\n%y : vuosi\n%m : kuukausi\n%d : päivä\n\nEsimerkiksi, pp.kk.vvvv:\n%d.%m.%y -PREFERENCES_DEFAULTLANG;Oletuskieli -PREFERENCES_DEFAULTTHEME;Oletusteema PREFERENCES_DIRHOME;Kotihakemisto PREFERENCES_DIRLAST;Viimeksi käytetty hakemisto PREFERENCES_DIROTHER;Muu @@ -450,6 +448,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -579,6 +578,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !GENERAL_OPEN;Open !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -960,6 +960,9 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1133,7 +1136,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1162,7 +1166,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1177,6 +1182,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1242,6 +1248,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1401,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1426,6 +1433,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index a2fd6d0d7..7c14dca46 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -878,8 +878,6 @@ PREFERENCES_DATEFORMAT;Datumformat PREFERENCES_DATEFORMATHINT;Du kan använda följande format:\n%y: år\n%m: månad\n%d: dag\n\nTill exempel är det svenska datumformatet:\n%y-%m-%d PREFERENCES_DAUB_LABEL;Använd Daubechies D6-wavelets istället för D4 PREFERENCES_DAUB_TOOLTIP;Brusreduceringen och wavelet-verktyget använder en Debauchies moder-wavelet. Om du väljer D6 istället för D4 ökas antalet ortogonala Daubechies-koefficienter och troligtvis ökas också kvaliteten på de småskaliga nivåerna. Det blir ingen skillnad i minnesanvändning eller beräkningstid. -PREFERENCES_DEFAULTLANG;Förvalt språk -PREFERENCES_DEFAULTTHEME;Förvalt tema PREFERENCES_DIRDARKFRAMES;Katalog för svartbilder PREFERENCES_DIRHOME;Hemkatalog PREFERENCES_DIRLAST;Senaste besökta katalog @@ -1888,6 +1886,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -1903,6 +1902,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !EXPORT_USE_FAST_PIPELINE_TIP;Use a dedicated processing pipeline for images in Fast Export mode, that trades speed for quality. Resizing of the image is done as early as possible, instead of doing it at the end like in the normal pipeline. The speedup can be significant, but be prepared to see artifacts and a general degradation of output quality. !EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTORY_MSG_257;Color Toning !HISTORY_MSG_288;Flat Field - Clip control !HISTORY_MSG_289;Flat Field - Clip control - Auto @@ -1942,6 +1942,9 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1974,7 +1977,10 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;PixelShift !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_D50_OLD;5000K +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language !PREFERENCES_LISS;Auto multi-zone smoothing !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor @@ -1987,8 +1993,10 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_THEME;Theme !PROFILEPANEL_PDYNAMIC;Dynamic !TP_CBDL_METHOD;Process located +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index fd29ae6be..5d260d926 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -244,8 +244,6 @@ PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height PREFERENCES_CLIPPINGIND;Kırpma gösterme PREFERENCES_DATEFORMAT;Tarih biçimi PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d -PREFERENCES_DEFAULTLANG;Varsayılan dil -PREFERENCES_DEFAULTTHEME;Default theme PREFERENCES_DIRHOME;Kullanıcı dizini PREFERENCES_DIRLAST;Son gidilen dizin PREFERENCES_DIROTHER;Diğer @@ -449,6 +447,7 @@ TP_WBALANCE_TEMPERATURE;Isı !CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. !CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. !CURVEEDITOR_TYPE;Type: +!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -578,6 +577,7 @@ TP_WBALANCE_TEMPERATURE;Isı !GENERAL_OPEN;Open !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning +!GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. @@ -959,6 +959,9 @@ TP_WBALANCE_TEMPERATURE;Isı !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_474;PS - Equalize !HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. @@ -1132,7 +1135,8 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path !PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -!PREFERENCES_D50;5000K +!PREFERENCES_D50;Settings in main menu +!PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K @@ -1161,7 +1165,8 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_GREY05;Yb=05 CIE L#30 !PREFERENCES_GREY10;Yb=10 CIE L#40 !PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Yb=18 CIE L#50 +!PREFERENCES_GREY18;Settings in main menu +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_GREY23;Yb=23 CIE L#55 !PREFERENCES_GREY30;Yb=30 CIE L#60 !PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1176,6 +1181,7 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +!PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language !PREFERENCES_LEVAUTDN;Denoising level !PREFERENCES_LEVDN;Cell size @@ -1241,6 +1247,7 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance & Quality !PREFERENCES_TAB_SOUND;Sounds +!PREFERENCES_THEME;Theme !PREFERENCES_TIMAX;High !PREFERENCES_TINB;Number of tiles !PREFERENCES_TISTD;Standard @@ -1400,7 +1407,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_COLORAPP_LIGHT;Lightness (J) !TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. !TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Preferences > Color Management.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Preferences - Color Management. +!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. !TP_COLORAPP_RSTPRO;Red & skin-tones protection !TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. !TP_COLORAPP_SHARPCIE;--unused-- @@ -1425,6 +1432,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] +!TP_COLORAPP_YB;Yb (mean luminance) !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance diff --git a/rtdata/languages/default b/rtdata/languages/default index 5fe706205..ecc70f8f5 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -36,6 +36,7 @@ CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. CURVEEDITOR_TOOLTIPSAVE;Save current curve. CURVEEDITOR_TYPE;Type: DIRBROWSER_FOLDERS;Folders +DONT_SHOW_AGAIN;Don't show this message again. DYNPROFILEEDITOR_DELETE;Delete DYNPROFILEEDITOR_EDIT;Edit DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule @@ -234,6 +235,7 @@ GENERAL_PORTRAIT;Portrait GENERAL_SAVE;Save GENERAL_UNCHANGED;(Unchanged) GENERAL_WARNING;Warning +GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. HISTOGRAM_TOOLTIP_B;Show/Hide blue histogram. HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. @@ -720,97 +722,103 @@ HISTORY_MSG_472;PS Smooth transitions HISTORY_MSG_473;PS Use lmmse HISTORY_MSG_474;PS Equalize HISTORY_MSG_475;PS Equalize channel -HISTORY_MSG_476;Local L*a*b* -HISTORY_MSG_477;Local - Bottom -HISTORY_MSG_478;Local - Right -HISTORY_MSG_479;Local - Center -HISTORY_MSG_480;Local - Lightness/ -HISTORY_MSG_481;Local - Lightness -HISTORY_MSG_482;Local - Contrast -HISTORY_MSG_483;Local - Chrominance -HISTORY_MSG_484;Local - Transition -HISTORY_MSG_485;Local - Avoid color shift -HISTORY_MSG_486;Local - Top -HISTORY_MSG_487;Local - Left -HISTORY_MSG_488;Local - Method -HISTORY_MSG_489;Local - Color Inverse -HISTORY_MSG_490;Local - Radius -HISTORY_MSG_491;Local - Blur Inverse -HISTORY_MSG_492;Local - Noise -HISTORY_MSG_493;Local - Scope -HISTORY_MSG_494;Local - Retinex method -HISTORY_MSG_495;Local - Retinex strength -HISTORY_MSG_496;Local - Retinex radius -HISTORY_MSG_497;Local - Retinex contrast -HISTORY_MSG_498;Local - Retinex Gain curve -HISTORY_MSG_499;Local - Retinex chroma -HISTORY_MSG_500;Local - Retinex Inverse -HISTORY_MSG_501;Local - Hue scope -HISTORY_MSG_502;Local - Spot -HISTORY_MSG_503;Local - Blur Luminance only -HISTORY_MSG_504;Local - Update GUI and Mip -1 -HISTORY_MSG_505;Local - Sh Radius -HISTORY_MSG_506;Local - Sh Amount -HISTORY_MSG_507;Local - Sh Damping -HISTORY_MSG_508;Local - Sh Iterations -HISTORY_MSG_509;Local - Sh Scope -HISTORY_MSG_510;Local - Sh Inverse -HISTORY_MSG_511;Local - Spot size -HISTORY_MSG_512;Local - artifacts theshold -HISTORY_MSG_513;Local - artifacts iterations -HISTORY_MSG_514;Local - Quality -HISTORY_MSG_515;Local - Noise lum f -HISTORY_MSG_516;Local - Noise lum c -HISTORY_MSG_517;Local - Noise chro f -HISTORY_MSG_518;Local - Noise chro c -HISTORY_MSG_519;Local - cbdl threshold -HISTORY_MSG_520;Local - cbdl mult -HISTORY_MSG_521;Local - cbdl scope -HISTORY_MSG_522;Local - Blur scope -HISTORY_MSG_523;Local - TM strength -HISTORY_MSG_524;Local - TM gamma -HISTORY_MSG_525;Local - TM edge stopping -HISTORY_MSG_526;Local - TM scale -HISTORY_MSG_527;Local - TM Reweighting -HISTORY_MSG_528;Local - TM scope -HISTORY_MSG_529;Local - Update GUI and Mip -2 -HISTORY_MSG_530;Local - Update GUI and Mip -3 -HISTORY_MSG_531;Local - LL Curve -HISTORY_MSG_532;Local - Color and light -HISTORY_MSG_533;Local - Blur and noise -HISTORY_MSG_534;Local - Tone mapping -HISTORY_MSG_535;Local - Retinex -HISTORY_MSG_536;Local - Sharpening -HISTORY_MSG_537;Local - CBDL -HISTORY_MSG_538;Local - Denoise -HISTORY_MSG_539;Local - LH Curve -HISTORY_MSG_540;Local - Enable super -HISTORY_MSG_541;Local - CC curve -HISTORY_MSG_542;Local - curve method -HISTORY_MSG_543;Local - hueref -HISTORY_MSG_544;Local - chromaref -HISTORY_MSG_545;Local - lumaref -HISTORY_MSG_546;Local - H curve -HISTORY_MSG_547;Local - Vibrance -HISTORY_MSG_548;Local - Vib H curve -HISTORY_MSG_549;Local - Vib Protect skin tones -HISTORY_MSG_550;Local - Vib avoid colorshift -HISTORY_MSG_551;Local - Vib link -HISTORY_MSG_552;Local - Vib Pastel -HISTORY_MSG_553;Local - Vib Saturated -HISTORY_MSG_554;Local - Vib Threshold -HISTORY_MSG_555;Local - Vib Scope -HISTORY_MSG_556;Local - Exposure -HISTORY_MSG_557;Local - Exp Compensation -HISTORY_MSG_558;Local - Exp Hlcompr -HISTORY_MSG_559;Local - Exp hlcomprthresh -HISTORY_MSG_560;Local - Exp black -HISTORY_MSG_561;Local - Exp Shcompr -HISTORY_MSG_562;Local - Exp Scope -HISTORY_MSG_563;Local - Exp Contrast curve -HISTORY_MSG_564;CAM02 - Temp out -HISTORY_MSG_565;CAM02 - Green out -HISTORY_MSG_566;CAM02 - Yb out +HISTORY_MSG_476;CAM02 - Temp out +HISTORY_MSG_477;CAM02 - Green out +HISTORY_MSG_478;CAM02 - Yb out +HISTORY_MSG_479;CAM02 - CAT02 adaptation out +HISTORY_MSG_480;CAM02 - Automatic CAT02 out +HISTORY_MSG_481;CAM02 - Temp scene +HISTORY_MSG_482;CAM02 - Green scene +HISTORY_MSG_483;CAM02 - Yb scene +HISTORY_MSG_484;CAM02 - Auto Yb scene +HISTORY_MSG_485;Local L*a*b* +HISTORY_MSG_486;Local - Bottom +HISTORY_MSG_487;Local - Right +HISTORY_MSG_488;Local - Center +HISTORY_MSG_489;Local - Lightness/ +HISTORY_MSG_490;Local - Lightness +HISTORY_MSG_491;Local - Contrast +HISTORY_MSG_492;Local - Chrominance +HISTORY_MSG_493;Local - Transition +HISTORY_MSG_494;Local - Avoid color shift +HISTORY_MSG_495;Local - Top +HISTORY_MSG_496;Local - Left +HISTORY_MSG_497;Local - Method +HISTORY_MSG_498;Local - Color Inverse +HISTORY_MSG_499;Local - Radius +HISTORY_MSG_500;Local - Blur Inverse +HISTORY_MSG_501;Local - Noise +HISTORY_MSG_502;Local - Scope +HISTORY_MSG_503;Local - Retinex method +HISTORY_MSG_504;Local - Retinex strength +HISTORY_MSG_505;Local - Retinex radius +HISTORY_MSG_506;Local - Retinex contrast +HISTORY_MSG_507;Local - Retinex Gain curve +HISTORY_MSG_508;Local - Retinex chroma +HISTORY_MSG_509;Local - Retinex Inverse +HISTORY_MSG_510;Local - Hue scope +HISTORY_MSG_511;Local - Spot +HISTORY_MSG_512;Local - Blur Luminance only +HISTORY_MSG_513;Local - Update GUI and Mip -1 +HISTORY_MSG_514;Local - Sh Radius +HISTORY_MSG_515;Local - Sh Amount +HISTORY_MSG_516;Local - Sh Damping +HISTORY_MSG_517;Local - Sh Iterations +HISTORY_MSG_518;Local - Sh Scope +HISTORY_MSG_519;Local - Sh Inverse +HISTORY_MSG_520;Local - Spot size +HISTORY_MSG_521;Local - artifacts theshold +HISTORY_MSG_522;Local - artifacts iterations +HISTORY_MSG_523;Local - Quality +HISTORY_MSG_524;Local - Noise lum f +HISTORY_MSG_525;Local - Noise lum c +HISTORY_MSG_526;Local - Noise chro f +HISTORY_MSG_527;Local - Noise chro c +HISTORY_MSG_528;Local - cbdl threshold +HISTORY_MSG_529;Local - cbdl mult +HISTORY_MSG_530;Local - cbdl scope +HISTORY_MSG_531;Local - Blur scope +HISTORY_MSG_532;Local - TM strength +HISTORY_MSG_533;Local - TM gamma +HISTORY_MSG_534;Local - TM edge stopping +HISTORY_MSG_535;Local - TM scale +HISTORY_MSG_536;Local - TM Reweighting +HISTORY_MSG_537;Local - TM scope +HISTORY_MSG_538;Local - Update GUI and Mip -2 +HISTORY_MSG_539;Local - Update GUI and Mip -3 +HISTORY_MSG_540;Local - LL Curve +HISTORY_MSG_541;Local - Color and light +HISTORY_MSG_542;Local - Blur and noise +HISTORY_MSG_543;Local - Tone mapping +HISTORY_MSG_544;Local - Retinex +HISTORY_MSG_545;Local - Sharpening +HISTORY_MSG_546;Local - CBDL +HISTORY_MSG_547;Local - Denoise +HISTORY_MSG_548;Local - LH Curve +HISTORY_MSG_549;Local - Enable super +HISTORY_MSG_550;Local - CC curve +HISTORY_MSG_551;Local - curve method +HISTORY_MSG_552;Local - hueref +HISTORY_MSG_553;Local - chromaref +HISTORY_MSG_554;Local - lumaref +HISTORY_MSG_555;Local - H curve +HISTORY_MSG_556;Local - Vibrance +HISTORY_MSG_557;Local - Vib H curve +HISTORY_MSG_558;Local - Vib Protect skin tones +HISTORY_MSG_559;Local - Vib avoid colorshift +HISTORY_MSG_560;Local - Vib link +HISTORY_MSG_561;Local - Vib Pastel +HISTORY_MSG_562;Local - Vib Saturated +HISTORY_MSG_563;Local - Vib Threshold +HISTORY_MSG_564;Local - Vib Scope +HISTORY_MSG_565;Local - Exposure +HISTORY_MSG_566;Local - Exp Compensation +HISTORY_MSG_567;Local - Exp Hlcompr +HISTORY_MSG_568;Local - Exp hlcomprthresh +HISTORY_MSG_569;Local - Exp black +HISTORY_MSG_570;Local - Exp Shcompr +HISTORY_MSG_571;Local - Exp Scope +HISTORY_MSG_572;Local - Exp Contrast curve HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -1064,8 +1072,8 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Executable path PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency -PREFERENCES_D50_OLD;5000K PREFERENCES_D50;Settings in main menu +PREFERENCES_D50_OLD;5000K PREFERENCES_D55;5500K PREFERENCES_D60;6000K PREFERENCES_D65;6500K @@ -1077,8 +1085,6 @@ PREFERENCES_DATEFORMAT;Date format PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y - year\n%m - month\n%d - day\n\nFor example, the ISO 8601 standard dictates the date format as follows:\n%y-%m-%d PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. -PREFERENCES_DEFAULTLANG;Default Language -PREFERENCES_DEFAULTTHEME;Default Theme PREFERENCES_DIRDARKFRAMES;Dark-frames directory PREFERENCES_DIRHOME;Home directory PREFERENCES_DIRLAST;Last visited directory @@ -1110,8 +1116,8 @@ PREFERENCES_GREY;Output device's Yb luminance (%) PREFERENCES_GREY05;Yb=05 CIE L#30 PREFERENCES_GREY10;Yb=10 CIE L#40 PREFERENCES_GREY15;Yb=15 CIE L#45 -PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 PREFERENCES_GREY18;Settings in main menu +PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 PREFERENCES_GREY23;Yb=23 CIE L#55 PREFERENCES_GREY30;Yb=30 CIE L#60 PREFERENCES_GREY40;Yb=40 CIE L#70 @@ -1133,6 +1139,7 @@ PREFERENCES_INTENT_PERCEPTUAL;Perceptual PREFERENCES_INTENT_RELATIVE;Relative Colorimetric PREFERENCES_INTENT_SATURATION;Saturation PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited +PREFERENCES_LANG;Language PREFERENCES_LANGAUTODETECT;Use system language PREFERENCES_LEVAUTDN;Denoising level PREFERENCES_LEVDN;Cell size @@ -1235,6 +1242,7 @@ PREFERENCES_TAB_GENERAL;General PREFERENCES_TAB_IMPROC;Image Processing PREFERENCES_TAB_PERFORMANCE;Performance & Quality PREFERENCES_TAB_SOUND;Sounds +PREFERENCES_THEME;Theme PREFERENCES_TIMAX;High PREFERENCES_TINB;Number of tiles PREFERENCES_TISTD;Standard @@ -1392,11 +1400,11 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Flip horizontally. TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left.\n\nShortcuts:\n[ - Multiple Editor Tabs Mode,\nAlt-[ - Single Editor Tab Mode. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right.\n\nShortcuts:\n] - Multiple Editor Tabs Mode,\nAlt-] - Single Editor Tab Mode. TP_COARSETRAF_TOOLTIP_VFLIP;Flip vertically. -TP_COLORAPP_ADAPTSCENE;Scene luminosity -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Absolute luminance of the scene environement (cd/m²).\n1) Calculated from the Exif data:\nShutter speed - ISO speed - F number - camera exposure correction.\n2) Calculated from the raw white point and RT's Exposure Compensation slider. -TP_COLORAPP_ADAPTVIEWING;Viewing luminosity (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Absolute luminance of the viewing environnement\n(usually 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;If the checkbox is checked (recommended) RawTherapee calculates an optimum value from Exif data.\nTo set the value manually, uncheck the checkbox first. +TP_COLORAPP_ADAPTSCENE;Scene absolute luminance +TP_COLORAPP_ADAPTSCENE_TOOLTIP;Absolute luminance of the scene environment (cd/m²).\n1) Calculated from the Exif data:\nShutter speed - ISO speed - F number - camera exposure correction.\n2) Calculated from the raw white point and RT's Exposure Compensation slider. +TP_COLORAPP_ADAPTVIEWING;Viewing absolute luminance (cd/m²) +TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +TP_COLORAPP_ADAP_AUTO_TOOLTIP;If the checkbox is checked (recommended) RawTherapee calculates an optimum value from the Exif data.\nTo set the value manually, uncheck the checkbox first. TP_COLORAPP_ALGO;Algorithm TP_COLORAPP_ALGO_ALL;All TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1416,8 +1424,8 @@ TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation TP_COLORAPP_CONTRAST;Contrast (J) TP_COLORAPP_CONTRAST_Q;Contrast (Q) -TP_COLORAPP_CONTRAST_Q_TOOLTIP;Contrast in CIECAM02 for the Q slider; it differs from L*a*b* and RGB contrast. -TP_COLORAPP_CONTRAST_TOOLTIP;Contrast in CIECAM02 for the J slider; it differs from L*a*b* and RGB contrast. +TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. +TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. TP_COLORAPP_CURVEEDITOR1;Tone curve 1 TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. TP_COLORAPP_CURVEEDITOR2;Tone curve 2 @@ -1428,6 +1436,7 @@ TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. TP_COLORAPP_DEGREE_AUTO_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value, which is then used by CAT02, and also for the entire CIECAM02.\nTo set the value manually, uncheck the check-box first (values above 65 are recommended). TP_COLORAPP_DEGREE_TOOLTIP;Amount of CIE Chromatic Adaptation Transform 2002. +TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] TP_COLORAPP_GAMUT;Gamut control (L*a*b*) TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. TP_COLORAPP_HUE;Hue (h) @@ -1439,9 +1448,11 @@ TP_COLORAPP_LABEL_VIEWING;Viewing Conditions TP_COLORAPP_LIGHT;Lightness (J) TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. TP_COLORAPP_MODEL;WP Model -TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions. +TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected bu user, output device's white balance is set in Viewing Conditions. +TP_COLORAPP_NEUTRAL;Reset +TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values TP_COLORAPP_RSTPRO;Red & skin-tones protection -TP_COLORAPP_RSTPRO_TOOLTIP;Red and skin-tones protection affects both sliders and curves. +TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. TP_COLORAPP_SHARPCIE;--unused-- TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- TP_COLORAPP_SURROUND;Surround @@ -1460,11 +1471,14 @@ TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode TP_COLORAPP_TCMODE_LIGHTNESS;Lightness TP_COLORAPP_TCMODE_SATUR;Saturation +TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant always Tint=1.\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 TP_COLORAPP_TONECIE;Tone mapping using CIECAM02 TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] TP_COLORAPP_WBRT;WB [RT] + [output] -TP_COLORAPP_YB;Yb (mean luminance) +TP_COLORAPP_YB;Yb% (mean luminance) +TP_COLORAPP_YBSCENE;Yb% (mean luminance) +TP_COLORAPP_YBSCENE_TOOLTIP;if auto enable, Yb is calculated from the mean value of actual image luminance TP_COLORTONING_AB;o C/L TP_COLORTONING_AUTOSAT;Automatic TP_COLORTONING_BALANCE;Balance @@ -2342,5 +2356,3 @@ ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: Alt-f ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: f ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - -GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -DONT_SHOW_AGAIN;Don't show this message again. diff --git a/rtdata/themes/RawTherapee-GTK3-20_.css b/rtdata/themes/RawTherapee-GTK3-20_.css index c1768f913..f661198af 100644 --- a/rtdata/themes/RawTherapee-GTK3-20_.css +++ b/rtdata/themes/RawTherapee-GTK3-20_.css @@ -187,24 +187,37 @@ button { min-width: 5px; background-image: linear-gradient(#343434, #2E2E2E, #292929); } + +/* Curve mode buttons and drop-downs */ +button:checked.Left, button:checked.Left + button { + background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); + background-color: #585858; +} + button.flat { background-image: none; } + button.flat:checked { background-image: linear-gradient(#343434, #2E2E2E, #292929); } + checkbutton > check { background-image: linear-gradient(#343434, #2E2E2E, #292929); } + radiobutton > radio { background-image: linear-gradient(#343434, #2E2E2E, #292929); } + button:hover , button.flat:hover, checkbutton:hover > check, radiobutton:hover > radio { background-image: linear-gradient(shade(#343434,1.3), shade(#2E2E2E,1.3), shade(#292929,1.3)); } + button.popupbutton-arrow { min-width: 18px; } + /* Save, Cancel, OK ... buttons */ .dialog-action-area button { min-height: 24px; diff --git a/rtdata/themes/TooWaBlue-Bright-GTK3-20_.css b/rtdata/themes/TooWaBlue - Bright-GTK3-20_.css similarity index 84% rename from rtdata/themes/TooWaBlue-Bright-GTK3-20_.css rename to rtdata/themes/TooWaBlue - Bright-GTK3-20_.css index 14f2e3002..888533053 100644 --- a/rtdata/themes/TooWaBlue-Bright-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue - Bright-GTK3-20_.css @@ -31,19 +31,19 @@ @define-color bg-highlighted-text-color rgb(43,119,196); /*** Highlighted text color background* Default: rgb(35,99,166) ***/ @define-color highlighted-text-color rgb(255,255,255); /*** Highlighted text color * Default: rgb(210,210,210) ***/ -@define-color bg-image rgb(90,90,90); /*** Image area & File Browser background * Default: rgb(70,70,70) ***/ +@define-color bg-image rgb(95,95,95); /*** Image area & File Browser background * Default: rgb(70,70,70) ***/ @define-color accent-color2 rgb(43,119,196); /*** Scale, Progressbar, Scrollbar, Tabs * Default: rgb(35,99,166) ***/ -@define-color accent-color4 rgb(128,128,128); /*** Slider knob * Default: rgb(115,115,115) ***/ +@define-color accent-color4 rgb(135,135,135); /*** Slider knob * Default: rgb(115,115,115) ***/ @define-color accent-color3 rgb(43,119,196); /*** Selected thumbnail background color * Default: rgb(35,99,166) ***/ @define-color text-hl-color3 rgb(255,255,255); /*** Selected thumbnail text color * Default: rgb(210,210,210) ***/ /*** Change me end *****************************************************************************/ -@define-color bg-light-grey rgb(110,110,110); -@define-color bg-grey rgb(90,90,90); -@define-color bg-dark-grey rgb(50,50,50); +@define-color bg-light-grey rgb(115,115,115); +@define-color bg-grey rgb(95,95,95); +@define-color bg-dark-grey rgb(55,55,55); @define-color bg-button-hover rgba(0,0,0,.25); @define-color bg-button-active rgba(0,0,0,.60); @@ -58,12 +58,15 @@ @define-color text-color rgb(210,210,210); @define-color text-tbEntry rgb(230,230,230); @define-color border-color rgba(255,255,255,.35); -@define-color bg-list-hover rgb(60,60,60); +@define-color bg-list-hover rgb(68,68,68); @define-color bg-scale-entry rgba(0,0,0,.14); -@define-color bg-button-border rgba(0,0,0,.60); +@define-color bg-button-border rgba(0,0,0,.5); @define-color bg-entry-border rgba(0,0,0,.40); @define-color view-grid-border rgba(255,255,255,0.25); @define-color headline-big rgb(210,210,210); @define-color headline-hl rgb(255,255,255); @define-color headline-frame rgb(245,245,245); +/*** New Color Variable v2.53 ************************************************************************/ +@define-color fg-disabled rgb(145,145,145); +@define-color bg-tb-spinbutton shade(@bg-grey, 1.3); /***********************************************************************************************/ diff --git a/rtdata/themes/TooWaBlue-Dark-GTK3-20_.css b/rtdata/themes/TooWaBlue - Dark-GTK3-20_.css similarity index 92% rename from rtdata/themes/TooWaBlue-Dark-GTK3-20_.css rename to rtdata/themes/TooWaBlue - Dark-GTK3-20_.css index f1a42bfa4..23e32e1ec 100644 --- a/rtdata/themes/TooWaBlue-Dark-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue - Dark-GTK3-20_.css @@ -43,7 +43,7 @@ @define-color bg-light-grey rgb(75,75,75); @define-color bg-grey rgb(58,58,58); -@define-color bg-dark-grey rgb(36,36,36); +@define-color bg-dark-grey rgb(30,30,30); @define-color bg-button-hover rgba(0,0,0,.3); @define-color bg-button-active rgba(0,0,0,.7); @@ -66,4 +66,7 @@ @define-color headline-big rgb(187,187,187); @define-color headline-hl rgb(215,215,215); @define-color headline-frame rgb(210,210,210); +/*** New Color Variable v2.53 ************************************************************************/ +@define-color fg-disabled rgb(128,128,128); +@define-color bg-tb-spinbutton shade(@bg-grey, 1.35); /***********************************************************************************************/ diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index 28c3b971a..e009c6d9a 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -2,7 +2,7 @@ This file is part of RawTherapee. Copyright (c) 2016-2017 TooWaBoo - Version 2.51 - requires RT 5.0 (Gtk+ >= 3.20) + Version 2.53 - requires RT 5.0 (Gtk+ >= 3.20) RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,7 +26,7 @@ @define-color bg-highlighted-text-color rgb(35,99,166); /*** Highlighted text color background* Default: rgb(35,99,166) ***/ @define-color highlighted-text-color rgb(210,210,210); /*** Highlighted text color * Default: rgb(210,210,210) ***/ -@define-color bg-image rgb(70,70,70); /*** Image area & File Browser background * Default: rgb(70,70,70) ***/ +@define-color bg-image rgb(75,75,75); /*** Image area & File Browser background * Default: rgb(70,70,70) ***/ @define-color accent-color2 rgb(35,99,166); /*** Scale, Progressbar, Scrollbar, Tabs * Default: rgb(35,99,166) ***/ @define-color accent-color4 rgb(115,115,115); /*** Slider knob * Default: rgb(115,115,115) ***/ @@ -36,9 +36,9 @@ /*** Change me end *****************************************************************************/ -@define-color bg-light-grey rgb(90,90,90); -@define-color bg-grey rgb(70,70,70); -@define-color bg-dark-grey rgb(36,36,36); +@define-color bg-light-grey rgb(95,95,95); +@define-color bg-grey rgb(75,75,75); +@define-color bg-dark-grey rgb(40,40,40); @define-color bg-button-hover rgba(0,0,0,.25); @define-color bg-button-active rgba(0,0,0,.60); @@ -47,8 +47,8 @@ @define-color winTitle rgb(190,190,190); @define-color bg-tooltip rgb(185,185,185); -@define-color border-tooltip rgb(36,36,36); -@define-color text-tooltip rgb(36,36,36); +@define-color border-tooltip rgb(40,40,40); +@define-color text-tooltip rgb(40,40,40); /***********************************************/ @define-color text-color rgb(186,186,186); @define-color text-tbEntry rgb(192,192,192); @@ -61,6 +61,9 @@ @define-color headline-big rgb(195,195,195); @define-color headline-hl rgb(230,230,230); @define-color headline-frame rgb(215,215,215); +/*** New Color Variable v2.53 ************************************************************************/ +@define-color fg-disabled rgb(128,128,128); +@define-color bg-tb-spinbutton shade(@bg-grey, 1.33); /***********************************************************************************************/ * { @@ -72,7 +75,7 @@ } *:disabled { - color: rgb(128,128,128); + color: @fg-disabled; } #ToolPanelNotebook { @@ -422,6 +425,7 @@ paned.horizontal > separator { } paned.vertical > separator { + background-image: image(@bg-dark-grey); background-color: @bg-light-grey; min-height: 0.5em; border-top: 1px solid @bg-light-grey; @@ -594,7 +598,7 @@ scale slider { margin: calc(-0.33334em - 1px); border-radius: 0.83334em; background-image: linear-gradient(to bottom, shade (@accent-color4,1.15), shade (@accent-color4,.85)); - border: 0.08334em solid @bg-dark-grey; + border: 0.08334em solid @bg-button-border; box-shadow: none; } scale slider:hover { @@ -604,13 +608,13 @@ scale slider:hover { scale trough { margin: 0.5em; /* has to be half of "scale slider / min-width min-height*/ background-color: @bg-scale-entry; - border: 0.08334em solid @bg-dark-grey; + border: 0.08334em solid @bg-button-border; box-shadow: inset 0 0.08334em rgba(255, 255, 255, 0.11), 0 0.08334em rgba(242, 242, 242, 0.11); border-radius: 0.5em; } scale:not(:disabled) trough highlight { background-color: @accent-color2; - border: 0.08334em solid @bg-dark-grey; + border: 0.08334em solid @bg-button-border; box-shadow: inset 0 0.08334em shade(@accent-color2, 1.3); border-radius: 0.5em; } @@ -1639,7 +1643,7 @@ radiobutton { check, radio { - border: calc(0.083334em + 0.18px) solid shade(@text-color, .9); + border: calc(0.083334em + 0.18px) solid @text-color; background-image: none; background-color: transparent; margin: 0; @@ -1649,6 +1653,7 @@ radio { box-shadow: none; background-repeat: no-repeat; -gtk-icon-shadow: none; + color: @text-color; } radiobutton label, checkbutton label { @@ -1664,7 +1669,7 @@ radio{ } check:disabled, radio:disabled { - border-color: rgb(120,120,120); + border-color: @fg-disabled; } frame > checkbutton check{ @@ -1717,7 +1722,7 @@ spinbutton { min-width: 0; border-top-left-radius: 1.83334em; border-bottom-left-radius: 1.83334em; - background-color: shade(@bg-grey, 1.33); + background-color: @bg-tb-spinbutton; border: 0.08334em solid @bg-button-border; color: @text-tbEntry; box-shadow: inset 0.08334em 0.08334em rgba(0, 0, 0, .12), 0 0.08334em rgba(255, 255, 255, 0.12); diff --git a/rtdata/themes/TooWaGrey - Average Surround-GTK3-20_.css b/rtdata/themes/TooWaGrey - Average Surround-GTK3-20_.css new file mode 100644 index 000000000..98ec912b1 --- /dev/null +++ b/rtdata/themes/TooWaGrey - Average Surround-GTK3-20_.css @@ -0,0 +1,72 @@ +/* + This file is part of RawTherapee. + + Copyright (c) 2016-2017 TooWaBoo + Requires RT 5.0 (Gtk+ >= 3.20) + + RawTherapee is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + RawTherapee is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with RawTherapee. If not, see . +*/ + + +/*****************************************/ +/**/ @import "TooWaBlue-GTK3-20_.css"; /**/ +/*****************************************/ + +/*** Change me *** rgb(red,green,blue) *** allowed values from 0 to 255 for each color ***/ + +@define-color accent-color rgb(110,110,110); /*** Active color for Lists, Menu, Borders ... * Default: rgb(35,99,166) ***/ +@define-color text-hl-color rgb(255,255,255); /*** Active text color * Default: rgb(210,210,210) ***/ + +@define-color bg-highlighted-text-color rgb(49,132,220); /*** Highlighted text color background* Default: rgb(35,99,166) ***/ +@define-color highlighted-text-color rgb(255,255,255); /*** Highlighted text color * Default: rgb(210,210,210) ***/ + +@define-color bg-image rgb(120,120,120); /*** Image area & File Browser background * Default: rgb(70,70,70) ***/ + +@define-color accent-color2 rgb(49,132,220); /*** Scale, Progressbar, Scrollbar, Tabs * Default: rgb(35,99,166) ***/ +@define-color accent-color4 rgb(155,155,155); /*** Slider knob * Default: rgb(115,115,115) ***/ + +@define-color accent-color3 rgb(85,85,85); /*** Selected thumbnail background color * Default: rgb(35,99,166) ***/ +@define-color text-hl-color3 rgb(230,230,230); /*** Selected thumbnail text color * Default: rgb(210,210,210) ***/ + +/*** Change me end *****************************************************************************/ + +@define-color bg-light-grey rgb(135,135,135); +@define-color bg-grey rgb(120,120,120); +@define-color bg-dark-grey rgb(85,85,85); + +@define-color bg-button-hover rgba(0,0,0,.15); +@define-color bg-button-active rgba(0,0,0,.5); + +@define-color winHeaderbar rgb(75,75,75); +@define-color winTitle rgb(210,210,210); + +@define-color bg-tooltip rgb(210,210,210); +@define-color border-tooltip rgb(50,50,50); +@define-color text-tooltip rgb(50,50,50); +/***********************************************/ +@define-color text-color rgb(230,230,230); +@define-color text-tbEntry rgb(245,245,245); +@define-color border-color rgba(255,255,255,.35); +@define-color bg-list-hover rgb(95,95,95); +@define-color bg-scale-entry rgba(0,0,0,.14); +@define-color bg-button-border rgba(0,0,0,.45); +@define-color bg-entry-border rgba(0,0,0,.40); +@define-color view-grid-border rgba(255,255,255,0.25); +@define-color headline-big rgb(210,210,210); +@define-color headline-hl rgb(255,255,255); +@define-color headline-frame rgb(245,245,245); +/*** New Color Variable v2.53 ************************************************************************/ +@define-color fg-disabled rgb(180,180,180); +@define-color bg-tb-spinbutton shade(@bg-grey, 1.20); +/***********************************************************************************************/ diff --git a/rtengine/ciecam02.cc b/rtengine/ciecam02.cc index 08a9b3145..488093060 100644 --- a/rtengine/ciecam02.cc +++ b/rtengine/ciecam02.cc @@ -39,10 +39,10 @@ namespace rtengine extern const Settings* settings; #endif -void Ciecam02::curvecolor(double satind, double satval, double &sres, double parsat) +void Ciecam02::curvecolor (double satind, double satval, double &sres, double parsat) { if (satind >= 0.0) { - sres = (1. - (satind) / 100.) * satval + (satind) / 100.*(1. - SQR(SQR(1. - min(satval, 1.0)))); + sres = (1. - (satind) / 100.) * satval + (satind) / 100.* (1. - SQR (SQR (1. - min (satval, 1.0)))); if (sres > parsat) { sres = parsat; @@ -58,17 +58,17 @@ void Ciecam02::curvecolor(double satind, double satval, double &sres, double par } } -void Ciecam02::curvecolorfloat(float satind, float satval, float &sres, float parsat) +void Ciecam02::curvecolorfloat (float satind, float satval, float &sres, float parsat) { if (satind > 0.f) { if (satval >= 1.f) { // The calculation below goes wrong direction when satval > 1 sres = satval; } else { - sres = (1.f - (satind) / 100.f) * satval + (satind) / 100.f * (1.f - SQR(SQR(1.f - min(satval, 1.0f)))); + sres = (1.f - (satind) / 100.f) * satval + (satind) / 100.f * (1.f - SQR (SQR (1.f - min (satval, 1.0f)))); } if (sres > parsat) { - sres = max(parsat, satval); + sres = max (parsat, satval); } } else if (satind < 0.f) { sres = satval * (1.f + (satind) / 100.f); @@ -79,35 +79,35 @@ void Ciecam02::curvecolorfloat(float satind, float satval, float &sres, float pa void Ciecam02::curveJ (double br, double contr, int db, LUTf & outCurve, LUTu & histogram ) { - LUTf dcurve(65536, 0); + LUTf dcurve (65536, 0); int skip = 1; // check if brightness curve is needed if (br > 0.00001 || br < -0.00001) { std::vector brightcurvePoints; - brightcurvePoints.resize(9); - brightcurvePoints.at(0) = double(DCT_NURBS); + brightcurvePoints.resize (9); + brightcurvePoints.at (0) = double (DCT_NURBS); - brightcurvePoints.at(1) = 0.; // black point. Value in [0 ; 1] range - brightcurvePoints.at(2) = 0.; // black point. Value in [0 ; 1] range + brightcurvePoints.at (1) = 0.; // black point. Value in [0 ; 1] range + brightcurvePoints.at (2) = 0.; // black point. Value in [0 ; 1] range if (br > 0) { - brightcurvePoints.at(3) = 0.1; // toe point - brightcurvePoints.at(4) = 0.1 + br / 150.0; //value at toe point + brightcurvePoints.at (3) = 0.1; // toe point + brightcurvePoints.at (4) = 0.1 + br / 150.0; //value at toe point - brightcurvePoints.at(5) = 0.7; // shoulder point - brightcurvePoints.at(6) = min(1.0, 0.7 + br / 300.0); //value at shoulder point + brightcurvePoints.at (5) = 0.7; // shoulder point + brightcurvePoints.at (6) = min (1.0, 0.7 + br / 300.0); //value at shoulder point } else { - brightcurvePoints.at(3) = 0.1 - br / 150.0; // toe point - brightcurvePoints.at(4) = 0.1; // value at toe point + brightcurvePoints.at (3) = 0.1 - br / 150.0; // toe point + brightcurvePoints.at (4) = 0.1; // value at toe point - brightcurvePoints.at(5) = min(1.0, 0.7 - br / 300.0); // shoulder point - brightcurvePoints.at(6) = 0.7; // value at shoulder point + brightcurvePoints.at (5) = min (1.0, 0.7 - br / 300.0); // shoulder point + brightcurvePoints.at (6) = 0.7; // value at shoulder point } - brightcurvePoints.at(7) = 1.; // white point - brightcurvePoints.at(8) = 1.; // value at white point + brightcurvePoints.at (7) = 1.; // white point + brightcurvePoints.at (8) = 1.; // value at white point DiagonalCurve* brightcurve = new DiagonalCurve (brightcurvePoints, CURVES_MIN_POLY_POINTS / skip); @@ -121,7 +121,7 @@ void Ciecam02::curveJ (double br, double contr, int db, LUTf & outCurve, LUTu & val = brightcurve->getVal (val); // store result in a temporary array - dcurve[i] = CLIPD(val); + dcurve[i] = CLIPD (val); } delete brightcurve; @@ -149,20 +149,20 @@ void Ciecam02::curveJ (double br, double contr, int db, LUTf & outCurve, LUTu & avg /= sum; std::vector contrastcurvePoints; - contrastcurvePoints.resize(9); - contrastcurvePoints.at(0) = double(DCT_NURBS); + contrastcurvePoints.resize (9); + contrastcurvePoints.at (0) = double (DCT_NURBS); - contrastcurvePoints.at(1) = 0.; // black point. Value in [0 ; 1] range - contrastcurvePoints.at(2) = 0.; // black point. Value in [0 ; 1] range + contrastcurvePoints.at (1) = 0.; // black point. Value in [0 ; 1] range + contrastcurvePoints.at (2) = 0.; // black point. Value in [0 ; 1] range - contrastcurvePoints.at(3) = avg - avg * (0.6 - contr / 250.0); // toe point - contrastcurvePoints.at(4) = avg - avg * (0.6 + contr / 250.0); // value at toe point + contrastcurvePoints.at (3) = avg - avg * (0.6 - contr / 250.0); // toe point + contrastcurvePoints.at (4) = avg - avg * (0.6 + contr / 250.0); // value at toe point - contrastcurvePoints.at(5) = avg + (1 - avg) * (0.6 - contr / 250.0); // shoulder point - contrastcurvePoints.at(6) = avg + (1 - avg) * (0.6 + contr / 250.0); // value at shoulder point + contrastcurvePoints.at (5) = avg + (1 - avg) * (0.6 - contr / 250.0); // shoulder point + contrastcurvePoints.at (6) = avg + (1 - avg) * (0.6 + contr / 250.0); // value at shoulder point - contrastcurvePoints.at(7) = 1.; // white point - contrastcurvePoints.at(8) = 1.; // value at white point + contrastcurvePoints.at (7) = 1.; // white point + contrastcurvePoints.at (8) = 1.; // value at white point DiagonalCurve* contrastcurve = new DiagonalCurve (contrastcurvePoints, CURVES_MIN_POLY_POINTS / skip); @@ -186,8 +186,8 @@ void Ciecam02::curveJfloat (float br, float contr, const LUTu & histogram, LUTf // check if brightness curve is needed if (br > 0.00001f || br < -0.00001f) { - std::vector brightcurvePoints(9); - brightcurvePoints[0] = double(DCT_NURBS); + std::vector brightcurvePoints (9); + brightcurvePoints[0] = double (DCT_NURBS); brightcurvePoints[1] = 0.f; // black point. Value in [0 ; 1] range brightcurvePoints[2] = 0.f; // black point. Value in [0 ; 1] range @@ -197,19 +197,19 @@ void Ciecam02::curveJfloat (float br, float contr, const LUTu & histogram, LUTf brightcurvePoints[4] = 0.1f + br / 150.0f; //value at toe point brightcurvePoints[5] = 0.7f; // shoulder point - brightcurvePoints[6] = min(1.0f, 0.7f + br / 300.0f); //value at shoulder point + brightcurvePoints[6] = min (1.0f, 0.7f + br / 300.0f); //value at shoulder point } else { brightcurvePoints[3] = 0.1f - br / 150.0f; // toe point brightcurvePoints[4] = 0.1f; // value at toe point - brightcurvePoints[5] = min(1.0f, 0.7f - br / 300.0f); // shoulder point + brightcurvePoints[5] = min (1.0f, 0.7f - br / 300.0f); // shoulder point brightcurvePoints[6] = 0.7f; // value at shoulder point } brightcurvePoints[7] = 1.f; // white point brightcurvePoints[8] = 1.f; // value at white point - DiagonalCurve brightcurve(brightcurvePoints, CURVES_MIN_POLY_POINTS); + DiagonalCurve brightcurve (brightcurvePoints, CURVES_MIN_POLY_POINTS); // Applying brightness curve for (int i = 0; i < 32768; i++) { @@ -221,12 +221,12 @@ void Ciecam02::curveJfloat (float br, float contr, const LUTu & histogram, LUTf val = brightcurve.getVal (val); // store result - outCurve[i] = CLIPD(val); + outCurve[i] = CLIPD (val); } } else { // set the identity curve - outCurve.makeIdentity(32767.f); + outCurve.makeIdentity (32767.f); } @@ -242,9 +242,9 @@ void Ciecam02::curveJfloat (float br, float contr, const LUTu & histogram, LUTf } avg /= sum; - std::vector contrastcurvePoints(9); + std::vector contrastcurvePoints (9); - contrastcurvePoints[0] = double(DCT_NURBS); + contrastcurvePoints[0] = double (DCT_NURBS); contrastcurvePoints[1] = 0.f; // black point. Value in [0 ; 1] range contrastcurvePoints[2] = 0.f; // black point. Value in [0 ; 1] range @@ -258,11 +258,11 @@ void Ciecam02::curveJfloat (float br, float contr, const LUTu & histogram, LUTf contrastcurvePoints[7] = 1.f; // white point contrastcurvePoints[8] = 1.f; // value at white point - DiagonalCurve contrastcurve(contrastcurvePoints, CURVES_MIN_POLY_POINTS); + DiagonalCurve contrastcurve (contrastcurvePoints, CURVES_MIN_POLY_POINTS); // apply contrast enhancement for (int i = 0; i < 32768; i++) { - outCurve[i] = contrastcurve.getVal(outCurve[i]); + outCurve[i] = contrastcurve.getVal (outCurve[i]); } } @@ -295,17 +295,17 @@ void Ciecam02::curveJfloat (float br, float contr, const LUTu & histogram, LUTf * */ -double Ciecam02::d_factor( double f, double la ) +double Ciecam02::d_factor ( double f, double la ) { - return f * (1.0 - ((1.0 / 3.6) * exp((-la - 42.0) / 92.0))); + return f * (1.0 - ((1.0 / 3.6) * exp ((-la - 42.0) / 92.0))); } -float Ciecam02::d_factorfloat( float f, float la ) +float Ciecam02::d_factorfloat ( float f, float la ) { - return f * (1.0f - ((1.0f / 3.6f) * xexpf((-la - 42.0f) / 92.0f))); + return f * (1.0f - ((1.0f / 3.6f) * xexpf ((-la - 42.0f) / 92.0f))); } -double Ciecam02::calculate_fl_from_la_ciecam02( double la ) +double Ciecam02::calculate_fl_from_la_ciecam02 ( double la ) { double la5 = la * 5.0; double k = 1.0 / (la5 + 1.0); @@ -314,10 +314,10 @@ double Ciecam02::calculate_fl_from_la_ciecam02( double la ) k = k * k; k = k * k; - return (0.2 * k * la5) + (0.1 * (1.0 - k) * (1.0 - k) * std::cbrt(la5)); + return (0.2 * k * la5) + (0.1 * (1.0 - k) * (1.0 - k) * std::cbrt (la5)); } -float Ciecam02::calculate_fl_from_la_ciecam02float( float la ) +float Ciecam02::calculate_fl_from_la_ciecam02float ( float la ) { float la5 = la * 5.0f; float k = 1.0f / (la5 + 1.0f); @@ -326,66 +326,66 @@ float Ciecam02::calculate_fl_from_la_ciecam02float( float la ) k = k * k; k = k * k; - return (0.2f * k * la5) + (0.1f * (1.0f - k) * (1.0f - k) * std::cbrt(la5)); + return (0.2f * k * la5) + (0.1f * (1.0f - k) * (1.0f - k) * std::cbrt (la5)); } -double Ciecam02::achromatic_response_to_white( double x, double y, double z, double d, double fl, double nbb, int gamu ) +double Ciecam02::achromatic_response_to_white ( double x, double y, double z, double d, double fl, double nbb, int gamu ) { double r, g, b; double rc, gc, bc; double rp, gp, bp; double rpa, gpa, bpa; gamu = 1; - xyz_to_cat02( r, g, b, x, y, z, gamu ); + xyz_to_cat02 ( r, g, b, x, y, z, gamu ); rc = r * (((y * d) / r) + (1.0 - d)); gc = g * (((y * d) / g) + (1.0 - d)); bc = b * (((y * d) / b) + (1.0 - d)); - cat02_to_hpe( rp, gp, bp, rc, gc, bc, gamu ); + cat02_to_hpe ( rp, gp, bp, rc, gc, bc, gamu ); if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk - rp = MAXR(rp, 0.0); - gp = MAXR(gp, 0.0); - bp = MAXR(bp, 0.0); + rp = MAXR (rp, 0.0); + gp = MAXR (gp, 0.0); + bp = MAXR (bp, 0.0); } - rpa = nonlinear_adaptation( rp, fl ); - gpa = nonlinear_adaptation( gp, fl ); - bpa = nonlinear_adaptation( bp, fl ); + rpa = nonlinear_adaptation ( rp, fl ); + gpa = nonlinear_adaptation ( gp, fl ); + bpa = nonlinear_adaptation ( bp, fl ); return ((2.0 * rpa) + gpa + ((1.0 / 20.0) * bpa) - 0.305) * nbb; } -float Ciecam02::achromatic_response_to_whitefloat( float x, float y, float z, float d, float fl, float nbb, int gamu ) +float Ciecam02::achromatic_response_to_whitefloat ( float x, float y, float z, float d, float fl, float nbb, int gamu ) { float r, g, b; float rc, gc, bc; float rp, gp, bp; float rpa, gpa, bpa; gamu = 1; - xyz_to_cat02float( r, g, b, x, y, z, gamu ); + xyz_to_cat02float ( r, g, b, x, y, z, gamu ); rc = r * (((y * d) / r) + (1.0f - d)); gc = g * (((y * d) / g) + (1.0f - d)); bc = b * (((y * d) / b) + (1.0f - d)); - cat02_to_hpefloat( rp, gp, bp, rc, gc, bc, gamu ); + cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc, gamu ); if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk - rp = MAXR(rp, 0.0f); - gp = MAXR(gp, 0.0f); - bp = MAXR(bp, 0.0f); + rp = MAXR (rp, 0.0f); + gp = MAXR (gp, 0.0f); + bp = MAXR (bp, 0.0f); } - rpa = nonlinear_adaptationfloat( rp, fl ); - gpa = nonlinear_adaptationfloat( gp, fl ); - bpa = nonlinear_adaptationfloat( bp, fl ); + rpa = nonlinear_adaptationfloat ( rp, fl ); + gpa = nonlinear_adaptationfloat ( gp, fl ); + bpa = nonlinear_adaptationfloat ( bp, fl ); return ((2.0f * rpa) + gpa + ((1.0f / 20.0f) * bpa) - 0.305f) * nbb; } -void Ciecam02::xyz_to_cat02( double &r, double &g, double &b, double x, double y, double z, int gamu ) +void Ciecam02::xyz_to_cat02 ( double &r, double &g, double &b, double x, double y, double z, int gamu ) { gamu = 1; @@ -403,7 +403,7 @@ void Ciecam02::xyz_to_cat02( double &r, double &g, double &b, double x, double y } } -void Ciecam02::xyz_to_cat02float( float &r, float &g, float &b, float x, float y, float z, int gamu ) +void Ciecam02::xyz_to_cat02float ( float &r, float &g, float &b, float x, float y, float z, int gamu ) { gamu = 1; @@ -421,16 +421,16 @@ void Ciecam02::xyz_to_cat02float( float &r, float &g, float &b, float x, float y } } #ifdef __SSE2__ -void Ciecam02::xyz_to_cat02float( vfloat &r, vfloat &g, vfloat &b, vfloat x, vfloat y, vfloat z ) +void Ciecam02::xyz_to_cat02float ( vfloat &r, vfloat &g, vfloat &b, vfloat x, vfloat y, vfloat z ) { //gamut correction M.H.Brill S.Susstrunk - r = ( F2V(1.007245f) * x) + (F2V(0.011136f) * y) - (F2V(0.018381f) * z);//Changjun Li - g = (F2V(-0.318061f) * x) + (F2V(1.314589f) * y) + (F2V(0.003471f) * z); + r = ( F2V (1.007245f) * x) + (F2V (0.011136f) * y) - (F2V (0.018381f) * z); //Changjun Li + g = (F2V (-0.318061f) * x) + (F2V (1.314589f) * y) + (F2V (0.003471f) * z); b = z; } #endif -void Ciecam02::cat02_to_xyz( double &x, double &y, double &z, double r, double g, double b, int gamu ) +void Ciecam02::cat02_to_xyz ( double &x, double &y, double &z, double r, double g, double b, int gamu ) { gamu = 1; @@ -448,7 +448,7 @@ void Ciecam02::cat02_to_xyz( double &x, double &y, double &z, double r, double g } } -void Ciecam02::cat02_to_xyzfloat( float &x, float &y, float &z, float r, float g, float b, int gamu ) +void Ciecam02::cat02_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b, int gamu ) { gamu = 1; @@ -466,16 +466,16 @@ void Ciecam02::cat02_to_xyzfloat( float &x, float &y, float &z, float r, float g } } #ifdef __SSE2__ -void Ciecam02::cat02_to_xyzfloat( vfloat &x, vfloat &y, vfloat &z, vfloat r, vfloat g, vfloat b ) +void Ciecam02::cat02_to_xyzfloat ( vfloat &x, vfloat &y, vfloat &z, vfloat r, vfloat g, vfloat b ) { //gamut correction M.H.Brill S.Susstrunk - x = ( F2V(0.99015849f) * r) - (F2V(0.00838772f) * g) + (F2V(0.018229217f) * b); //Changjun Li - y = ( F2V(0.239565979f) * r) + (F2V(0.758664642f) * g) + (F2V(0.001770137f) * b); + x = ( F2V (0.99015849f) * r) - (F2V (0.00838772f) * g) + (F2V (0.018229217f) * b); //Changjun Li + y = ( F2V (0.239565979f) * r) + (F2V (0.758664642f) * g) + (F2V (0.001770137f) * b); z = b; } #endif -void Ciecam02::hpe_to_xyz( double &x, double &y, double &z, double r, double g, double b ) +void Ciecam02::hpe_to_xyz ( double &x, double &y, double &z, double r, double g, double b ) { x = (1.910197 * r) - (1.112124 * g) + (0.201908 * b); y = (0.370950 * r) + (0.629054 * g) - (0.000008 * b); @@ -483,22 +483,22 @@ void Ciecam02::hpe_to_xyz( double &x, double &y, double &z, double r, double g, } -void Ciecam02::hpe_to_xyzfloat( float &x, float &y, float &z, float r, float g, float b ) +void Ciecam02::hpe_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b ) { x = (1.910197f * r) - (1.112124f * g) + (0.201908f * b); y = (0.370950f * r) + (0.629054f * g) - (0.000008f * b); z = b; } #ifdef __SSE2__ -void Ciecam02::hpe_to_xyzfloat( vfloat &x, vfloat &y, vfloat &z, vfloat r, vfloat g, vfloat b ) +void Ciecam02::hpe_to_xyzfloat ( vfloat &x, vfloat &y, vfloat &z, vfloat r, vfloat g, vfloat b ) { - x = (F2V(1.910197f) * r) - (F2V(1.112124f) * g) + (F2V(0.201908f) * b); - y = (F2V(0.370950f) * r) + (F2V(0.629054f) * g) - (F2V(0.000008f) * b); + x = (F2V (1.910197f) * r) - (F2V (1.112124f) * g) + (F2V (0.201908f) * b); + y = (F2V (0.370950f) * r) + (F2V (0.629054f) * g) - (F2V (0.000008f) * b); z = b; } #endif -void Ciecam02::cat02_to_hpe( double &rh, double &gh, double &bh, double r, double g, double b, int gamu ) +void Ciecam02::cat02_to_hpe ( double &rh, double &gh, double &bh, double r, double g, double b, int gamu ) { gamu = 1; @@ -513,7 +513,7 @@ void Ciecam02::cat02_to_hpe( double &rh, double &gh, double &bh, double r, doubl } } -void Ciecam02::cat02_to_hpefloat( float &rh, float &gh, float &bh, float r, float g, float b, int gamu ) +void Ciecam02::cat02_to_hpefloat ( float &rh, float &gh, float &bh, float r, float g, float b, int gamu ) { gamu = 1; @@ -529,16 +529,16 @@ void Ciecam02::cat02_to_hpefloat( float &rh, float &gh, float &bh, float r, floa } #ifdef __SSE2__ -void Ciecam02::cat02_to_hpefloat( vfloat &rh, vfloat &gh, vfloat &bh, vfloat r, vfloat g, vfloat b) +void Ciecam02::cat02_to_hpefloat ( vfloat &rh, vfloat &gh, vfloat &bh, vfloat r, vfloat g, vfloat b) { //Changjun Li - rh = ( F2V(0.550930835f) * r) + (F2V(0.519435987f) * g) - ( F2V(0.070356303f) * b); - gh = ( F2V(0.055954056f) * r) + (F2V(0.89973132f) * g) + (F2V(0.044315524f) * b); + rh = ( F2V (0.550930835f) * r) + (F2V (0.519435987f) * g) - ( F2V (0.070356303f) * b); + gh = ( F2V (0.055954056f) * r) + (F2V (0.89973132f) * g) + (F2V (0.044315524f) * b); bh = b; } #endif -void Ciecam02::Aab_to_rgb( double &r, double &g, double &b, double A, double aa, double bb, double nbb ) +void Ciecam02::Aab_to_rgb ( double &r, double &g, double &b, double A, double aa, double bb, double nbb ) { double x = (A / nbb) + 0.305; @@ -550,7 +550,7 @@ void Ciecam02::Aab_to_rgb( double &r, double &g, double &b, double A, double aa, b = (0.32787 * x) - (0.15681 * aa) - (4.49038 * bb); } -void Ciecam02::Aab_to_rgbfloat( float &r, float &g, float &b, float A, float aa, float bb, float nbb ) +void Ciecam02::Aab_to_rgbfloat ( float &r, float &g, float &b, float A, float aa, float bb, float nbb ) { float x = (A / nbb) + 0.305f; @@ -562,28 +562,28 @@ void Ciecam02::Aab_to_rgbfloat( float &r, float &g, float &b, float A, float aa, b = (0.32787f * x) - (0.15681f * aa) - (4.49038f * bb); } #ifdef __SSE2__ -void Ciecam02::Aab_to_rgbfloat( vfloat &r, vfloat &g, vfloat &b, vfloat A, vfloat aa, vfloat bb, vfloat nbb ) +void Ciecam02::Aab_to_rgbfloat ( vfloat &r, vfloat &g, vfloat &b, vfloat A, vfloat aa, vfloat bb, vfloat nbb ) { - vfloat c1 = F2V(0.32787f) * ((A / nbb) + F2V(0.305f)); + vfloat c1 = F2V (0.32787f) * ((A / nbb) + F2V (0.305f)); /* c1 c2 c3 */ - r = c1 + (F2V(0.32145f) * aa) + (F2V(0.20527f) * bb); + r = c1 + (F2V (0.32145f) * aa) + (F2V (0.20527f) * bb); /* c1 c4 c5 */ - g = c1 - (F2V(0.63507f) * aa) - (F2V(0.18603f) * bb); + g = c1 - (F2V (0.63507f) * aa) - (F2V (0.18603f) * bb); /* c1 c6 c7 */ - b = c1 - (F2V(0.15681f) * aa) - (F2V(4.49038f) * bb); + b = c1 - (F2V (0.15681f) * aa) - (F2V (4.49038f) * bb); } #endif -void Ciecam02::calculate_ab( double &aa, double &bb, double h, double e, double t, double nbb, double a ) +void Ciecam02::calculate_ab ( double &aa, double &bb, double h, double e, double t, double nbb, double a ) { double hrad = (h * rtengine::RT_PI) / 180.0; - double sinh = sin( hrad ); - double cosh = cos( hrad ); + double sinh = sin ( hrad ); + double cosh = cos ( hrad ); double x = (a / nbb) + 0.305; double p3 = 21.0 / 20.0; - if ( fabs( sinh ) >= fabs( cosh ) ) { + if ( fabs ( sinh ) >= fabs ( cosh ) ) { bb = ((0.32787 * x) * (2.0 + p3)) / ((e / (t * sinh)) - // ((0.32145 - 0.63507 - (p3 * 0.15681)) * (cosh / sinh)) - @@ -603,24 +603,24 @@ void Ciecam02::calculate_ab( double &aa, double &bb, double h, double e, double bb = (aa * sinh) / cosh; } } -void Ciecam02::calculate_abfloat( float &aa, float &bb, float h, float e, float t, float nbb, float a ) +void Ciecam02::calculate_abfloat ( float &aa, float &bb, float h, float e, float t, float nbb, float a ) { - float2 sincosval = xsincosf((h * rtengine::RT_PI) / 180.0f); + float2 sincosval = xsincosf ((h * rtengine::RT_PI) / 180.0f); float sinh = sincosval.x; float cosh = sincosval.y; float x = (a / nbb) + 0.305f; float p3 = 1.05f; - bool swapValues = fabs( sinh ) > fabs( cosh ); + bool swapValues = fabs ( sinh ) > fabs ( cosh ); if (swapValues) { - std::swap(sinh, cosh); + std::swap (sinh, cosh); } float c1 = 1.f; float c2 = sinh / cosh; if (swapValues) { - std::swap(c1, c2); + std::swap (c1, c2); } float div = ((e / (t * cosh)) - (-0.31362f - (p3 * 0.15681f)) * c1 - ((0.01924f - (p3 * 4.49038f)) * (c2))); @@ -629,7 +629,7 @@ void Ciecam02::calculate_abfloat( float &aa, float &bb, float h, float e, float // Additionally it seems useful to limit the minimum value of div // I limited it, but I'm sure the actual limit is not the best one - if (signf(div) != signf(cosh) || fabsf(div) <= fabsf(cosh) * 2.f) { + if (signf (div) != signf (cosh) || fabsf (div) <= fabsf (cosh) * 2.f) { div = cosh * 2.f; } @@ -637,132 +637,146 @@ void Ciecam02::calculate_abfloat( float &aa, float &bb, float h, float e, float bb = (aa * sinh) / cosh; if (swapValues) { - std::swap(aa, bb); + std::swap (aa, bb); } } #ifdef __SSE2__ -void Ciecam02::calculate_abfloat( vfloat &aa, vfloat &bb, vfloat h, vfloat e, vfloat t, vfloat nbb, vfloat a ) +void Ciecam02::calculate_abfloat ( vfloat &aa, vfloat &bb, vfloat h, vfloat e, vfloat t, vfloat nbb, vfloat a ) { - vfloat2 sincosval = xsincosf((h * F2V(rtengine::RT_PI)) / F2V(180.0f)); + vfloat2 sincosval = xsincosf ((h * F2V (rtengine::RT_PI)) / F2V (180.0f)); vfloat sinh = sincosval.x; vfloat cosh = sincosval.y; - vfloat x = (a / nbb) + F2V(0.305f); - vfloat p3 = F2V(1.05f); - vmask swapMask = vmaskf_gt(vabsf(sinh), vabsf(cosh)); - vswap(swapMask, sinh, cosh); - vfloat c1 = F2V(1.f); + vfloat x = (a / nbb) + F2V (0.305f); + vfloat p3 = F2V (1.05f); + vmask swapMask = vmaskf_gt (vabsf (sinh), vabsf (cosh)); + vswap (swapMask, sinh, cosh); + vfloat c1 = F2V (1.f); vfloat c2 = sinh / cosh; - vswap(swapMask, c1, c2); + vswap (swapMask, c1, c2); - vfloat div = ((e / (t * cosh)) - (F2V(-0.31362f) - (p3 * F2V(0.15681f))) * c1 - ((F2V(0.01924f) - (p3 * F2V(4.49038f))) * (c2))); + vfloat div = ((e / (t * cosh)) - (F2V (-0.31362f) - (p3 * F2V (0.15681f))) * c1 - ((F2V (0.01924f) - (p3 * F2V (4.49038f))) * (c2))); // for large values of t the above calculation can change its sign which results in a hue shift of 180 degree // so we have to check the sign to avoid this shift. // Additionally it seems useful to limit the minimum value of div // I limited it, but I'm sure the actual limit is not the best one - vmask limitMask = vmaskf_neq(vsignf(div), vsignf(cosh)); - limitMask = vorm(limitMask, vmaskf_le(vabsf(div), vabsf(cosh) * F2V(2.f))); - div = vself(limitMask, cosh * F2V(2.f), div); + vmask limitMask = vmaskf_neq (vsignf (div), vsignf (cosh)); + limitMask = vorm (limitMask, vmaskf_le (vabsf (div), vabsf (cosh) * F2V (2.f))); + div = vself (limitMask, cosh * F2V (2.f), div); - aa = ((F2V(0.32787f) * x) * (F2V(2.0f) + p3)) / div; + aa = ((F2V (0.32787f) * x) * (F2V (2.0f) + p3)) / div; bb = (aa * sinh) / cosh; - vswap(swapMask, aa, bb); + vswap (swapMask, aa, bb); } #endif -void Ciecam02::initcam1(double gamu, double yb, double pilotd, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb, - double &cz, double &aw, double &wh, double &pfl, double &fl, double &c) +void Ciecam02::initcam1 (double gamu, double yb, double pilotd, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb, + double &cz, double &aw, double &wh, double &pfl, double &fl, double &c) { n = yb / yw; if (pilotd == 2.0) { - d = d_factor( f, la ); + d = d_factor ( f, la ); } else { d = pilotd; } - fl = calculate_fl_from_la_ciecam02( la ); - nbb = ncb = 0.725 * pow( 1.0 / n, 0.2 ); - cz = 1.48 + sqrt( n ); - aw = achromatic_response_to_white( xw, yw, zw, d, fl, nbb, gamu ); - wh = ( 4.0 / c ) * ( aw + 4.0 ) * pow( fl, 0.25 ); - pfl = pow( fl, 0.25 ); + fl = calculate_fl_from_la_ciecam02 ( la ); + nbb = ncb = 0.725 * pow ( 1.0 / n, 0.2 ); + cz = 1.48 + sqrt ( n ); + aw = achromatic_response_to_white ( xw, yw, zw, d, fl, nbb, gamu ); + wh = ( 4.0 / c ) * ( aw + 4.0 ) * pow ( fl, 0.25 ); + pfl = pow ( fl, 0.25 ); #ifdef _DEBUG if (settings->verbose) { - printf("Source double d=%f aw=%f fl=%f wh=%f\n", d, aw, fl, wh); + printf ("Source double d=%f aw=%f fl=%f wh=%f\n", d, aw, fl, wh); } #endif } -void Ciecam02::initcam1float(float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, - float &cz, float &aw, float &wh, float &pfl, float &fl, float &c) +void Ciecam02::initcam1float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, + float &cz, float &aw, float &wh, float &pfl, float &fl, float &c) { n = yb / yw; if (pilotd == 2.0) { - d = d_factorfloat( f, la ); + d = d_factorfloat ( f, la ); } else { d = pilotd; } - fl = calculate_fl_from_la_ciecam02float( la ); - nbb = ncb = 0.725f * pow_F( 1.0f / n, 0.2f ); - cz = 1.48f + sqrt( n ); - aw = achromatic_response_to_whitefloat( xw, yw, zw, d, fl, nbb, gamu ); - wh = ( 4.0f / c ) * ( aw + 4.0f ) * pow_F( fl, 0.25f ); - pfl = pow_F( fl, 0.25f ); + fl = calculate_fl_from_la_ciecam02float ( la ); + nbb = ncb = 0.725f * pow_F ( 1.0f / n, 0.2f ); + cz = 1.48f + sqrt ( n ); + aw = achromatic_response_to_whitefloat ( xw, yw, zw, d, fl, nbb, gamu ); + wh = ( 4.0f / c ) * ( aw + 4.0f ) * pow_F ( fl, 0.25f ); + pfl = pow_F ( fl, 0.25f ); #ifdef _DEBUG if (settings->verbose) { - printf("Source float d=%f aw=%f fl=%f wh=%f c=%f awc=%f\n", d, aw, fl, wh, c, (4.f / c) * (aw + 4.f)); + printf ("Source float d=%f aw=%f fl=%f wh=%f c=%f awc=%f\n", d, aw, fl, wh, c, (4.f / c) * (aw + 4.f)); } #endif } -void Ciecam02::initcam2(double gamu, double yb, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb, - double &cz, double &aw, double &fl) +void Ciecam02::initcam2 (double gamu, double yb, double pilotd, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb, + double &cz, double &aw, double &fl) { n = yb / yw; - d = d_factor( f, la ); - fl = calculate_fl_from_la_ciecam02( la ); - nbb = ncb = 0.725 * pow( 1.0 / n, 0.2 ); - cz = 1.48 + sqrt( n ); - aw = achromatic_response_to_white( xw, yw, zw, d, fl, nbb, gamu ); + + if (pilotd == 2.0) { + d = d_factorfloat ( f, la ); + } else { + d = pilotd; + } + +// d = d_factor( f, la ); + fl = calculate_fl_from_la_ciecam02 ( la ); + nbb = ncb = 0.725 * pow ( 1.0 / n, 0.2 ); + cz = 1.48 + sqrt ( n ); + aw = achromatic_response_to_white ( xw, yw, zw, d, fl, nbb, gamu ); #ifdef _DEBUG if (settings->verbose) { - printf("Viewing double d=%f aw=%f fl=%f n=%f\n", d, aw, fl, n); + printf ("Viewing double d=%f aw=%f fl=%f n=%f\n", d, aw, fl, n); } #endif } -void Ciecam02::initcam2float(float gamu, float yb, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, - float &cz, float &aw, float &fl) +void Ciecam02::initcam2float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, + float &cz, float &aw, float &fl) { n = yb / yw; - d = d_factorfloat( f, la ); - fl = calculate_fl_from_la_ciecam02float( la ); - nbb = ncb = 0.725f * pow_F( 1.0f / n, 0.2f ); - cz = 1.48f + sqrt( n ); - aw = achromatic_response_to_whitefloat( xw, yw, zw, d, fl, nbb, gamu ); + + if (pilotd == 2.0) { + d = d_factorfloat ( f, la ); + } else { + d = pilotd; + } + +// d = d_factorfloat( f, la ); + fl = calculate_fl_from_la_ciecam02float ( la ); + nbb = ncb = 0.725f * pow_F ( 1.0f / n, 0.2f ); + cz = 1.48f + sqrt ( n ); + aw = achromatic_response_to_whitefloat ( xw, yw, zw, d, fl, nbb, gamu ); #ifdef _DEBUG if (settings->verbose) { - printf("Viewing float d=%f aw=%f fl=%f n=%f\n", d, aw, fl, n); + printf ("Viewing float d=%f aw=%f fl=%f n=%f\n", d, aw, fl, n); } #endif } -void Ciecam02::xyz2jchqms_ciecam02( double &J, double &C, double &h, double &Q, double &M, double &s, double &aw, double &fl, double &wh, - double x, double y, double z, double xw, double yw, double zw, - double yb, double la, double f, double c, double nc, double pilotd, int gamu , double n, double nbb, double ncb, double pfl, double cz, double d) +void Ciecam02::xyz2jchqms_ciecam02 ( double &J, double &C, double &h, double &Q, double &M, double &s, double &aw, double &fl, double &wh, + double x, double y, double z, double xw, double yw, double zw, + double yb, double la, double f, double c, double nc, double pilotd, int gamu, double n, double nbb, double ncb, double pfl, double cz, double d) { double r, g, b; double rw, gw, bw; @@ -773,28 +787,28 @@ void Ciecam02::xyz2jchqms_ciecam02( double &J, double &C, double &h, double &Q, double e, t; double myh; gamu = 1; - xyz_to_cat02( r, g, b, x, y, z, gamu ); - xyz_to_cat02( rw, gw, bw, xw, yw, zw, gamu ); + xyz_to_cat02 ( r, g, b, x, y, z, gamu ); + xyz_to_cat02 ( rw, gw, bw, xw, yw, zw, gamu ); rc = r * (((yw * d) / rw) + (1.0 - d)); gc = g * (((yw * d) / gw) + (1.0 - d)); bc = b * (((yw * d) / bw) + (1.0 - d)); - cat02_to_hpe( rp, gp, bp, rc, gc, bc, gamu ); + cat02_to_hpe ( rp, gp, bp, rc, gc, bc, gamu ); if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk - rp = MAXR(rp, 0.0); - gp = MAXR(gp, 0.0); - bp = MAXR(bp, 0.0); + rp = MAXR (rp, 0.0); + gp = MAXR (gp, 0.0); + bp = MAXR (bp, 0.0); } - rpa = nonlinear_adaptation( rp, fl ); - gpa = nonlinear_adaptation( gp, fl ); - bpa = nonlinear_adaptation( bp, fl ); + rpa = nonlinear_adaptation ( rp, fl ); + gpa = nonlinear_adaptation ( gp, fl ); + bpa = nonlinear_adaptation ( bp, fl ); ca = rpa - ((12.0 * gpa) / 11.0) + (bpa / 11.0); cb = (1.0 / 9.0) * (rpa + gpa - (2.0 * bpa)); - myh = (180.0 / rtengine::RT_PI) * atan2( cb, ca ); + myh = (180.0 / rtengine::RT_PI) * atan2 ( cb, ca ); if ( myh < 0.0 ) { myh += 360.0; @@ -826,24 +840,24 @@ void Ciecam02::xyz2jchqms_ciecam02( double &J, double &C, double &h, double &Q, a = ((2.0 * rpa) + gpa + ((1.0 / 20.0) * bpa) - 0.305) * nbb; if (gamu == 1) { - a = MAXR(a, 0.0); //gamut correction M.H.Brill S.Susstrunk + a = MAXR (a, 0.0); //gamut correction M.H.Brill S.Susstrunk } - J = 100.0 * pow( a / aw, c * cz ); + J = 100.0 * pow ( a / aw, c * cz ); - e = ((12500.0 / 13.0) * nc * ncb) * (cos( ((myh * rtengine::RT_PI) / 180.0) + 2.0 ) + 3.8); - t = (e * sqrt( (ca * ca) + (cb * cb) )) / (rpa + gpa + ((21.0 / 20.0) * bpa)); + e = ((12500.0 / 13.0) * nc * ncb) * (cos ( ((myh * rtengine::RT_PI) / 180.0) + 2.0 ) + 3.8); + t = (e * sqrt ( (ca * ca) + (cb * cb) )) / (rpa + gpa + ((21.0 / 20.0) * bpa)); - C = pow( t, 0.9 ) * sqrt( J / 100.0 ) - * pow( 1.64 - pow( 0.29, n ), 0.73 ); + C = pow ( t, 0.9 ) * sqrt ( J / 100.0 ) + * pow ( 1.64 - pow ( 0.29, n ), 0.73 ); - Q = wh * sqrt( J / 100.0 ); + Q = wh * sqrt ( J / 100.0 ); M = C * pfl; - s = 100.0 * sqrt( M / Q ); + s = 100.0 * sqrt ( M / Q ); h = myh; } -void Ciecam02::xyz2jchqms_ciecam02float( float &J, float &C, float &h, float &Q, float &M, float &s, float aw, float fl, float wh, +void Ciecam02::xyz2jchqms_ciecam02float ( float &J, float &C, float &h, float &Q, float &M, float &s, float aw, float fl, float wh, float x, float y, float z, float xw, float yw, float zw, float c, float nc, int gamu, float pow1, float nbb, float ncb, float pfl, float cz, float d) @@ -857,28 +871,28 @@ void Ciecam02::xyz2jchqms_ciecam02float( float &J, float &C, float &h, float &Q, float e, t; float myh; gamu = 1; - xyz_to_cat02float( r, g, b, x, y, z, gamu ); - xyz_to_cat02float( rw, gw, bw, xw, yw, zw, gamu ); + xyz_to_cat02float ( r, g, b, x, y, z, gamu ); + xyz_to_cat02float ( rw, gw, bw, xw, yw, zw, gamu ); rc = r * (((yw * d) / rw) + (1.f - d)); gc = g * (((yw * d) / gw) + (1.f - d)); bc = b * (((yw * d) / bw) + (1.f - d)); - cat02_to_hpefloat( rp, gp, bp, rc, gc, bc, gamu ); + cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc, gamu ); if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk - rp = MAXR(rp, 0.0f); - gp = MAXR(gp, 0.0f); - bp = MAXR(bp, 0.0f); + rp = MAXR (rp, 0.0f); + gp = MAXR (gp, 0.0f); + bp = MAXR (bp, 0.0f); } - rpa = nonlinear_adaptationfloat( rp, fl ); - gpa = nonlinear_adaptationfloat( gp, fl ); - bpa = nonlinear_adaptationfloat( bp, fl ); + rpa = nonlinear_adaptationfloat ( rp, fl ); + gpa = nonlinear_adaptationfloat ( gp, fl ); + bpa = nonlinear_adaptationfloat ( bp, fl ); ca = rpa - ((12.0f * gpa) - bpa) / 11.0f; cb = (0.11111111f) * (rpa + gpa - (2.0f * bpa)); - myh = xatan2f( cb, ca ); + myh = xatan2f ( cb, ca ); if ( myh < 0.0f ) { myh += (2.f * rtengine::RT_PI); @@ -887,25 +901,25 @@ void Ciecam02::xyz2jchqms_ciecam02float( float &J, float &C, float &h, float &Q, a = ((2.0f * rpa) + gpa + (0.05f * bpa) - 0.305f) * nbb; if (gamu == 1) { - a = MAXR(a, 0.0f); //gamut correction M.H.Brill S.Susstrunk + a = MAXR (a, 0.0f); //gamut correction M.H.Brill S.Susstrunk } - J = pow_F( a / aw, c * cz * 0.5f); + J = pow_F ( a / aw, c * cz * 0.5f); - e = ((961.53846f) * nc * ncb) * (xcosf( myh + 2.0f ) + 3.8f); - t = (e * sqrtf( (ca * ca) + (cb * cb) )) / (rpa + gpa + (1.05f * bpa)); + e = ((961.53846f) * nc * ncb) * (xcosf ( myh + 2.0f ) + 3.8f); + t = (e * sqrtf ( (ca * ca) + (cb * cb) )) / (rpa + gpa + (1.05f * bpa)); - C = pow_F( t, 0.9f ) * J * pow1; + C = pow_F ( t, 0.9f ) * J * pow1; Q = wh * J; J *= J * 100.0f; M = C * pfl; Q = (Q == 0.f ? 0.0001f : Q); // avoid division by zero - s = 100.0f * sqrtf( M / Q ); + s = 100.0f * sqrtf ( M / Q ); h = (myh * 180.f) / (float)rtengine::RT_PI; } #ifdef __SSE2__ -void Ciecam02::xyz2jchqms_ciecam02float( vfloat &J, vfloat &C, vfloat &h, vfloat &Q, vfloat &M, vfloat &s, vfloat aw, vfloat fl, vfloat wh, +void Ciecam02::xyz2jchqms_ciecam02float ( vfloat &J, vfloat &C, vfloat &h, vfloat &Q, vfloat &M, vfloat &s, vfloat aw, vfloat fl, vfloat wh, vfloat x, vfloat y, vfloat z, vfloat xw, vfloat yw, vfloat zw, vfloat c, vfloat nc, vfloat pow1, vfloat nbb, vfloat ncb, vfloat pfl, vfloat cz, vfloat d) @@ -918,53 +932,53 @@ void Ciecam02::xyz2jchqms_ciecam02float( vfloat &J, vfloat &C, vfloat &h, vfloat vfloat a, ca, cb; vfloat e, t; - xyz_to_cat02float( r, g, b, x, y, z); - xyz_to_cat02float( rw, gw, bw, xw, yw, zw); - vfloat onev = F2V(1.f); + xyz_to_cat02float ( r, g, b, x, y, z); + xyz_to_cat02float ( rw, gw, bw, xw, yw, zw); + vfloat onev = F2V (1.f); rc = r * (((yw * d) / rw) + (onev - d)); gc = g * (((yw * d) / gw) + (onev - d)); bc = b * (((yw * d) / bw) + (onev - d)); - cat02_to_hpefloat( rp, gp, bp, rc, gc, bc); + cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc); //gamut correction M.H.Brill S.Susstrunk - rp = _mm_max_ps(rp, ZEROV); - gp = _mm_max_ps(gp, ZEROV); - bp = _mm_max_ps(bp, ZEROV); - rpa = nonlinear_adaptationfloat( rp, fl ); - gpa = nonlinear_adaptationfloat( gp, fl ); - bpa = nonlinear_adaptationfloat( bp, fl ); + rp = _mm_max_ps (rp, ZEROV); + gp = _mm_max_ps (gp, ZEROV); + bp = _mm_max_ps (bp, ZEROV); + rpa = nonlinear_adaptationfloat ( rp, fl ); + gpa = nonlinear_adaptationfloat ( gp, fl ); + bpa = nonlinear_adaptationfloat ( bp, fl ); - ca = rpa - ((F2V(12.0f) * gpa) - bpa) / F2V(11.0f); - cb = F2V(0.11111111f) * (rpa + gpa - (bpa + bpa)); + ca = rpa - ((F2V (12.0f) * gpa) - bpa) / F2V (11.0f); + cb = F2V (0.11111111f) * (rpa + gpa - (bpa + bpa)); - vfloat myh = xatan2f( cb, ca ); - vfloat temp = F2V(rtengine::RT_PI); + vfloat myh = xatan2f ( cb, ca ); + vfloat temp = F2V (rtengine::RT_PI); temp += temp; temp += myh; - myh = vself(vmaskf_lt(myh, ZEROV), temp, myh); + myh = vself (vmaskf_lt (myh, ZEROV), temp, myh); - a = ((rpa + rpa) + gpa + (F2V(0.05f) * bpa) - F2V(0.305f)) * nbb; - a = _mm_max_ps(a, ZEROV); //gamut correction M.H.Brill S.Susstrunk + a = ((rpa + rpa) + gpa + (F2V (0.05f) * bpa) - F2V (0.305f)) * nbb; + a = _mm_max_ps (a, ZEROV); //gamut correction M.H.Brill S.Susstrunk - J = pow_F( a / aw, c * cz * F2V(0.5f)); + J = pow_F ( a / aw, c * cz * F2V (0.5f)); - e = ((F2V(961.53846f)) * nc * ncb) * (xcosf( myh + F2V(2.0f) ) + F2V(3.8f)); - t = (e * _mm_sqrt_ps( (ca * ca) + (cb * cb) )) / (rpa + gpa + (F2V(1.05f) * bpa)); + e = ((F2V (961.53846f)) * nc * ncb) * (xcosf ( myh + F2V (2.0f) ) + F2V (3.8f)); + t = (e * _mm_sqrt_ps ( (ca * ca) + (cb * cb) )) / (rpa + gpa + (F2V (1.05f) * bpa)); - C = pow_F( t, F2V(0.9f) ) * J * pow1; + C = pow_F ( t, F2V (0.9f) ) * J * pow1; Q = wh * J; - J *= J * F2V(100.0f); + J *= J * F2V (100.0f); M = C * pfl; - Q = _mm_max_ps(Q, F2V(0.0001f)); // avoid division by zero - s = F2V(100.0f) * _mm_sqrt_ps( M / Q ); - h = (myh * F2V(180.f)) / F2V(rtengine::RT_PI); + Q = _mm_max_ps (Q, F2V (0.0001f)); // avoid division by zero + s = F2V (100.0f) * _mm_sqrt_ps ( M / Q ); + h = (myh * F2V (180.f)) / F2V (rtengine::RT_PI); } #endif -void Ciecam02::xyz2jch_ciecam02float( float &J, float &C, float &h, float aw, float fl, - float x, float y, float z, float xw, float yw, float zw, - float c, float nc, float pow1, float nbb, float ncb, float cz, float d) +void Ciecam02::xyz2jch_ciecam02float ( float &J, float &C, float &h, float aw, float fl, + float x, float y, float z, float xw, float yw, float zw, + float c, float nc, float pow1, float nbb, float ncb, float cz, float d) { float r, g, b; @@ -976,28 +990,28 @@ void Ciecam02::xyz2jch_ciecam02float( float &J, float &C, float &h, float aw, fl float e, t; float myh; int gamu = 1; - xyz_to_cat02float( r, g, b, x, y, z, gamu ); - xyz_to_cat02float( rw, gw, bw, xw, yw, zw, gamu ); + xyz_to_cat02float ( r, g, b, x, y, z, gamu ); + xyz_to_cat02float ( rw, gw, bw, xw, yw, zw, gamu ); rc = r * (((yw * d) / rw) + (1.f - d)); gc = g * (((yw * d) / gw) + (1.f - d)); bc = b * (((yw * d) / bw) + (1.f - d)); - cat02_to_hpefloat( rp, gp, bp, rc, gc, bc, gamu ); + cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc, gamu ); if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk - rp = MAXR(rp, 0.0f); - gp = MAXR(gp, 0.0f); - bp = MAXR(bp, 0.0f); + rp = MAXR (rp, 0.0f); + gp = MAXR (gp, 0.0f); + bp = MAXR (bp, 0.0f); } - rpa = nonlinear_adaptationfloat( rp, fl ); - gpa = nonlinear_adaptationfloat( gp, fl ); - bpa = nonlinear_adaptationfloat( bp, fl ); + rpa = nonlinear_adaptationfloat ( rp, fl ); + gpa = nonlinear_adaptationfloat ( gp, fl ); + bpa = nonlinear_adaptationfloat ( bp, fl ); ca = rpa - ((12.0f * gpa) - bpa) / 11.0f; cb = (0.11111111f) * (rpa + gpa - (2.0f * bpa)); - myh = xatan2f( cb, ca ); + myh = xatan2f ( cb, ca ); if ( myh < 0.0f ) { myh += (2.f * rtengine::RT_PI); @@ -1006,24 +1020,24 @@ void Ciecam02::xyz2jch_ciecam02float( float &J, float &C, float &h, float aw, fl a = ((2.0f * rpa) + gpa + (0.05f * bpa) - 0.305f) * nbb; if (gamu == 1) { - a = MAXR(a, 0.0f); //gamut correction M.H.Brill S.Susstrunk + a = MAXR (a, 0.0f); //gamut correction M.H.Brill S.Susstrunk } - J = pow_F( a / aw, c * cz * 0.5f); + J = pow_F ( a / aw, c * cz * 0.5f); - e = ((961.53846f) * nc * ncb) * (xcosf( myh + 2.0f ) + 3.8f); - t = (e * sqrtf( (ca * ca) + (cb * cb) )) / (rpa + gpa + (1.05f * bpa)); + e = ((961.53846f) * nc * ncb) * (xcosf ( myh + 2.0f ) + 3.8f); + t = (e * sqrtf ( (ca * ca) + (cb * cb) )) / (rpa + gpa + (1.05f * bpa)); - C = pow_F( t, 0.9f ) * J * pow1; + C = pow_F ( t, 0.9f ) * J * pow1; J *= J * 100.0f; h = (myh * 180.f) / (float)rtengine::RT_PI; } -void Ciecam02::jch2xyz_ciecam02( double &x, double &y, double &z, double J, double C, double h, - double xw, double yw, double zw, double yb, double la, - double f, double c, double nc , int gamu, double n, double nbb, double ncb, double fl, double cz, double d, double aw ) +void Ciecam02::jch2xyz_ciecam02 ( double &x, double &y, double &z, double J, double C, double h, + double xw, double yw, double zw, double yb, double la, + double f, double c, double nc, int gamu, double n, double nbb, double ncb, double fl, double cz, double d, double aw ) { double r, g, b; double rc, gc, bc; @@ -1033,31 +1047,31 @@ void Ciecam02::jch2xyz_ciecam02( double &x, double &y, double &z, double J, doub double a, ca, cb; double e, t; gamu = 1; - xyz_to_cat02( rw, gw, bw, xw, yw, zw, gamu ); - e = ((12500.0 / 13.0) * nc * ncb) * (cos( ((h * rtengine::RT_PI) / 180.0) + 2.0 ) + 3.8); - a = pow( J / 100.0, 1.0 / (c * cz) ) * aw; - t = pow( C / (sqrt( J / 100) * pow( 1.64 - pow( 0.29, n ), 0.73 )), 10.0 / 9.0 ); + xyz_to_cat02 ( rw, gw, bw, xw, yw, zw, gamu ); + e = ((12500.0 / 13.0) * nc * ncb) * (cos ( ((h * rtengine::RT_PI) / 180.0) + 2.0 ) + 3.8); + a = pow ( J / 100.0, 1.0 / (c * cz) ) * aw; + t = pow ( C / (sqrt ( J / 100) * pow ( 1.64 - pow ( 0.29, n ), 0.73 )), 10.0 / 9.0 ); - calculate_ab( ca, cb, h, e, t, nbb, a ); - Aab_to_rgb( rpa, gpa, bpa, a, ca, cb, nbb ); + calculate_ab ( ca, cb, h, e, t, nbb, a ); + Aab_to_rgb ( rpa, gpa, bpa, a, ca, cb, nbb ); - rp = inverse_nonlinear_adaptation( rpa, fl ); - gp = inverse_nonlinear_adaptation( gpa, fl ); - bp = inverse_nonlinear_adaptation( bpa, fl ); + rp = inverse_nonlinear_adaptation ( rpa, fl ); + gp = inverse_nonlinear_adaptation ( gpa, fl ); + bp = inverse_nonlinear_adaptation ( bpa, fl ); - hpe_to_xyz( x, y, z, rp, gp, bp ); - xyz_to_cat02( rc, gc, bc, x, y, z, gamu ); + hpe_to_xyz ( x, y, z, rp, gp, bp ); + xyz_to_cat02 ( rc, gc, bc, x, y, z, gamu ); r = rc / (((yw * d) / rw) + (1.0 - d)); g = gc / (((yw * d) / gw) + (1.0 - d)); b = bc / (((yw * d) / bw) + (1.0 - d)); - cat02_to_xyz( x, y, z, r, g, b, gamu ); + cat02_to_xyz ( x, y, z, r, g, b, gamu ); } -void Ciecam02::jch2xyz_ciecam02float( float &x, float &y, float &z, float J, float C, float h, - float xw, float yw, float zw, - float f, float c, float nc , int gamu, float pow1, float nbb, float ncb, float fl, float cz, float d, float aw) +void Ciecam02::jch2xyz_ciecam02float ( float &x, float &y, float &z, float J, float C, float h, + float xw, float yw, float zw, + float f, float c, float nc, int gamu, float pow1, float nbb, float ncb, float fl, float cz, float d, float aw) { float r, g, b; float rc, gc, bc; @@ -1067,32 +1081,32 @@ void Ciecam02::jch2xyz_ciecam02float( float &x, float &y, float &z, float J, flo float a, ca, cb; float e, t; gamu = 1; - xyz_to_cat02float( rw, gw, bw, xw, yw, zw, gamu ); - e = ((961.53846f) * nc * ncb) * (xcosf( ((h * rtengine::RT_PI) / 180.0f) + 2.0f ) + 3.8f); - a = pow_F( J / 100.0f, 1.0f / (c * cz) ) * aw; - t = pow_F( 10.f * C / (sqrtf( J ) * pow1), 1.1111111f ); + xyz_to_cat02float ( rw, gw, bw, xw, yw, zw, gamu ); + e = ((961.53846f) * nc * ncb) * (xcosf ( ((h * rtengine::RT_PI) / 180.0f) + 2.0f ) + 3.8f); + a = pow_F ( J / 100.0f, 1.0f / (c * cz) ) * aw; + t = pow_F ( 10.f * C / (sqrtf ( J ) * pow1), 1.1111111f ); - calculate_abfloat( ca, cb, h, e, t, nbb, a ); - Aab_to_rgbfloat( rpa, gpa, bpa, a, ca, cb, nbb ); + calculate_abfloat ( ca, cb, h, e, t, nbb, a ); + Aab_to_rgbfloat ( rpa, gpa, bpa, a, ca, cb, nbb ); - rp = inverse_nonlinear_adaptationfloat( rpa, fl ); - gp = inverse_nonlinear_adaptationfloat( gpa, fl ); - bp = inverse_nonlinear_adaptationfloat( bpa, fl ); + rp = inverse_nonlinear_adaptationfloat ( rpa, fl ); + gp = inverse_nonlinear_adaptationfloat ( gpa, fl ); + bp = inverse_nonlinear_adaptationfloat ( bpa, fl ); - hpe_to_xyzfloat( x, y, z, rp, gp, bp ); - xyz_to_cat02float( rc, gc, bc, x, y, z, gamu ); + hpe_to_xyzfloat ( x, y, z, rp, gp, bp ); + xyz_to_cat02float ( rc, gc, bc, x, y, z, gamu ); r = rc / (((yw * d) / rw) + (1.0f - d)); g = gc / (((yw * d) / gw) + (1.0f - d)); b = bc / (((yw * d) / bw) + (1.0f - d)); - cat02_to_xyzfloat( x, y, z, r, g, b, gamu ); + cat02_to_xyzfloat ( x, y, z, r, g, b, gamu ); } #ifdef __SSE2__ -void Ciecam02::jch2xyz_ciecam02float( vfloat &x, vfloat &y, vfloat &z, vfloat J, vfloat C, vfloat h, - vfloat xw, vfloat yw, vfloat zw, - vfloat f, vfloat nc, vfloat pow1, vfloat nbb, vfloat ncb, vfloat fl, vfloat d, vfloat aw, vfloat reccmcz) +void Ciecam02::jch2xyz_ciecam02float ( vfloat &x, vfloat &y, vfloat &z, vfloat J, vfloat C, vfloat h, + vfloat xw, vfloat yw, vfloat zw, + vfloat f, vfloat nc, vfloat pow1, vfloat nbb, vfloat ncb, vfloat fl, vfloat d, vfloat aw, vfloat reccmcz) { vfloat r, g, b; vfloat rc, gc, bc; @@ -1101,70 +1115,70 @@ void Ciecam02::jch2xyz_ciecam02float( vfloat &x, vfloat &y, vfloat &z, vfloat J, vfloat rw, gw, bw; vfloat a, ca, cb; vfloat e, t; - xyz_to_cat02float( rw, gw, bw, xw, yw, zw); - e = ((F2V(961.53846f)) * nc * ncb) * (xcosf( ((h * F2V(rtengine::RT_PI)) / F2V(180.0f)) + F2V(2.0f) ) + F2V(3.8f)); - a = pow_F( J / F2V(100.0f), reccmcz ) * aw; - t = pow_F( F2V(10.f) * C / (_mm_sqrt_ps( J ) * pow1), F2V(1.1111111f) ); + xyz_to_cat02float ( rw, gw, bw, xw, yw, zw); + e = ((F2V (961.53846f)) * nc * ncb) * (xcosf ( ((h * F2V (rtengine::RT_PI)) / F2V (180.0f)) + F2V (2.0f) ) + F2V (3.8f)); + a = pow_F ( J / F2V (100.0f), reccmcz ) * aw; + t = pow_F ( F2V (10.f) * C / (_mm_sqrt_ps ( J ) * pow1), F2V (1.1111111f) ); - calculate_abfloat( ca, cb, h, e, t, nbb, a ); - Aab_to_rgbfloat( rpa, gpa, bpa, a, ca, cb, nbb ); + calculate_abfloat ( ca, cb, h, e, t, nbb, a ); + Aab_to_rgbfloat ( rpa, gpa, bpa, a, ca, cb, nbb ); - rp = inverse_nonlinear_adaptationfloat( rpa, fl ); - gp = inverse_nonlinear_adaptationfloat( gpa, fl ); - bp = inverse_nonlinear_adaptationfloat( bpa, fl ); + rp = inverse_nonlinear_adaptationfloat ( rpa, fl ); + gp = inverse_nonlinear_adaptationfloat ( gpa, fl ); + bp = inverse_nonlinear_adaptationfloat ( bpa, fl ); - hpe_to_xyzfloat( x, y, z, rp, gp, bp ); - xyz_to_cat02float( rc, gc, bc, x, y, z ); + hpe_to_xyzfloat ( x, y, z, rp, gp, bp ); + xyz_to_cat02float ( rc, gc, bc, x, y, z ); - r = rc / (((yw * d) / rw) + (F2V(1.0f) - d)); - g = gc / (((yw * d) / gw) + (F2V(1.0f) - d)); - b = bc / (((yw * d) / bw) + (F2V(1.0f) - d)); + r = rc / (((yw * d) / rw) + (F2V (1.0f) - d)); + g = gc / (((yw * d) / gw) + (F2V (1.0f) - d)); + b = bc / (((yw * d) / bw) + (F2V (1.0f) - d)); - cat02_to_xyzfloat( x, y, z, r, g, b ); + cat02_to_xyzfloat ( x, y, z, r, g, b ); } #endif -double Ciecam02::nonlinear_adaptation( double c, double fl ) +double Ciecam02::nonlinear_adaptation ( double c, double fl ) { double p; if (c < 0.0) { - p = pow( (-1.0 * fl * c) / 100.0, 0.42 ); + p = pow ( (-1.0 * fl * c) / 100.0, 0.42 ); return ((-1.0 * 400.0 * p) / (27.13 + p)) + 0.1; } else { - p = pow( (fl * c) / 100.0, 0.42 ); + p = pow ( (fl * c) / 100.0, 0.42 ); return ((400.0 * p) / (27.13 + p)) + 0.1; } } -float Ciecam02::nonlinear_adaptationfloat( float c, float fl ) +float Ciecam02::nonlinear_adaptationfloat ( float c, float fl ) { float p; if (c < 0.0f) { - p = pow_F( (-1.0f * fl * c) / 100.0f, 0.42f ); + p = pow_F ( (-1.0f * fl * c) / 100.0f, 0.42f ); return ((-1.0f * 400.0f * p) / (27.13f + p)) + 0.1f; } else { - p = pow_F( (fl * c) / 100.0f, 0.42f ); + p = pow_F ( (fl * c) / 100.0f, 0.42f ); return ((400.0f * p) / (27.13f + p)) + 0.1f; } } #ifdef __SSE2__ -vfloat Ciecam02::nonlinear_adaptationfloat( vfloat c, vfloat fl ) +vfloat Ciecam02::nonlinear_adaptationfloat ( vfloat c, vfloat fl ) { - vfloat c100 = F2V(100.f); - vfloat czd42 = F2V(0.42f); - vfloat c400 = vmulsignf(F2V(400.f), c); - fl = vmulsignf(fl, c); - vfloat p = pow_F( (fl * c) / c100, czd42 ); - vfloat c27d13 = F2V(27.13); - vfloat czd1 = F2V(0.1f); + vfloat c100 = F2V (100.f); + vfloat czd42 = F2V (0.42f); + vfloat c400 = vmulsignf (F2V (400.f), c); + fl = vmulsignf (fl, c); + vfloat p = pow_F ( (fl * c) / c100, czd42 ); + vfloat c27d13 = F2V (27.13); + vfloat czd1 = F2V (0.1f); return ((c400 * p) / (c27d13 + p)) + czd1; } #endif -double Ciecam02::inverse_nonlinear_adaptation( double c, double fl ) +double Ciecam02::inverse_nonlinear_adaptation ( double c, double fl ) { int c1; @@ -1174,10 +1188,10 @@ double Ciecam02::inverse_nonlinear_adaptation( double c, double fl ) c1 = 1; } - return c1 * (100.0 / fl) * pow( (27.13 * fabs( c - 0.1 )) / (400.0 - fabs( c - 0.1 )), 1.0 / 0.42 ); + return c1 * (100.0 / fl) * pow ( (27.13 * fabs ( c - 0.1 )) / (400.0 - fabs ( c - 0.1 )), 1.0 / 0.42 ); } -float Ciecam02::inverse_nonlinear_adaptationfloat( float c, float fl ) +float Ciecam02::inverse_nonlinear_adaptationfloat ( float c, float fl ) { c -= 0.1f; @@ -1191,17 +1205,17 @@ float Ciecam02::inverse_nonlinear_adaptationfloat( float c, float fl ) c = 399.99f; } - return (100.0f / fl) * pow_F( (27.13f * fabsf( c )) / (400.0f - fabsf( c )), 2.38095238f ); + return (100.0f / fl) * pow_F ( (27.13f * fabsf ( c )) / (400.0f - fabsf ( c )), 2.38095238f ); } #ifdef __SSE2__ -vfloat Ciecam02::inverse_nonlinear_adaptationfloat( vfloat c, vfloat fl ) +vfloat Ciecam02::inverse_nonlinear_adaptationfloat ( vfloat c, vfloat fl ) { - c -= F2V(0.1f); - fl = vmulsignf(fl, c); - c = vabsf(c); - c = _mm_min_ps( c, F2V(399.99f)); - return (F2V(100.0f) / fl) * pow_F( (F2V(27.13f) * c) / (F2V(400.0f) - c), F2V(2.38095238f) ); + c -= F2V (0.1f); + fl = vmulsignf (fl, c); + c = vabsf (c); + c = _mm_min_ps ( c, F2V (399.99f)); + return (F2V (100.0f) / fl) * pow_F ( (F2V (27.13f) * c) / (F2V (400.0f) - c), F2V (2.38095238f) ); } #endif //end CIECAM Billy Bigg diff --git a/rtengine/ciecam02.h b/rtengine/ciecam02.h index a551b2504..1e0f755c1 100644 --- a/rtengine/ciecam02.h +++ b/rtengine/ciecam02.h @@ -28,12 +28,12 @@ namespace rtengine class Ciecam02 { private: - static double d_factor( double f, double la ); - static float d_factorfloat( float f, float la ); - static double calculate_fl_from_la_ciecam02( double la ); - static float calculate_fl_from_la_ciecam02float( float la ); - static double achromatic_response_to_white( double x, double y, double z, double d, double fl, double nbb, int gamu ); - static float achromatic_response_to_whitefloat( float x, float y, float z, float d, float fl, float nbb, int gamu ); + static double d_factor ( double f, double la ); + static float d_factorfloat ( float f, float la ); + static double calculate_fl_from_la_ciecam02 ( double la ); + static float calculate_fl_from_la_ciecam02float ( float la ); + static double achromatic_response_to_white ( double x, double y, double z, double d, double fl, double nbb, int gamu ); + static float achromatic_response_to_whitefloat ( float x, float y, float z, float d, float fl, float nbb, int gamu ); static void xyz_to_cat02 ( double &r, double &g, double &b, double x, double y, double z, int gamu ); static void cat02_to_hpe ( double &rh, double &gh, double &bh, double r, double g, double b, int gamu ); static void cat02_to_xyz ( double &x, double &y, double &z, double r, double g, double b, int gamu ); @@ -45,97 +45,97 @@ private: #ifdef __SSE2__ static void xyz_to_cat02float ( vfloat &r, vfloat &g, vfloat &b, vfloat x, vfloat y, vfloat z ); static void cat02_to_hpefloat ( vfloat &rh, vfloat &gh, vfloat &bh, vfloat r, vfloat g, vfloat b ); - static vfloat nonlinear_adaptationfloat( vfloat c, vfloat fl ); + static vfloat nonlinear_adaptationfloat ( vfloat c, vfloat fl ); #endif - static void Aab_to_rgb( double &r, double &g, double &b, double A, double aa, double bb, double nbb ); - static void calculate_ab( double &aa, double &bb, double h, double e, double t, double nbb, double a ); + static void Aab_to_rgb ( double &r, double &g, double &b, double A, double aa, double bb, double nbb ); + static void calculate_ab ( double &aa, double &bb, double h, double e, double t, double nbb, double a ); - static double nonlinear_adaptation( double c, double fl ); - static float nonlinear_adaptationfloat( float c, float fl ); - static double inverse_nonlinear_adaptation( double c, double fl ); + static double nonlinear_adaptation ( double c, double fl ); + static float nonlinear_adaptationfloat ( float c, float fl ); + static double inverse_nonlinear_adaptation ( double c, double fl ); - static float inverse_nonlinear_adaptationfloat( float c, float fl ); - static void calculate_abfloat( float &aa, float &bb, float h, float e, float t, float nbb, float a ); - static void Aab_to_rgbfloat( float &r, float &g, float &b, float A, float aa, float bb, float nbb ); + static float inverse_nonlinear_adaptationfloat ( float c, float fl ); + static void calculate_abfloat ( float &aa, float &bb, float h, float e, float t, float nbb, float a ); + static void Aab_to_rgbfloat ( float &r, float &g, float &b, float A, float aa, float bb, float nbb ); static void hpe_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b ); static void cat02_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b, int gamu ); #ifdef __SSE2__ - static vfloat inverse_nonlinear_adaptationfloat( vfloat c, vfloat fl ); - static void calculate_abfloat( vfloat &aa, vfloat &bb, vfloat h, vfloat e, vfloat t, vfloat nbb, vfloat a ); - static void Aab_to_rgbfloat( vfloat &r, vfloat &g, vfloat &b, vfloat A, vfloat aa, vfloat bb, vfloat nbb ); + static vfloat inverse_nonlinear_adaptationfloat ( vfloat c, vfloat fl ); + static void calculate_abfloat ( vfloat &aa, vfloat &bb, vfloat h, vfloat e, vfloat t, vfloat nbb, vfloat a ); + static void Aab_to_rgbfloat ( vfloat &r, vfloat &g, vfloat &b, vfloat A, vfloat aa, vfloat bb, vfloat nbb ); static void hpe_to_xyzfloat ( vfloat &x, vfloat &y, vfloat &z, vfloat r, vfloat g, vfloat b ); static void cat02_to_xyzfloat ( vfloat &x, vfloat &y, vfloat &z, vfloat r, vfloat g, vfloat b ); #endif public: Ciecam02 () {} - static void curvecolor(double satind, double satval, double &sres, double parsat); - static void curvecolorfloat(float satind, float satval, float &sres, float parsat); - static void curveJ (double br, double contr, int db, LUTf & outCurve , LUTu & histogram ) ; + static void curvecolor (double satind, double satval, double &sres, double parsat); + static void curvecolorfloat (float satind, float satval, float &sres, float parsat); + static void curveJ (double br, double contr, int db, LUTf & outCurve, LUTu & histogram ) ; static void curveJfloat (float br, float contr, const LUTu & histogram, LUTf & outCurve ) ; /** * Inverse transform from CIECAM02 JCh to XYZ. */ - static void jch2xyz_ciecam02( double &x, double &y, double &z, - double J, double C, double h, - double xw, double yw, double zw, - double yb, double la, - double f, double c, double nc, int gamu, double n, double nbb, double ncb, double fl, double cz, double d, double aw); + static void jch2xyz_ciecam02 ( double &x, double &y, double &z, + double J, double C, double h, + double xw, double yw, double zw, + double yb, double la, + double f, double c, double nc, int gamu, double n, double nbb, double ncb, double fl, double cz, double d, double aw); - static void jch2xyz_ciecam02float( float &x, float &y, float &z, - float J, float C, float h, - float xw, float yw, float zw, - float f, float c, float nc, int gamu, float n, float nbb, float ncb, float fl, float cz, float d, float aw ); + static void jch2xyz_ciecam02float ( float &x, float &y, float &z, + float J, float C, float h, + float xw, float yw, float zw, + float f, float c, float nc, int gamu, float n, float nbb, float ncb, float fl, float cz, float d, float aw ); #ifdef __SSE2__ - static void jch2xyz_ciecam02float( vfloat &x, vfloat &y, vfloat &z, - vfloat J, vfloat C, vfloat h, - vfloat xw, vfloat yw, vfloat zw, - vfloat f, vfloat nc, vfloat n, vfloat nbb, vfloat ncb, vfloat fl, vfloat d, vfloat aw, vfloat reccmcz ); + static void jch2xyz_ciecam02float ( vfloat &x, vfloat &y, vfloat &z, + vfloat J, vfloat C, vfloat h, + vfloat xw, vfloat yw, vfloat zw, + vfloat f, vfloat nc, vfloat n, vfloat nbb, vfloat ncb, vfloat fl, vfloat d, vfloat aw, vfloat reccmcz ); #endif /** * Forward transform from XYZ to CIECAM02 JCh. */ - static void initcam1(double gamu, double yb, double pilotd, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb, - double &cz, double &aw, double &wh, double &pfl, double &fl, double &c); + static void initcam1 (double gamu, double yb, double pilotd, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb, + double &cz, double &aw, double &wh, double &pfl, double &fl, double &c); - static void initcam2(double gamu, double yb, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb, - double &cz, double &aw, double &fl); + static void initcam2 (double gamu, double yb, double pilotd, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb, + double &cz, double &aw, double &fl); - static void initcam1float(float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, - float &cz, float &aw, float &wh, float &pfl, float &fl, float &c); + static void initcam1float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, + float &cz, float &aw, float &wh, float &pfl, float &fl, float &c); - static void initcam2float(float gamu, float yb, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, - float &cz, float &aw, float &fl); + static void initcam2float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, + float &cz, float &aw, float &fl); - static void xyz2jchqms_ciecam02( double &J, double &C, double &h, - double &Q, double &M, double &s, double &aw, double &fl, double &wh, - double x, double y, double z, - double xw, double yw, double zw, - double yb, double la, - double f, double c, double nc, double pilotd, int gamu , double n, double nbb, double ncb, double pfl, double cz, double d ); + static void xyz2jchqms_ciecam02 ( double &J, double &C, double &h, + double &Q, double &M, double &s, double &aw, double &fl, double &wh, + double x, double y, double z, + double xw, double yw, double zw, + double yb, double la, + double f, double c, double nc, double pilotd, int gamu, double n, double nbb, double ncb, double pfl, double cz, double d ); - static void xyz2jch_ciecam02float( float &J, float &C, float &h, - float aw, float fl, - float x, float y, float z, - float xw, float yw, float zw, - float c, float nc, float n, float nbb, float ncb, float cz, float d ); + static void xyz2jch_ciecam02float ( float &J, float &C, float &h, + float aw, float fl, + float x, float y, float z, + float xw, float yw, float zw, + float c, float nc, float n, float nbb, float ncb, float cz, float d ); - static void xyz2jchqms_ciecam02float( float &J, float &C, float &h, - float &Q, float &M, float &s, float aw, float fl, float wh, - float x, float y, float z, - float xw, float yw, float zw, - float c, float nc, int gamu, float n, float nbb, float ncb, float pfl, float cz, float d ); + static void xyz2jchqms_ciecam02float ( float &J, float &C, float &h, + float &Q, float &M, float &s, float aw, float fl, float wh, + float x, float y, float z, + float xw, float yw, float zw, + float c, float nc, int gamu, float n, float nbb, float ncb, float pfl, float cz, float d ); #ifdef __SSE2__ - static void xyz2jchqms_ciecam02float( vfloat &J, vfloat &C, vfloat &h, - vfloat &Q, vfloat &M, vfloat &s, vfloat aw, vfloat fl, vfloat wh, - vfloat x, vfloat y, vfloat z, - vfloat xw, vfloat yw, vfloat zw, - vfloat c, vfloat nc, vfloat n, vfloat nbb, vfloat ncb, vfloat pfl, vfloat cz, vfloat d ); + static void xyz2jchqms_ciecam02float ( vfloat &J, vfloat &C, vfloat &h, + vfloat &Q, vfloat &M, vfloat &s, vfloat aw, vfloat fl, vfloat wh, + vfloat x, vfloat y, vfloat z, + vfloat xw, vfloat yw, vfloat zw, + vfloat c, vfloat nc, vfloat n, vfloat nbb, vfloat ncb, vfloat pfl, vfloat cz, vfloat d ); #endif diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 7dec0d828..f8f5271cc 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -460,7 +460,7 @@ void Crop::update (int todo) for (int wcr = 0; wcr <= 2; wcr++) { for (int hcr = 0; hcr <= 2; hcr++) { - PreviewProps ppP (coordW[wcr] , coordH[hcr], crW, crH, 1); + PreviewProps ppP (coordW[wcr], coordH[hcr], crW, crH, 1); parent->imgsrc->getImage (parent->currWB, tr, origCropPart, ppP, params.toneCurve, params.icm, params.raw ); // we only need image reduced to 1/4 here @@ -779,7 +779,7 @@ void Crop::update (int todo) LUTu histToneCurve; parent->ipf.rgbProc (baseCrop, laboCrop, this, parent->hltonecurve, parent->shtonecurve, parent->tonecurve, cshmap, - params.toneCurve.saturation, parent->rCurve, parent->gCurve, parent->bCurve, parent->colourToningSatLimit , parent->colourToningSatLimitOpacity, parent->ctColorCurve, parent->ctOpacityCurve, parent->opautili, parent->clToningcurve, parent->cl2Toningcurve, + params.toneCurve.saturation, parent->rCurve, parent->gCurve, parent->bCurve, parent->colourToningSatLimit, parent->colourToningSatLimitOpacity, parent->ctColorCurve, parent->ctOpacityCurve, parent->opautili, parent->clToningcurve, parent->cl2Toningcurve, parent->customToneCurve1, parent->customToneCurve2, parent->beforeToneCurveBW, parent->afterToneCurveBW, rrm, ggm, bbm, parent->bwAutoR, parent->bwAutoG, parent->bwAutoB, dcpProf, as, histToneCurve); } @@ -1616,14 +1616,14 @@ void Crop::update (int todo) } if (settings->ciecamfloat) { - float d; // not used after this block - parent->ipf.ciecam_02float (cieCrop, float(adap), begh, endh, 1, 2, labnCrop, ¶ms, parent->customColCurve1, parent->customColCurve2, parent->customColCurve3, - dummy, dummy, parent->CAMBrightCurveJ, parent->CAMBrightCurveQ, parent->CAMMean, 5, skip, execsharp, d, 1); + float d, dj, yb; // not used after this block + parent->ipf.ciecam_02float (cieCrop, float (adap), begh, endh, 1, 2, labnCrop, ¶ms, parent->customColCurve1, parent->customColCurve2, parent->customColCurve3, + dummy, dummy, parent->CAMBrightCurveJ, parent->CAMBrightCurveQ, parent->CAMMean, 5, skip, execsharp, d, dj, yb, 1); } else { - double dd; // not used after this block + double dd, dj, yb; // not used after this block parent->ipf.ciecam_02 (cieCrop, adap, begh, endh, 1, 2, labnCrop, ¶ms, parent->customColCurve1, parent->customColCurve2, parent->customColCurve3, - dummy, dummy, parent->CAMBrightCurveJ, parent->CAMBrightCurveQ, parent->CAMMean, 5, skip, execsharp, dd, 1); + dummy, dummy, parent->CAMBrightCurveJ, parent->CAMBrightCurveQ, parent->CAMMean, 5, skip, execsharp, dd, dj, yb, 1); } } else { // CIECAM is disbaled, we free up its image buffer to save some space diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index cf3e17cfa..c8ab4c86f 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -63,7 +63,6 @@ ImProcCoordinator::ImProcCoordinator () hltonecurveloc (32768, 0),//32768 shtonecurveloc (32768, 0), tonecurveloc (32768, 0), - cl2Toningcurve (65536, 0), Noisecurve (65536, 0), NoiseCCcurve (65536, 0), @@ -97,6 +96,7 @@ ImProcCoordinator::ImProcCoordinator () fw (0), fh (0), tr (0), fullw (1), fullh (1), pW (-1), pH (-1), +//<<<<<<< HEAD plistener (nullptr), awbListener (nullptr), imageListener (nullptr), aeListener (nullptr), acListener (nullptr), abwListener (nullptr), aloListener (nullptr), actListener (nullptr), adnListener (nullptr), awavListener (nullptr), dehaListener (nullptr), frameCountListener (nullptr), imageTypeListener (nullptr), hListener (nullptr), resultValid (false), lastOutputProfile ("BADFOOD"), lastOutputIntent (RI__COUNT), lastOutputBPC (false), thread (nullptr), changeSinceLast (0), updaterRunning (false), destroying (false), utili (false), autili (false), butili (false), ccutili (false), cclutili (false), clcutili (false), opautili (false), wavcontlutili (false), @@ -196,7 +196,13 @@ ImProcCoordinator::ImProcCoordinator () lumar (0), colourToningSatLimit (0.f), colourToningSatLimitOpacity (0.f), retistrsav (nullptr) - +/* +======= + plistener (nullptr), imageListener (nullptr), aeListener (nullptr), acListener (nullptr), abwListener (nullptr), awbListener (nullptr), frameCountListener (nullptr), imageTypeListener (nullptr), actListener (nullptr), adnListener (nullptr), awavListener (nullptr), dehaListener (nullptr), hListener (nullptr), + resultValid (false), lastOutputProfile ("BADFOOD"), lastOutputIntent (RI__COUNT), lastOutputBPC (false), thread (nullptr), changeSinceLast (0), updaterRunning (false), destroying (false), utili (false), autili (false), + butili (false), ccutili (false), cclutili (false), clcutili (false), opautili (false), wavcontlutili (false), colourToningSatLimit (0.f), colourToningSatLimitOpacity (0.f) +>>>>>>> dev +*/ {} void ImProcCoordinator::assign (ImageSource* imgsrc) @@ -665,7 +671,7 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) DCPProfile *dcpProf = imgsrc->getDCP (params.icm, currWB, as); ipf.rgbProc (oprevi, oprevl, nullptr, hltonecurve, shtonecurve, tonecurve, shmap, params.toneCurve.saturation, - rCurve, gCurve, bCurve, colourToningSatLimit , colourToningSatLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, beforeToneCurveBW, afterToneCurveBW, rrm, ggm, bbm, bwAutoR, bwAutoG, bwAutoB, params.toneCurve.expcomp, params.toneCurve.hlcompr, params.toneCurve.hlcomprthresh, dcpProf, as, histToneCurve); + rCurve, gCurve, bCurve, colourToningSatLimit, colourToningSatLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, beforeToneCurveBW, afterToneCurveBW, rrm, ggm, bbm, bwAutoR, bwAutoG, bwAutoB, params.toneCurve.expcomp, params.toneCurve.hlcompr, params.toneCurve.hlcomprthresh, dcpProf, as, histToneCurve); if (params.blackwhite.enabled && params.blackwhite.autoc && abwListener) { if (settings->verbose) { @@ -677,7 +683,7 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) if (params.colorToning.autosat && actListener) { if (settings->verbose) { - printf ("ImProcCoordinator / Auto CT: indi=%d satH=%d satPR=%d\n", indi, (int)colourToningSatLimit , (int) colourToningSatLimitOpacity); + printf ("ImProcCoordinator / Auto CT: indi=%d satH=%d satPR=%d\n", indi, (int)colourToningSatLimit, (int) colourToningSatLimitOpacity); } actListener->autoColorTonChanged (indi, (int) colourToningSatLimit, (int)colourToningSatLimitOpacity); //change sliders autosat @@ -697,6 +703,12 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) lhist16 (32768); if (todo & (M_LUMACURVE | M_CROP)) { +/* +<<<<<<< HEAD +======= + LUTu lhist16 (32768); +>>>>>>> dev +*/ lhist16.clear(); #ifdef _OPENMP const int numThreads = min (max (pW * pH / (int)lhist16.getSize(), 1), omp_get_max_threads()); @@ -3439,7 +3451,7 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) int begh = 0; int endh = pH; - float d; + float d, dj, yb; bool execsharp = false; if (!ncie) { @@ -3459,14 +3471,18 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) CAMBrightCurveJ.dirty = true; CAMBrightCurveQ.dirty = true; - ipf.ciecam_02float (ncie, float(adap), begh, endh, pW, 2, nprevl, ¶ms, customColCurve1, customColCurve2, customColCurve3, histLCAM, histCCAM, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, scale, execsharp, d, 1); + ipf.ciecam_02float (ncie, float (adap), begh, endh, pW, 2, nprevl, ¶ms, customColCurve1, customColCurve2, customColCurve3, histLCAM, histCCAM, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, scale, execsharp, d, dj, yb, 1); - if (params.colorappearance.autodegree && acListener && params.colorappearance.enabled) { - acListener->autoCamChanged (100.* (double)d); + if ((params.colorappearance.autodegree || params.colorappearance.autodegreeout) && acListener && params.colorappearance.enabled) { + acListener->autoCamChanged (100.* (double)d, 100.* (double)dj); } if (params.colorappearance.autoadapscen && acListener && params.colorappearance.enabled) { - acListener->adapCamChanged (adap); //real value of adapt scene luminosity + acListener->adapCamChanged (adap); //real value of adapt scene + } + + if (params.colorappearance.autoybscen && acListener && params.colorappearance.enabled) { + acListener->ybCamChanged ((int) yb); //real value Yb scene } readyphase++; @@ -3488,7 +3504,7 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) } } -// Update the monitor color transform if necessary + // Update the monitor color transform if necessary if ((todo & M_MONITOR) || (lastOutputProfile != params.icm.output) || lastOutputIntent != params.icm.outputIntent || lastOutputBPC != params.icm.outputBPC) { lastOutputProfile = params.icm.output; lastOutputIntent = params.icm.outputIntent; diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 7eb35f988..f596cfea3 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -211,7 +211,7 @@ void ImProcFunctions::firstAnalysis (const Imagefloat* const original, const Pro // Copyright (c) 2012 Jacques Desmis void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh, int pW, int pwb, LabImage* lab, const ProcParams* params, const ColorAppearance & customColCurve1, const ColorAppearance & customColCurve2, const ColorAppearance & customColCurve3, - LUTu & histLCAM, LUTu & histCCAM, LUTf & CAMBrightCurveJ, LUTf & CAMBrightCurveQ, float &mean, int Iterates, int scale, bool execsharp, double &d, int rtt) + LUTu & histLCAM, LUTu & histCCAM, LUTf & CAMBrightCurveJ, LUTf & CAMBrightCurveQ, float &mean, int Iterates, int scale, bool execsharp, double &d, double &dj, double &yb, int rtt) { if (params->colorappearance.enabled) { //int lastskip; @@ -265,9 +265,12 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh Yw = 1.0; double Xw, Zw; double Xwout, Zwout; - double f, c, nc, yb = 0., la, xw, yw, zw, f2 = 0., c2 = 0., nc2 = 0., yb2 = 0., la2; + double Xwsc, Zwsc; + + double f = 0., c = 0., nc = 0., yb = 0., la, xw, yw, zw, f2 = 0., c2 = 0., nc2 = 0., yb2 = 0., la2; double fl, n, nbb, ncb, aw; double xwd = 0., ywd, zwd = 0.; + double xws, yws, zws; int alg = 0; bool algepd = false; float sum = 0.f; @@ -276,37 +279,53 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh ColorTemp::temp2mulxyz (params->wb.temperature, params->wb.green, params->wb.method, Xw, Zw); //compute white Xw Yw Zw : white current WB ColorTemp::temp2mulxyz (params->colorappearance.tempout, params->colorappearance.greenout, "Custom", Xwout, Zwout); + ColorTemp::temp2mulxyz (params->colorappearance.tempsc, params->colorappearance.greensc, "Custom", Xwsc, Zwsc); - //viewing condition for surround - if (params->colorappearance.surround == "Average") { + //viewing condition for surrsrc + if (params->colorappearance.surrsrc == "Average") { f = 1.00; c = 0.69; nc = 1.00; + } else if (params->colorappearance.surrsrc == "Dim") { + f = 0.9; + c = 0.59; + nc = 0.9; + } else if (params->colorappearance.surrsrc == "Dark") { + f = 0.8; + c = 0.525; + nc = 0.8; + } else if (params->colorappearance.surrsrc == "ExtremelyDark") { + f = 0.8; + c = 0.41; + nc = 0.8; + } + + + //viewing condition for surround + if (params->colorappearance.surround == "Average") { f2 = 1.0, c2 = 0.69, nc2 = 1.0; } else if (params->colorappearance.surround == "Dim") { f2 = 0.9; c2 = 0.59; nc2 = 0.9; - f = 1.0, c = 0.69, nc = 1.0; } else if (params->colorappearance.surround == "Dark") { f2 = 0.8; c2 = 0.525; nc2 = 0.8; - f = 1.0, c = 0.69, nc = 1.0; } else if (params->colorappearance.surround == "ExtremelyDark") { f2 = 0.8; c2 = 0.41; nc2 = 0.8; - f = 1.0, c = 0.69, nc = 1.0; - } - - //scene condition for surround - if (params->colorappearance.surrsource) { - f = 0.85; // if user => source image has surround very dark - c = 0.55; - nc = 0.85; } + /* + //scene condition for surround + if (params->colorappearance.surrsource) { + f = 0.85; // if user => source image has surround very dark + c = 0.55; + nc = 0.85; + } + */ //with which algorithme if (params->colorappearance.algo == "JC") { alg = 0; @@ -363,6 +382,10 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh zwd = 100. * Zwout; ywd = 100. / params->colorappearance.greenout;//approximation to simplify + xws = 100. * Xwsc; + zws = 100. * Zwsc; + yws = 100. / params->colorappearance.greensc;//approximation to simplify + /* //settings mean Luminance Y of output device or viewing if (settings->viewingdevicegrey == 0) { @@ -398,6 +421,10 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh double deg = (params->colorappearance.degree) / 100.0; double pilot = params->colorappearance.autodegree ? 2.0 : deg; + + const float degout = (params->colorappearance.degreeout) / 100.0; + const float pilotout = params->colorappearance.autodegreeout ? 2.0 : degout; + //algoritm's params float jli = params->colorappearance.jlight; float chr = params->colorappearance.chroma; @@ -502,7 +529,9 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh } } - if (settings->viewinggreySc == 0) { //auto + // if (settings->viewinggreySc == 0) { //auto + if (params->colorappearance.autoybscen && pwb == 2) {//auto + if (mean < 15.f) { yb = 3.0; } else if (mean < 30.f) { @@ -526,6 +555,8 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh } else { yb = 90.0; } + } else { + yb = params->colorappearance.ybscen; } if (settings->viewinggreySc == 1) { @@ -542,7 +573,7 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh xw = 100.0 * Xw; yw = 100.0 * Yw; zw = 100.0 * Zw; - double xw1, yw1, zw1, xw2, yw2, zw2; + double xw1 = 0., yw1 = 0., zw1 = 0., xw2 = 0., yw2 = 0., zw2 = 0.; // settings of WB: scene and viewing if (params->colorappearance.wbmodel == "RawT") { @@ -552,19 +583,26 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh xw2 = xwd; yw2 = ywd; zw2 = zwd; - } else { /*if(params->colorappearance.wbmodel == "RawTCAT02")*/ + } else if (params->colorappearance.wbmodel == "RawTCAT02") { xw1 = xw; // Settings RT WB are used for CAT02 => mix , CAT02 is use for output device (screen: D50 D65, projector: lamp, LED) see preferences yw1 = yw; zw1 = zw; xw2 = xwd; yw2 = ywd; zw2 = zwd; + } else if (params->colorappearance.wbmodel == "free") { + xw1 = xws; // free temp and green + yw1 = yws; + zw1 = zws; + xw2 = xwd; + yw2 = ywd; + zw2 = zwd; } double cz, wh, pfl; Ciecam02::initcam1 (gamu, yb, pilot, f, la, xw, yw, zw, n, d, nbb, ncb, cz, aw, wh, pfl, fl, c); - double nj, dj, nbbj, ncbj, czj, awj, flj; - Ciecam02::initcam2 (gamu, yb2, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj); + double nj, nbbj, ncbj, czj, awj, flj; + Ciecam02::initcam2 (gamu, yb2, pilotout, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj); @@ -1469,7 +1507,7 @@ void ImProcFunctions::ciecam_02 (CieImage* ncie, double adap, int begh, int endh // Copyright (c) 2012 Jacques Desmis void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int endh, int pW, int pwb, LabImage* lab, const ProcParams* params, const ColorAppearance & customColCurve1, const ColorAppearance & customColCurve2, const ColorAppearance & customColCurve3, - LUTu & histLCAM, LUTu & histCCAM, LUTf & CAMBrightCurveJ, LUTf & CAMBrightCurveQ, float &mean, int Iterates, int scale, bool execsharp, float &d, int rtt) + LUTu & histLCAM, LUTu & histCCAM, LUTf & CAMBrightCurveJ, LUTf & CAMBrightCurveQ, float &mean, int Iterates, int scale, bool execsharp, float &d, float &dj, float &yb, int rtt) { if (params->colorappearance.enabled) { @@ -1496,12 +1534,13 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int float Yw; Yw = 1.0; double Xw, Zw; - float f, nc, yb = 0.f, la, c, xw, yw, zw, f2 = 1.f, c2 = 1.f, nc2 = 1.f, yb2; + float f = 0.f, nc = 0.f, la, c = 0.f, xw, yw, zw, f2 = 1.f, c2 = 1.f, nc2 = 1.f, yb2; float fl, n, nbb, ncb, aw; //d - float xwd, ywd, zwd; + float xwd, ywd, zwd, xws, yws, zws; int alg = 0; bool algepd = false; double Xwout, Zwout; + double Xwsc, Zwsc; const bool epdEnabled = params->epd.enabled; bool ciedata = (params->colorappearance.datacie && pW != 1) && ! ((params->colorappearance.tonecie && (epdEnabled)) || (params->sharpening.enabled && settings->autocielab && execsharp) @@ -1510,37 +1549,53 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int ColorTemp::temp2mulxyz (params->wb.temperature, params->wb.green, params->wb.method, Xw, Zw); //compute white Xw Yw Zw : white current WB ColorTemp::temp2mulxyz (params->colorappearance.tempout, params->colorappearance.greenout, "Custom", Xwout, Zwout); + ColorTemp::temp2mulxyz (params->colorappearance.tempsc, params->colorappearance.greensc, "Custom", Xwsc, Zwsc); - //viewing condition for surround - if (params->colorappearance.surround == "Average") { + //viewing condition for surrsrc + if (params->colorappearance.surrsrc == "Average") { f = 1.00f; c = 0.69f; nc = 1.00f; + } else if (params->colorappearance.surrsrc == "Dim") { + f = 0.9f; + c = 0.59f; + nc = 0.9f; + } else if (params->colorappearance.surrsrc == "Dark") { + f = 0.8f; + c = 0.525f; + nc = 0.8f; + } else if (params->colorappearance.surrsrc == "ExtremelyDark") { + f = 0.8f; + c = 0.41f; + nc = 0.8f; + } + + + //viewing condition for surround + if (params->colorappearance.surround == "Average") { f2 = 1.0f, c2 = 0.69f, nc2 = 1.0f; } else if (params->colorappearance.surround == "Dim") { f2 = 0.9f; c2 = 0.59f; nc2 = 0.9f; - f = 1.0f, c = 0.69f, nc = 1.0f; } else if (params->colorappearance.surround == "Dark") { f2 = 0.8f; c2 = 0.525f; nc2 = 0.8f; - f = 1.0f, c = 0.69f, nc = 1.0f; } else if (params->colorappearance.surround == "ExtremelyDark") { f2 = 0.8f; c2 = 0.41f; nc2 = 0.8f; - f = 1.0f, c = 0.69f, nc = 1.0f; - } - - //scene condition for surround - if (params->colorappearance.surrsource) { - f = 0.85f; // if user => source image has surround very dark - c = 0.55f; - nc = 0.85f; } + /* + //scene condition for surround + if (params->colorappearance.surrsource) { + f = 0.85f; // if user => source image has surround very dark + c = 0.55f; + nc = 0.85f; + } + */ //with which algorithm if (params->colorappearance.algo == "JC") { alg = 0; @@ -1557,6 +1612,12 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int xwd = 100.f * Xwout; zwd = 100.f * Zwout; ywd = 100.f / params->colorappearance.greenout;//approximation to simplify + + xws = 100.f * Xwsc; + zws = 100.f * Zwsc; + yws = 100.f / params->colorappearance.greensc;//approximation to simplify + + /* //settings white point of output device - or illuminant viewing if (settings->viewingdevice == 0) { @@ -1631,6 +1692,9 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int const float deg = (params->colorappearance.degree) / 100.0f; const float pilot = params->colorappearance.autodegree ? 2.0f : deg; + const float degout = (params->colorappearance.degreeout) / 100.0f; + const float pilotout = params->colorappearance.autodegreeout ? 2.0f : degout; + //algoritm's params float chr = 0.f; @@ -1805,7 +1869,11 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int //evaluate lightness, contrast } - if (settings->viewinggreySc == 0) { //auto + + + // if (settings->viewinggreySc == 0) { //auto + if (params->colorappearance.autoybscen && pwb == 2) {//auto + if (mean < 15.f) { yb = 3.0f; } else if (mean < 30.f) { @@ -1829,8 +1897,10 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int } else { yb = 90.0f; } - } else if (settings->viewinggreySc == 1) { - yb = 18.0f; //fixed + +// } else if (settings->viewinggreySc == 1) { + } else { + yb = (float) params->colorappearance.ybscen; } const bool highlight = params->toneCurve.hrenabled; //Get the value if "highlight reconstruction" is activated @@ -1839,7 +1909,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int xw = 100.0f * Xw; yw = 100.0f * Yw; zw = 100.0f * Zw; - float xw1, yw1, zw1, xw2, yw2, zw2; + float xw1 = 0.f, yw1 = 0.f, zw1 = 0.f, xw2 = 0.f, yw2 = 0.f, zw2 = 0.f; // settings of WB: scene and viewing if (params->colorappearance.wbmodel == "RawT") { @@ -1849,20 +1919,28 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int begh, int xw2 = xwd; yw2 = ywd; zw2 = zwd; - } else { /*if(params->colorappearance.wbmodel == "RawTCAT02")*/ + } else if (params->colorappearance.wbmodel == "RawTCAT02") { xw1 = xw; // Settings RT WB are used for CAT02 => mix , CAT02 is use for output device (screen: D50 D65, projector: lamp, LED) see preferences yw1 = yw; zw1 = zw; xw2 = xwd; yw2 = ywd; zw2 = zwd; + } else if (params->colorappearance.wbmodel == "free") { + xw1 = xws; // free temp and green + yw1 = yws; + zw1 = zws; + xw2 = xwd; + yw2 = ywd; + zw2 = zwd; } + float cz, wh, pfl; Ciecam02::initcam1float (gamu, yb, pilot, f, la, xw, yw, zw, n, d, nbb, ncb, cz, aw, wh, pfl, fl, c); const float pow1 = pow_F ( 1.64f - pow_F ( 0.29f, n ), 0.73f ); - float nj, dj, nbbj, ncbj, czj, awj, flj; - Ciecam02::initcam2float (gamu, yb2, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj); + float nj, nbbj, ncbj, czj, awj, flj; + Ciecam02::initcam2float (gamu, yb2, pilotout, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj); const float reccmcz = 1.f / (c2 * czj); const float pow1n = pow_F ( 1.64f - pow_F ( 0.29f, nj ), 0.73f ); diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 559b07cc9..a38adfa14 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -208,10 +208,10 @@ public: void firstAnalysis (const Imagefloat* const working, const ProcParams ¶ms, LUTu & vhist16); void updateColorProfiles (const Glib::ustring& monitorProfile, RenderingIntent monitorIntent, bool softProof, bool gamutCheck); void rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer *pipetteBuffer, LUTf & hltonecurve, LUTf & shtonecurve, LUTf & tonecurve, - SHMap* shmap, int sat, LUTf & rCurve, LUTf & gCurve, LUTf & bCurve, float satLimit , float satLimitOpacity, const ColorGradientCurve & ctColorCurve, const OpacityCurve & ctOpacityCurve, bool opautili, LUTf & clcurve, LUTf & cl2curve, const ToneCurve & customToneCurve1, const ToneCurve & customToneCurve2, + SHMap* shmap, int sat, LUTf & rCurve, LUTf & gCurve, LUTf & bCurve, float satLimit, float satLimitOpacity, const ColorGradientCurve & ctColorCurve, const OpacityCurve & ctOpacityCurve, bool opautili, LUTf & clcurve, LUTf & cl2curve, const ToneCurve & customToneCurve1, const ToneCurve & customToneCurve2, const ToneCurve & customToneCurvebw1, const ToneCurve & customToneCurvebw2, double &rrm, double &ggm, double &bbm, float &autor, float &autog, float &autob, DCPProfile *dcpProf, const DCPProfile::ApplyState &asIn, LUTu &histToneCurve ); void rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer *pipetteBuffer, LUTf & hltonecurve, LUTf & shtonecurve, LUTf & tonecurve, - SHMap* shmap, int sat, LUTf & rCurve, LUTf & gCurve, LUTf & bCurve, float satLimit , float satLimitOpacity, const ColorGradientCurve & ctColorCurve, const OpacityCurve & ctOpacityCurve, bool opautili, LUTf & clcurve, LUTf & cl2curve, const ToneCurve & customToneCurve1, const ToneCurve & customToneCurve2, + SHMap* shmap, int sat, LUTf & rCurve, LUTf & gCurve, LUTf & bCurve, float satLimit, float satLimitOpacity, const ColorGradientCurve & ctColorCurve, const OpacityCurve & ctOpacityCurve, bool opautili, LUTf & clcurve, LUTf & cl2curve, const ToneCurve & customToneCurve1, const ToneCurve & customToneCurve2, const ToneCurve & customToneCurvebw1, const ToneCurve & customToneCurvebw2, double &rrm, double &ggm, double &bbm, float &autor, float &autog, float &autob, double expcomp, int hlcompr, int hlcomprthresh, DCPProfile *dcpProf, const DCPProfile::ApplyState &asIn, LUTu &histToneCurve); void labtoning (float r, float g, float b, float &ro, float &go, float &bo, int algm, int metchrom, int twoc, float satLimit, float satLimitOpacity, const ColorGradientCurve & ctColorCurve, const OpacityCurve & ctOpacityCurve, LUTf & clToningcurve, LUTf & cl2Toningcurve, float iplow, float iphigh, double wp[3][3], double wip[3][3] ); @@ -227,10 +227,10 @@ public: void luminanceCurve (LabImage* lold, LabImage* lnew, LUTf &curve); void ciecam_02float (CieImage* ncie, float adap, int begh, int endh, int pW, int pwb, LabImage* lab, const ProcParams* params, const ColorAppearance & customColCurve1, const ColorAppearance & customColCurve, const ColorAppearance & customColCurve3, - LUTu &histLCAM, LUTu &histCCAM, LUTf & CAMBrightCurveJ, LUTf & CAMBrightCurveQ, float &mean, int Iterates, int scale, bool execsharp, float &d, int rtt); + LUTu &histLCAM, LUTu &histCCAM, LUTf & CAMBrightCurveJ, LUTf & CAMBrightCurveQ, float &mean, int Iterates, int scale, bool execsharp, float &d, float &dj, float &yb, int rtt); void ciecam_02 (CieImage* ncie, double adap, int begh, int endh, int pW, int pwb, LabImage* lab, const ProcParams* params, const ColorAppearance & customColCurve1, const ColorAppearance & customColCurve, const ColorAppearance & customColCurve3, - LUTu &histLCAM, LUTu &histCCAM, LUTf & CAMBrightCurveJ, LUTf & CAMBrightCurveQ, float &mean, int Iterates, int scale, bool execsharp, double &d, int rtt); + LUTu &histLCAM, LUTu &histCCAM, LUTf & CAMBrightCurveJ, LUTf & CAMBrightCurveQ, float &mean, int Iterates, int scale, bool execsharp, double &d, double &dj, double &yb, int rtt); void chromiLuminanceCurve (PipetteBuffer *pipetteBuffer, int pW, LabImage* lold, LabImage* lnew, LUTf &acurve, LUTf &bcurve, LUTf & satcurve, LUTf & satclcurve, LUTf &clcurve, LUTf &curve, bool utili, bool autili, bool butili, bool ccutili, bool cclutili, bool clcutili, LUTu &histCCurve, LUTu &histLurve); void vibrance (LabImage* lab);//Jacques' vibrance void colorCurve (LabImage* lold, LabImage* lnew); @@ -332,7 +332,7 @@ public: void Median_Denoise ( float **src, float **dst, int width, int height, Median medianType, int iterations, int numThreads, float **buffer = nullptr); - void RGB_denoise (int kall, Imagefloat * src, Imagefloat * dst, Imagefloat * calclum, float * ch_M, float *max_r, float *max_b, bool isRAW, const procparams::DirPyrDenoiseParams & dnparams, const double expcomp, const NoiseCurve & noiseLCurve , const NoiseCurve & noiseCCurve , float &chaut, float &redaut, float &blueaut, float &maxredaut, float & maxblueaut, float &nresi, float &highresi); + void RGB_denoise (int kall, Imagefloat * src, Imagefloat * dst, Imagefloat * calclum, float * ch_M, float *max_r, float *max_b, bool isRAW, const procparams::DirPyrDenoiseParams & dnparams, const double expcomp, const NoiseCurve & noiseLCurve, const NoiseCurve & noiseCCurve, float &chaut, float &redaut, float &blueaut, float &maxredaut, float & maxblueaut, float &nresi, float &highresi); void RGB_denoise_infoGamCurve (const procparams::DirPyrDenoiseParams & dnparams, const bool isRAW, LUTf &gamcurve, float &gam, float &gamthresh, float &gamslope); void RGB_denoise_info (Imagefloat * src, Imagefloat * provicalc, bool isRAW, LUTf &gamcurve, float gam, float gamthresh, float gamslope, const procparams::DirPyrDenoiseParams & dnparams, const double expcomp, float &chaut, int &Nb, float &redaut, float &blueaut, float &maxredaut, float & maxblueaut, float &minredaut, float & minblueaut, float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, bool multiThread = false); void RGBtile_denoise (float * fLblox, int hblproc, float noisevar_Ldetail, float * nbrwt, float * blurbuffer ); //for DCT diff --git a/rtengine/procevents.h b/rtengine/procevents.h index d9153793d..357739b29 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -502,97 +502,103 @@ enum ProcEvent { EvPixelShiftLmmse = 472, EvPixelShiftEqualBright = 473, EvPixelShiftEqualBrightChannel = 474, - EvlocallabEnabled = 475, - EvlocallablocY = 476, - EvlocallablocX = 477, - EvlocallabCenter = 478, - EvlocallabDegree = 479, - Evlocallablightness = 480, - Evlocallabcontrast = 481, - Evlocallabchroma = 482, - Evlocallabtransit = 483, - Evlocallabavoid = 484, - EvlocallablocYT = 485, - EvlocallablocXL = 486, - EvlocallabSmet = 487, - Evlocallabinvers = 488, - Evlocallabradius = 489, - Evlocallabinversrad = 490, - Evlocallabstrength = 491, - Evlocallabsensi = 492, - EvlocallabretinexMethod = 493, - Evlocallabstr = 494, - Evlocallabneigh = 495, - Evlocallabvart = 496, - EvlocallabCTgainCurve = 497, - Evlocallabchrrt = 498, - Evlocallabinversret = 499, - Evlocallabsensih = 500, - Evlocallabnbspot = 501, - Evlocallabactivlum = 502, - Evlocallabanbspot = 503, - Evlocallabsharradius = 504, - Evlocallabsharamount = 505, - Evlocallabshardamping = 506, - Evlocallabshariter = 507, - Evlocallabsensis = 508, - Evlocallabinverssha = 509, - Evlocallabcircrad = 510, - Evlocallabthres = 511, - Evlocallabproxi = 512, - EvlocallabqualityMethod = 513, - Evlocallabnoiselumf = 514, - Evlocallabnoiselumc = 515, - Evlocallabnoisechrof = 516, - Evlocallabnoisechroc = 517, - EvlocallabThresho = 518, - EvlocallabEqualizer = 519, - Evlocallabsensicb = 520, - Evlocallabsensibn = 521, - Evlocallabstren = 522, - Evlocallabgamma = 523, - Evlocallabestop = 524, - Evlocallabscaltm = 525, - Evlocallabrewei = 526, - Evlocallabsensitm = 527, - EvlocallabCTgainCurverab = 528, - Evlocallabretrab = 529, - Evlocallabllshape = 530, - EvLocenacolor = 531, - EvLocenablur = 532, - EvLocenatonemap = 533, - EvLocenareti = 534, - EvLocenasharp = 535, - EvLocenacbdl = 536, - EvLocenadenoi = 537, - EvlocallabLHshape = 538, - Evlocallabcurvactiv = 539, - Evlocallabccshape = 540, - EvlocallabqualitycurveMethod = 541, - Evlocallabhueref = 542, - Evlocallabchromaref = 543, - Evlocallablumaref = 544, - EvlocallabHHshape = 545, - EvLocenavibrance = 546, - EvlocallabSkinTonesCurve = 547, - EvlocallabProtectSkins = 548, - EvlocallabAvoidColorShift = 549, - EvlocallabPastSatTog = 550, - EvlocallabPastels = 551, - EvlocallabSaturated = 552, - EvlocallabPastSatThreshold = 553, - Evlocallabsensiv = 554, - EvLocenaexpose = 555, - Evlocallabexpcomp = 556, - Evlocallabhlcompr = 557, - Evlocallabhlcomprthresh = 558, - Evlocallabblack = 559, - Evlocallabshcompr = 560, - Evlocallabsensiex = 561, - Evlocallabshape = 562, - EvCATtempout = 563, - EvCATgreenout = 564, - EvCATybout = 565, + EvCATtempout = 475, + EvCATgreenout = 476, + EvCATybout = 477, + EvCATDegreeout = 478, + EvCATAutoDegreeout = 479, + EvCATtempsc = 480, + EvCATgreensc = 481, + EvCATybscen = 482, + EvCATAutoyb = 483, + EvlocallabEnabled = 484, + EvlocallablocY = 485, + EvlocallablocX = 486, + EvlocallabCenter = 487, + EvlocallabDegree = 488, + Evlocallablightness = 489, + Evlocallabcontrast = 490, + Evlocallabchroma = 491, + Evlocallabtransit = 492, + Evlocallabavoid = 493, + EvlocallablocYT = 494, + EvlocallablocXL = 495, + EvlocallabSmet = 496, + Evlocallabinvers = 497, + Evlocallabradius = 498, + Evlocallabinversrad = 499, + Evlocallabstrength = 500, + Evlocallabsensi = 501, + EvlocallabretinexMethod = 502, + Evlocallabstr = 503, + Evlocallabneigh = 504, + Evlocallabvart = 505, + EvlocallabCTgainCurve = 506, + Evlocallabchrrt = 507, + Evlocallabinversret = 508, + Evlocallabsensih = 509, + Evlocallabnbspot = 510, + Evlocallabactivlum = 511, + Evlocallabanbspot = 512, + Evlocallabsharradius = 513, + Evlocallabsharamount = 514, + Evlocallabshardamping = 515, + Evlocallabshariter = 516, + Evlocallabsensis = 517, + Evlocallabinverssha = 518, + Evlocallabcircrad = 519, + Evlocallabthres = 520, + Evlocallabproxi = 521, + EvlocallabqualityMethod = 522, + Evlocallabnoiselumf = 523, + Evlocallabnoiselumc = 524, + Evlocallabnoisechrof = 525, + Evlocallabnoisechroc = 526, + EvlocallabThresho = 527, + EvlocallabEqualizer = 528, + Evlocallabsensicb = 529, + Evlocallabsensibn = 530, + Evlocallabstren = 531, + Evlocallabgamma = 532, + Evlocallabestop = 533, + Evlocallabscaltm = 534, + Evlocallabrewei = 535, + Evlocallabsensitm = 536, + EvlocallabCTgainCurverab = 537, + Evlocallabretrab = 538, + Evlocallabllshape = 539, + EvLocenacolor = 540, + EvLocenablur = 541, + EvLocenatonemap = 542, + EvLocenareti = 543, + EvLocenasharp = 544, + EvLocenacbdl = 545, + EvLocenadenoi = 546, + EvlocallabLHshape = 547, + Evlocallabcurvactiv = 548, + Evlocallabccshape = 549, + EvlocallabqualitycurveMethod = 550, + Evlocallabhueref = 551, + Evlocallabchromaref = 552, + Evlocallablumaref = 553, + EvlocallabHHshape = 554, + EvLocenavibrance = 555, + EvlocallabSkinTonesCurve = 556, + EvlocallabProtectSkins = 557, + EvlocallabAvoidColorShift = 558, + EvlocallabPastSatTog = 559, + EvlocallabPastels = 560, + EvlocallabSaturated = 561, + EvlocallabPastSatThreshold = 562, + Evlocallabsensiv = 563, + EvLocenaexpose = 564, + Evlocallabexpcomp = 565, + Evlocallabhlcompr = 566, + Evlocallabhlcomprthresh = 567, + Evlocallabblack = 568, + Evlocallabshcompr = 569, + Evlocallabsensiex = 570, + Evlocallabshape = 571, NUMOFEVENTS diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 96f62e3a5..1006d433f 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1406,26 +1406,31 @@ void ProcParams::setDefaults () vibrance.skintonescurve.clear (); vibrance.skintonescurve.push_back (DCT_Linear); - wb.method = "Camera"; - wb.temperature = 6504; - wb.green = 1.0; - wb.equal = 1.0; - wb.tempBias = 0.0; - colorappearance.enabled = false; - colorappearance.degree = 90; - colorappearance.autodegree = true; - colorappearance.surround = "Average"; - colorappearance.adaplum = 16; - colorappearance.badpixsl = 0; - colorappearance.adapscen = 2000.0; - colorappearance.autoadapscen = true; - colorappearance.algo = "No"; - colorappearance.wbmodel = "RawT"; - colorappearance.jlight = 0.0; - colorappearance.qbright = 0.0; - colorappearance.chroma = 0.0; - colorappearance.schroma = 0.0; - colorappearance.mchroma = 0.0; + wb.method = "Camera"; + wb.temperature = 6504; + wb.green = 1.0; + wb.equal = 1.0; + wb.tempBias = 0.0; + colorappearance.enabled = false; + colorappearance.degree = 90; + colorappearance.autodegree = true; + colorappearance.degreeout = 90; + colorappearance.autodegreeout = true; + colorappearance.surround = "Average"; + colorappearance.surrsrc = "Average"; + colorappearance.adaplum = 16; + colorappearance.badpixsl = 0; + colorappearance.adapscen = 2000.0; + colorappearance.autoadapscen = true; + colorappearance.ybscen = 18; + colorappearance.autoybscen = true; + colorappearance.algo = "No"; + colorappearance.wbmodel = "RawT"; + colorappearance.jlight = 0.0; + colorappearance.qbright = 0.0; + colorappearance.chroma = 0.0; + colorappearance.schroma = 0.0; + colorappearance.mchroma = 0.0; colorappearance.rstprotection = 0.0; colorappearance.contrast = 0.0; colorappearance.qcontrast = 0.0; @@ -1444,10 +1449,12 @@ void ProcParams::setDefaults () colorappearance.curveMode2 = ColorAppearanceParams::TC_MODE_LIGHT; colorappearance.curve3.clear (); colorappearance.curve3.push_back (DCT_Linear); - colorappearance.curveMode3 = ColorAppearanceParams::TC_MODE_CHROMA; - colorappearance.tempout = 5000; - colorappearance.greenout = 1.0; - colorappearance.ybout = 18; + colorappearance.curveMode3 = ColorAppearanceParams::TC_MODE_CHROMA; + colorappearance.tempout = 5000; + colorappearance.greenout = 1.0; + colorappearance.ybout = 18; + colorappearance.tempsc = 5000; + colorappearance.greensc = 1.0; impulseDenoise.enabled = false; impulseDenoise.thresh = 50; @@ -2354,10 +2361,22 @@ int ProcParams::save (const Glib::ustring &fname, const Glib::ustring &fname2, b keyFile.set_boolean ("Color appearance", "AutoDegree", colorappearance.autodegree); } + if (!pedited || pedited->colorappearance.degreeout) { + keyFile.set_integer ("Color appearance", "Degreeout", colorappearance.degreeout); + } + + if (!pedited || pedited->colorappearance.autodegreeout) { + keyFile.set_boolean ("Color appearance", "AutoDegreeout", colorappearance.autodegreeout); + } + if (!pedited || pedited->colorappearance.surround) { keyFile.set_string ("Color appearance", "Surround", colorappearance.surround); } + if (!pedited || pedited->colorappearance.surrsrc) { + keyFile.set_string ("Color appearance", "Surrsrc", colorappearance.surrsrc); + } + // if (!pedited || pedited->colorappearance.backgrd) keyFile.set_integer ("Color appearance", "Background", colorappearance.backgrd); if (!pedited || pedited->colorappearance.adaplum) { keyFile.set_double ("Color appearance", "AdaptLum", colorappearance.adaplum); @@ -2419,6 +2438,14 @@ int ProcParams::save (const Glib::ustring &fname, const Glib::ustring &fname2, b keyFile.set_boolean ("Color appearance", "AutoAdapscen", colorappearance.autoadapscen); } + if (!pedited || pedited->colorappearance.ybscen) { + keyFile.set_integer ("Color appearance", "YbScene", colorappearance.ybscen); + } + + if (!pedited || pedited->colorappearance.autoybscen) { + keyFile.set_boolean ("Color appearance", "Autoybscen", colorappearance.autoybscen); + } + if (!pedited || pedited->colorappearance.surrsource) { keyFile.set_boolean ("Color appearance", "SurrSource", colorappearance.surrsource); } @@ -2435,6 +2462,14 @@ int ProcParams::save (const Glib::ustring &fname, const Glib::ustring &fname2, b keyFile.set_double ("Color appearance", "Greenout", colorappearance.greenout); } + if (!pedited || pedited->colorappearance.tempsc) { + keyFile.set_integer ("Color appearance", "Tempsc", colorappearance.tempsc); + } + + if (!pedited || pedited->colorappearance.greensc) { + keyFile.set_double ("Color appearance", "Greensc", colorappearance.greensc); + } + if (!pedited || pedited->colorappearance.ybout) { keyFile.set_integer ("Color appearance", "Ybout", colorappearance.ybout); } @@ -6336,6 +6371,22 @@ int ProcParams::load (const Glib::ustring &fname, ParamsEdited* pedited) } } + if (keyFile.has_key ("Color appearance", "Degreeout")) { + colorappearance.degreeout = keyFile.get_integer ("Color appearance", "Degreeout"); + + if (pedited) { + pedited->colorappearance.degreeout = true; + } + } + + if (keyFile.has_key ("Color appearance", "AutoDegreeout")) { + colorappearance.autodegreeout = keyFile.get_boolean ("Color appearance", "AutoDegreeout"); + + if (pedited) { + pedited->colorappearance.autodegreeout = true; + } + } + if (keyFile.has_key ("Color appearance", "Surround")) { colorappearance.surround = keyFile.get_string ("Color appearance", "Surround"); @@ -6344,6 +6395,14 @@ int ProcParams::load (const Glib::ustring &fname, ParamsEdited* pedited) } } + if (keyFile.has_key ("Color appearance", "Surrsrc")) { + colorappearance.surrsrc = keyFile.get_string ("Color appearance", "Surrsrc"); + + if (pedited) { + pedited->colorappearance.surrsrc = true; + } + } + // if (keyFile.has_key ("Color appearance", "Background")) {colorappearance.backgrd = keyFile.get_integer ("Color appearance", "Background"); if (pedited) pedited->colorappearance.backgrd = true; } if (keyFile.has_key ("Color appearance", "AdaptLum")) { colorappearance.adaplum = keyFile.get_double ("Color appearance", "AdaptLum"); @@ -6465,6 +6524,22 @@ int ProcParams::load (const Glib::ustring &fname, ParamsEdited* pedited) } } + if (keyFile.has_key ("Color appearance", "YbScene")) { + colorappearance.ybscen = keyFile.get_integer ("Color appearance", "YbScene"); + + if (pedited) { + pedited->colorappearance.ybscen = true; + } + } + + if (keyFile.has_key ("Color appearance", "Autoybscen")) { + colorappearance.autoybscen = keyFile.get_boolean ("Color appearance", "Autoybscen"); + + if (pedited) { + pedited->colorappearance.autoybscen = true; + } + } + if (keyFile.has_key ("Color appearance", "SurrSource")) { colorappearance.surrsource = keyFile.get_boolean ("Color appearance", "SurrSource"); @@ -6497,6 +6572,22 @@ int ProcParams::load (const Glib::ustring &fname, ParamsEdited* pedited) } } + if (keyFile.has_key ("Color appearance", "Tempsc")) { + colorappearance.tempsc = keyFile.get_integer ("Color appearance", "Tempsc"); + + if (pedited) { + pedited->colorappearance.tempsc = true; + } + } + + if (keyFile.has_key ("Color appearance", "Greensc")) { + colorappearance.greensc = keyFile.get_double ("Color appearance", "Greensc"); + + if (pedited) { + pedited->colorappearance.greensc = true; + } + } + if (keyFile.has_key ("Color appearance", "Ybout")) { colorappearance.ybout = keyFile.get_integer ("Color appearance", "Ybout"); @@ -9626,9 +9717,14 @@ bool ProcParams::operator== (const ProcParams& other) && colorappearance.enabled == other.colorappearance.enabled && colorappearance.degree == other.colorappearance.degree && colorappearance.autodegree == other.colorappearance.autodegree + && colorappearance.degreeout == other.colorappearance.degreeout + && colorappearance.autodegreeout == other.colorappearance.autodegreeout && colorappearance.surround == other.colorappearance.surround + && colorappearance.surrsrc == other.colorappearance.surrsrc && colorappearance.adapscen == other.colorappearance.adapscen && colorappearance.autoadapscen == other.colorappearance.autoadapscen + && colorappearance.ybscen == other.colorappearance.ybscen + && colorappearance.autoybscen == other.colorappearance.autoybscen && colorappearance.adaplum == other.colorappearance.adaplum && colorappearance.badpixsl == other.colorappearance.badpixsl && colorappearance.wbmodel == other.colorappearance.wbmodel @@ -9647,6 +9743,8 @@ bool ProcParams::operator== (const ProcParams& other) && colorappearance.colorh == other.colorappearance.colorh && colorappearance.tempout == other.colorappearance.tempout && colorappearance.greenout == other.colorappearance.greenout + && colorappearance.tempsc == other.colorappearance.tempsc + && colorappearance.greensc == other.colorappearance.greensc && colorappearance.ybout == other.colorappearance.ybout && impulseDenoise.enabled == other.impulseDenoise.enabled && impulseDenoise.thresh == other.impulseDenoise.thresh diff --git a/rtengine/procparams.h b/rtengine/procparams.h index f110d8dea..e59dc249d 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -590,6 +590,8 @@ public: bool enabled; int degree; bool autodegree; + int degreeout; + bool autodegreeout; std::vector curve; std::vector curve2; std::vector curve3; @@ -598,8 +600,11 @@ public: eCTCModeId curveMode3; Glib::ustring surround; + Glib::ustring surrsrc; double adapscen; bool autoadapscen; + int ybscen; + bool autoybscen; double adaplum; int badpixsl; @@ -622,6 +627,8 @@ public: int tempout; int ybout; double greenout; + int tempsc; + double greensc; // bool sharpcie; }; diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index fa42d35a4..5025684fb 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -502,6 +502,15 @@ int refreshmap[rtengine::NUMOFEVENTS] = { DEMOSAIC, // EvPixelShiftLmmse DEMOSAIC, // EvPixelShiftEqualBright DEMOSAIC, // EvPixelShiftEqualBrightChannel + LUMINANCECURVE, // EvCATtempout + LUMINANCECURVE, // EvCATgreenout + LUMINANCECURVE, // EvCATybout + LUMINANCECURVE, // EvCATDegreeout + LUMINANCECURVE, // EvCATAutoDegreeout + LUMINANCECURVE, // EvCATtempsc + LUMINANCECURVE, // EvCATgreensc + LUMINANCECURVE, // EvCATybscen + LUMINANCECURVE, // EvCATAutoyb LUMINANCECURVE, // EvlocallabEnabled LUMINANCECURVE, // EvlocallablocY LUMINANCECURVE, // EvlocallablocX @@ -589,10 +598,7 @@ int refreshmap[rtengine::NUMOFEVENTS] = { LUMINANCECURVE, //Evlocallabblack LUMINANCECURVE, //Evlocallabshcompr LUMINANCECURVE, //Evlocallabsensiex - LUMINANCECURVE, //Evlocallabshape - LUMINANCECURVE, // EvCATtempout - LUMINANCECURVE, // EvCATgreenout - LUMINANCECURVE // EvCATybout + LUMINANCECURVE //Evlocallabshape }; diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index f51afc807..bc7d221a4 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -274,8 +274,10 @@ class AutoCamListener { public : virtual ~AutoCamListener() {} - virtual void autoCamChanged (double ccam) {} + virtual void autoCamChanged (double ccam, double ccamout) {} virtual void adapCamChanged (double cadap) {} + virtual void ybCamChanged (int yb) {} + }; class AutoChromaListener @@ -325,21 +327,21 @@ class AutoWBListener { public : virtual ~AutoWBListener() = default; - virtual void WBChanged(double temp, double green) = 0; + virtual void WBChanged (double temp, double green) = 0; }; class FrameCountListener { public : virtual ~FrameCountListener() = default; - virtual void FrameCountChanged(int n, int frameNum) = 0; + virtual void FrameCountChanged (int n, int frameNum) = 0; }; class ImageTypeListener { public : virtual ~ImageTypeListener() = default; - virtual void imageTypeChanged(bool isRaw, bool isBayer, bool isXtrans) = 0; + virtual void imageTypeChanged (bool isRaw, bool isBayer, bool isXtrans) = 0; }; class WaveletListener @@ -491,7 +493,7 @@ public: * @param isRaw shall be true if it is a raw file * @param pparams is a struct containing the processing parameters * @return an object containing the data above. It can be passed to the functions that do the actual image processing. */ - static ProcessingJob* create (const Glib::ustring& fname, bool isRaw, const procparams::ProcParams& pparams, bool fast=false); + static ProcessingJob* create (const Glib::ustring& fname, bool isRaw, const procparams::ProcParams& pparams, bool fast = false); /** Creates a processing job from a file name. This function always succeeds. It only stores the data into the ProcessingJob class, it does not load * the image thus it returns immediately. This function increases the reference count of the initialImage. If you decide not the process the image you @@ -500,7 +502,7 @@ public: * @param initialImage is a loaded and pre-processed initial image * @param pparams is a struct containing the processing parameters * @return an object containing the data above. It can be passed to the functions that do the actual image processing. */ - static ProcessingJob* create (InitialImage* initialImage, const procparams::ProcParams& pparams, bool fast=false); + static ProcessingJob* create (InitialImage* initialImage, const procparams::ProcParams& pparams, bool fast = false); /** Cancels and destroys a processing job. The reference count of the corresponding initialImage (if any) is decreased. After the call of this function the ProcessingJob instance * gets invalid, you must not use it any more. Dont call this function while the job is being processed. diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 919893212..343fc9730 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -42,83 +42,91 @@ namespace { - bool checkRawImageThumb(const rtengine::RawImage& raw_image) - { - if (!raw_image.is_supportedThumb()) { - return false; - } - - const ssize_t length = - fdata(raw_image.get_thumbOffset(), raw_image.get_file())[1] != 0xD8 && raw_image.is_ppmThumb() - ? raw_image.get_thumbWidth() * raw_image.get_thumbHeight() * (raw_image.get_thumbBPS() / 8) * 3 - : raw_image.get_thumbLength(); - - return raw_image.get_thumbOffset() + length <= raw_image.get_file()->size; +bool checkRawImageThumb (const rtengine::RawImage& raw_image) +{ + if (!raw_image.is_supportedThumb()) { + return false; } + const ssize_t length = + fdata (raw_image.get_thumbOffset(), raw_image.get_file())[1] != 0xD8 && raw_image.is_ppmThumb() + ? raw_image.get_thumbWidth() * raw_image.get_thumbHeight() * (raw_image.get_thumbBPS() / 8) * 3 + : raw_image.get_thumbLength(); -void scale_colors(rtengine::RawImage *ri, float scale_mul[4], float cblack[4]) + return raw_image.get_thumbOffset() + length <= raw_image.get_file()->size; +} + + +void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4]) { DCraw::dcrawImage_t image = ri->get_image(); - if(ri->isBayer()) { + + if (ri->isBayer()) { const int height = ri->get_iheight(); const int width = ri->get_iwidth(); - for(int row = 0; row < height; ++row) { - unsigned c0 = ri->FC(row,0); - unsigned c1 = ri->FC(row,1); + + for (int row = 0; row < height; ++row) { + unsigned c0 = ri->FC (row, 0); + unsigned c1 = ri->FC (row, 1); int col = 0; - for(; col < width - 1; col += 2) { + + for (; col < width - 1; col += 2) { float val0 = image[row * width + col][c0]; float val1 = image[row * width + col + 1][c1]; val0 -= cblack[c0]; val1 -= cblack[c1]; val0 *= scale_mul[c0]; val1 *= scale_mul[c1]; - image[row * width + col][c0] = rtengine::CLIP(val0); - image[row * width + col + 1][c1] = rtengine::CLIP(val1); + image[row * width + col][c0] = rtengine::CLIP (val0); + image[row * width + col + 1][c1] = rtengine::CLIP (val1); } - if(col < width) { // in case width is odd + + if (col < width) { // in case width is odd float val0 = image[row * width + col][c0]; val0 -= cblack[c0]; val0 *= scale_mul[c0]; - image[row * width + col][c0] = rtengine::CLIP(val0); + image[row * width + col][c0] = rtengine::CLIP (val0); } } - } else if(ri->isXtrans()) { + } else if (ri->isXtrans()) { const int height = ri->get_iheight(); const int width = ri->get_iwidth(); unsigned c[6]; - for(int row = 0; row < height; ++row) { - for(int i = 0; i < 6; ++i) { - c[i] = ri->XTRANSFC(row,i); + + for (int row = 0; row < height; ++row) { + for (int i = 0; i < 6; ++i) { + c[i] = ri->XTRANSFC (row, i); } int col = 0; - for(; col < width - 5; col += 6) { - for(int i = 0; i < 6; ++i) { + + for (; col < width - 5; col += 6) { + for (int i = 0; i < 6; ++i) { const unsigned ccol = c[i]; float val = image[row * width + col + i][ccol]; val -= cblack[ccol]; val *= scale_mul[ccol]; - image[row * width + col + i][ccol] = rtengine::CLIP(val); + image[row * width + col + i][ccol] = rtengine::CLIP (val); } } - for(; col < width; ++col) { // remaining columns - const unsigned ccol = ri->XTRANSFC(row,col); + + for (; col < width; ++col) { // remaining columns + const unsigned ccol = ri->XTRANSFC (row, col); float val = image[row * width + col][ccol]; val -= cblack[ccol]; val *= scale_mul[ccol]; - image[row * width + col][ccol] = rtengine::CLIP(val); + image[row * width + col][ccol] = rtengine::CLIP (val); } } } else { const int size = ri->get_iheight() * ri->get_iwidth(); + for (int i = 0; i < size; ++i) { for (int j = 0; j < 4; ++j) { float val = image[i][j]; val -= cblack[j]; val *= scale_mul[j]; - image[i][j] = rtengine::CLIP(val); + image[i][j] = rtengine::CLIP (val); } } } @@ -137,7 +145,7 @@ Thumbnail* Thumbnail::loadFromImage (const Glib::ustring& fname, int &w, int &h, StdImageSource imgSrc; - if (imgSrc.load(fname)) { + if (imgSrc.load (fname)) { return nullptr; } @@ -157,7 +165,7 @@ Thumbnail* Thumbnail::loadFromImage (const Glib::ustring& fname, int &w, int &h, tpp->defGain = 1.0; tpp->gammaCorrected = false; tpp->isRaw = 0; - memset (tpp->colorMatrix, 0, sizeof(tpp->colorMatrix)); + memset (tpp->colorMatrix, 0, sizeof (tpp->colorMatrix)); tpp->colorMatrix[0][0] = 1.0; tpp->colorMatrix[1][1] = 1.0; tpp->colorMatrix[2][2] = 1.0; @@ -187,21 +195,21 @@ Thumbnail* Thumbnail::loadFromImage (const Glib::ustring& fname, int &w, int &h, // we want an Image8 if (img->getType() == rtengine::sImage8) { // copy the image - Image8 *srcImg = static_cast(img); + Image8 *srcImg = static_cast (img); Image8 *thImg = new Image8 (w, h); - srcImg->copyData(thImg); + srcImg->copyData (thImg); tpp->thumbImg = thImg; } else { // copy the image with a conversion - tpp->thumbImg = resizeTo(w, h, TI_Bilinear, img); + tpp->thumbImg = resizeTo (w, h, TI_Bilinear, img); } } else { // we want the same image type than the source file - tpp->thumbImg = resizeToSameType(w, h, TI_Bilinear, img); + tpp->thumbImg = resizeToSameType (w, h, TI_Bilinear, img); // histogram computation tpp->aeHistCompression = 3; - tpp->aeHistogram(65536 >> tpp->aeHistCompression); + tpp->aeHistogram (65536 >> tpp->aeHistCompression); double avg_r = 0; double avg_g = 0; @@ -209,24 +217,24 @@ Thumbnail* Thumbnail::loadFromImage (const Glib::ustring& fname, int &w, int &h, int n = 0; if (img->getType() == rtengine::sImage8) { - Image8 *image = static_cast(img); - image->computeHistogramAutoWB(avg_r, avg_g, avg_b, n, tpp->aeHistogram, tpp->aeHistCompression); + Image8 *image = static_cast (img); + image->computeHistogramAutoWB (avg_r, avg_g, avg_b, n, tpp->aeHistogram, tpp->aeHistCompression); } else if (img->getType() == sImage16) { - Image16 *image = static_cast(img); - image->computeHistogramAutoWB(avg_r, avg_g, avg_b, n, tpp->aeHistogram, tpp->aeHistCompression); + Image16 *image = static_cast (img); + image->computeHistogramAutoWB (avg_r, avg_g, avg_b, n, tpp->aeHistogram, tpp->aeHistCompression); } else if (img->getType() == sImagefloat) { - Imagefloat *image = static_cast(img); - image->computeHistogramAutoWB(avg_r, avg_g, avg_b, n, tpp->aeHistogram, tpp->aeHistCompression); + Imagefloat *image = static_cast (img); + image->computeHistogramAutoWB (avg_r, avg_g, avg_b, n, tpp->aeHistogram, tpp->aeHistCompression); } else { - printf("loadFromImage: Unsupported image type \"%s\"!\n", img->getType()); + printf ("loadFromImage: Unsupported image type \"%s\"!\n", img->getType()); } if (n > 0) { ColorTemp cTemp; - tpp->redAWBMul = avg_r / double(n); - tpp->greenAWBMul = avg_g / double(n); - tpp->blueAWBMul = avg_b / double(n); + tpp->redAWBMul = avg_r / double (n); + tpp->greenAWBMul = avg_g / double (n); + tpp->blueAWBMul = avg_b / double (n); tpp->wbEqual = wbEq; tpp->wbTempBias = 0.0; @@ -241,11 +249,11 @@ Thumbnail* Thumbnail::loadFromImage (const Glib::ustring& fname, int &w, int &h, Thumbnail* Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, RawMetaDataLocation& rml, int &w, int &h, int fixwh, bool rotate, bool inspectorMode) { - RawImage *ri = new RawImage(fname); + RawImage *ri = new RawImage (fname); unsigned int imageNum = 0; - int r = ri->loadRaw(false, imageNum, false); + int r = ri->loadRaw (false, imageNum, false); - if( r ) { + if ( r ) { delete ri; return nullptr; } @@ -257,25 +265,25 @@ Thumbnail* Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, RawMetaDataL Image8* img = new Image8 (); // No sample format detection occurred earlier, so we set them here, // as they are mandatory for the setScanline method - img->setSampleFormat(IIOSF_UNSIGNED_CHAR); - img->setSampleArrangement(IIOSA_CHUNKY); + img->setSampleFormat (IIOSF_UNSIGNED_CHAR); + img->setSampleArrangement (IIOSA_CHUNKY); int err = 1; // See if it is something we support - if (checkRawImageThumb(*ri)) { - const char* data((const char*)fdata(ri->get_thumbOffset(), ri->get_file())); + if (checkRawImageThumb (*ri)) { + const char* data ((const char*)fdata (ri->get_thumbOffset(), ri->get_file())); if ( (unsigned char)data[1] == 0xd8 ) { - err = img->loadJPEGFromMemory(data, ri->get_thumbLength()); + err = img->loadJPEGFromMemory (data, ri->get_thumbLength()); } else if (ri->is_ppmThumb()) { - err = img->loadPPMFromMemory(data, ri->get_thumbWidth(), ri->get_thumbHeight(), ri->get_thumbSwap(), ri->get_thumbBPS()); + err = img->loadPPMFromMemory (data, ri->get_thumbWidth(), ri->get_thumbHeight(), ri->get_thumbSwap(), ri->get_thumbBPS()); } } // did we succeed? if ( err ) { - printf("Could not extract thumb from %s\n", fname.data()); + printf ("Could not extract thumb from %s\n", fname.data()); delete img; delete ri; return nullptr; @@ -284,7 +292,7 @@ Thumbnail* Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, RawMetaDataL Thumbnail* tpp = new Thumbnail (); tpp->isRaw = 1; - memset (tpp->colorMatrix, 0, sizeof(tpp->colorMatrix)); + memset (tpp->colorMatrix, 0, sizeof (tpp->colorMatrix)); tpp->colorMatrix[0][0] = 1.0; tpp->colorMatrix[1][1] = 1.0; tpp->colorMatrix[2][2] = 1.0; @@ -312,21 +320,21 @@ Thumbnail* Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, RawMetaDataL if (inspectorMode) { tpp->thumbImg = img; } else { - tpp->thumbImg = resizeTo(w, h, TI_Nearest, img); + tpp->thumbImg = resizeTo (w, h, TI_Nearest, img); delete img; } if (rotate && ri->get_rotateDegree() > 0) { std::string fname = ri->get_filename(); - std::string suffix = fname.length() > 4 ? fname.substr(fname.length() - 3) : ""; + std::string suffix = fname.length() > 4 ? fname.substr (fname.length() - 3) : ""; for (unsigned int i = 0; i < suffix.length(); i++) { - suffix[i] = std::tolower(suffix[i]); + suffix[i] = std::tolower (suffix[i]); } // Leaf .mos, Mamiya .mef and Phase One .iiq files have thumbnails already rotated. if (suffix != "mos" && suffix != "mef" && suffix != "iiq") { - tpp->thumbImg->rotate(ri->get_rotateDegree()); + tpp->thumbImg->rotate (ri->get_rotateDegree()); // width/height may have changed after rotating w = tpp->thumbImg->getWidth(); h = tpp->thumbImg->getHeight(); @@ -356,12 +364,12 @@ RawMetaDataLocation Thumbnail::loadMetaDataFromRaw (const Glib::ustring& fname) rml.ciffBase = -1; rml.ciffLength = -1; - RawImage ri(fname); + RawImage ri (fname); unsigned int imageNum = 0; - int r = ri.loadRaw(false, imageNum); + int r = ri.loadRaw (false, imageNum); - if( !r ) { + if ( !r ) { rml.exifBase = ri.get_exifBase(); rml.ciffBase = ri.get_ciffBase(); rml.ciffLength = ri.get_ciffLen(); @@ -375,9 +383,9 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati RawImage *ri = new RawImage (fname); unsigned int tempImageNum = 0; - int r = ri->loadRaw(1, tempImageNum, 0); + int r = ri->loadRaw (1, tempImageNum, 0); - if( r ) { + if ( r ) { delete ri; return nullptr; } @@ -392,18 +400,18 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati tpp->embProfileLength = ri->get_profileLen(); if (ri->get_profileLen()) - tpp->embProfile = cmsOpenProfileFromMem(ri->get_profile(), - ri->get_profileLen()); //\ TODO check if mutex is needed + tpp->embProfile = cmsOpenProfileFromMem (ri->get_profile(), + ri->get_profileLen()); //\ TODO check if mutex is needed - tpp->redMultiplier = ri->get_pre_mul(0); - tpp->greenMultiplier = ri->get_pre_mul(1); - tpp->blueMultiplier = ri->get_pre_mul(2); + tpp->redMultiplier = ri->get_pre_mul (0); + tpp->greenMultiplier = ri->get_pre_mul (1); + tpp->blueMultiplier = ri->get_pre_mul (2); //ri->scale_colors(); float pre_mul[4], scale_mul[4], cblack[4]; - ri->get_colorsCoeff(pre_mul, scale_mul, cblack, false); - scale_colors(ri, scale_mul, cblack); - + ri->get_colorsCoeff (pre_mul, scale_mul, cblack, false); + scale_colors (ri, scale_mul, cblack); + ri->pre_interpolate(); rml.exifBase = ri->get_exifBase(); @@ -414,7 +422,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati tpp->camwbGreen = tpp->greenMultiplier / pre_mul[1]; //ri->get_pre_mul(1); tpp->camwbBlue = tpp->blueMultiplier / pre_mul[2]; //ri->get_pre_mul(2); //tpp->defGain = 1.0 / min(ri->get_pre_mul(0), ri->get_pre_mul(1), ri->get_pre_mul(2)); - tpp->defGain = max(scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]) / min(scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]); + tpp->defGain = max (scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]) / min (scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]); tpp->gammaCorrected = true; @@ -422,8 +430,8 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati int firstgreen = 1; // locate first green location in the first row - if(ri->getSensorType() == ST_BAYER) - while (!FISGREEN(filter, 1, firstgreen) && firstgreen < 3) { + if (ri->getSensorType() == ST_BAYER) + while (!FISGREEN (filter, 1, firstgreen) && firstgreen < 3) { firstgreen++; } @@ -431,9 +439,9 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati if (ri->get_FujiWidth() != 0) { if (fixwh == 1) { // fix height, scale width - skip = ((ri->get_height() - ri->get_FujiWidth()) / sqrt(0.5) - firstgreen - 1) / h; + skip = ((ri->get_height() - ri->get_FujiWidth()) / sqrt (0.5) - firstgreen - 1) / h; } else { - skip = (ri->get_FujiWidth() / sqrt(0.5) - firstgreen - 1) / w; + skip = (ri->get_FujiWidth() / sqrt (0.5) - firstgreen - 1) / w; } } else { if (fixwh == 1) { // fix height, scale width @@ -453,7 +461,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati int hskip = skip, vskip = skip; - if (!ri->get_model().compare("D1X")) { + if (!ri->get_model().compare ("D1X")) { hskip *= 2; } @@ -463,7 +471,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati DCraw::dcrawImage_t image = ri->get_image(); - Imagefloat* tmpImg = new Imagefloat(tmpw, tmph); + Imagefloat* tmpImg = new Imagefloat (tmpw, tmph); if (ri->getSensorType() == ST_BAYER) { // demosaicing! (sort of) @@ -475,7 +483,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati int g = image[ofs][1]; int r, b; - if (FISRED(filter, row, col + 1)) { + if (FISRED (filter, row, col + 1)) { r = (image[ofs + 1 ][0] + image[ofs - 1 ][0]) >> 1; b = (image[ofs + width][2] + image[ofs - width][2]) >> 1; } else { @@ -483,9 +491,9 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati r = (image[ofs + width][0] + image[ofs - width][0]) >> 1; } - tmpImg->r(y, x) = r; - tmpImg->g(y, x) = g; - tmpImg->b(y, x) = b; + tmpImg->r (y, x) = r; + tmpImg->g (y, x) = g; + tmpImg->b (y, x) = b; } } } else if (ri->get_colors() == 1) { @@ -495,45 +503,45 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati for (int col = firstgreen, x = 0; col < width - 1 && x < tmpw; col += hskip, x++) { int ofs = rofs + col; - tmpImg->r(y, x) = tmpImg->g(y, x) = tmpImg->b(y, x) = image[ofs][0]; + tmpImg->r (y, x) = tmpImg->g (y, x) = tmpImg->b (y, x) = image[ofs][0]; } } } else { - if(ri->getSensorType() == ST_FUJI_XTRANS) { - for( int row = 1, y = 0; row < height - 1 && y < tmph; row += vskip, y++) { + if (ri->getSensorType() == ST_FUJI_XTRANS) { + for ( int row = 1, y = 0; row < height - 1 && y < tmph; row += vskip, y++) { rofs = row * width; - for( int col = 1, x = 0; col < width - 1 && x < tmpw; col += hskip, x++ ) { + for ( int col = 1, x = 0; col < width - 1 && x < tmpw; col += hskip, x++ ) { int ofs = rofs + col; float sum[3] = {}; int c; - for(int v = -1; v <= 1; v++) { - for(int h = -1; h <= 1; h++) { - c = ri->XTRANSFC(row + v, col + h); + for (int v = -1; v <= 1; v++) { + for (int h = -1; h <= 1; h++) { + c = ri->XTRANSFC (row + v, col + h); sum[c] += image[ofs + v * width + h][c]; } } - c = ri->XTRANSFC(row, col); + c = ri->XTRANSFC (row, col); switch (c) { case 0: - tmpImg->r(y, x) = image[ofs][0]; - tmpImg->g(y, x) = sum[1] / 5.f; - tmpImg->b(y, x) = sum[2] / 3.f; + tmpImg->r (y, x) = image[ofs][0]; + tmpImg->g (y, x) = sum[1] / 5.f; + tmpImg->b (y, x) = sum[2] / 3.f; break; case 1: - tmpImg->r(y, x) = sum[0] / 2.f; - tmpImg->g(y, x) = image[ofs][1]; - tmpImg->b(y, x) = sum[2] / 2.f; + tmpImg->r (y, x) = sum[0] / 2.f; + tmpImg->g (y, x) = image[ofs][1]; + tmpImg->b (y, x) = sum[2] / 2.f; break; case 2: - tmpImg->r(y, x) = sum[0] / 3.f; - tmpImg->g(y, x) = sum[1] / 5.f; - tmpImg->b(y, x) = image[ofs][2]; + tmpImg->r (y, x) = sum[0] / 3.f; + tmpImg->g (y, x) = sum[1] / 5.f; + tmpImg->b (y, x) = image[ofs][2]; break; } } @@ -546,29 +554,34 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati int top_margin = ri->get_topmargin(); int wmax = tmpw; int hmax = tmph; - if(ri->get_maker() == "Sigma" && ri->DNGVERSION()) { // Hack to prevent sigma dng files from crashing + + if (ri->get_maker() == "Sigma" && ri->DNGVERSION()) { // Hack to prevent sigma dng files from crashing wmax = (width - 2 - left_margin) / hskip; hmax = (height - 2 - top_margin) / vskip; } int y = 0; + for (int row = 1 + top_margin; row < iheight + top_margin - 1 && y < hmax; row += vskip, y++) { rofs = row * iwidth; int x = 0; + for (int col = firstgreen; col < iwidth + left_margin - 1 && x < wmax; col += hskip, x++) { int ofs = rofs + col; - tmpImg->r(y, x) = image[ofs][0]; - tmpImg->g(y, x) = image[ofs][1]; - tmpImg->b(y, x) = image[ofs][2]; + tmpImg->r (y, x) = image[ofs][0]; + tmpImg->g (y, x) = image[ofs][1]; + tmpImg->b (y, x) = image[ofs][2]; } + for (; x < tmpw; ++x) { - tmpImg->r(y, x) = tmpImg->g(y, x) = tmpImg->b(y, x) = 0; + tmpImg->r (y, x) = tmpImg->g (y, x) = tmpImg->b (y, x) = 0; } } + for (; y < tmph; ++y) { for (int x = 0; x < tmpw; ++x) { - tmpImg->r(y, x) = tmpImg->g(y, x) = tmpImg->b(y, x) = 0; + tmpImg->r (y, x) = tmpImg->g (y, x) = tmpImg->b (y, x) = 0; } } } @@ -576,10 +589,10 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati if (ri->get_FujiWidth() != 0) { int fw = ri->get_FujiWidth() / hskip; - double step = sqrt(0.5); + double step = sqrt (0.5); int wide = fw / step; int high = (tmph - fw) / step; - Imagefloat* fImg = new Imagefloat(wide, high); + Imagefloat* fImg = new Imagefloat (wide, high); float r, c; for (int row = 0; row < high; row++) @@ -593,9 +606,9 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati double fr = r - ur; double fc = c - uc; - fImg->r(row, col) = (tmpImg->r(ur, uc) * (1 - fc) + tmpImg->r(ur, uc + 1) * fc) * (1 - fr) + (tmpImg->r(ur + 1, uc) * (1 - fc) + tmpImg->r(ur + 1, uc + 1) * fc) * fr; - fImg->g(row, col) = (tmpImg->g(ur, uc) * (1 - fc) + tmpImg->g(ur, uc + 1) * fc) * (1 - fr) + (tmpImg->g(ur + 1, uc) * (1 - fc) + tmpImg->g(ur + 1, uc + 1) * fc) * fr; - fImg->b(row, col) = (tmpImg->b(ur, uc) * (1 - fc) + tmpImg->b(ur, uc + 1) * fc) * (1 - fr) + (tmpImg->b(ur + 1, uc) * (1 - fc) + tmpImg->b(ur + 1, uc + 1) * fc) * fr; + fImg->r (row, col) = (tmpImg->r (ur, uc) * (1 - fc) + tmpImg->r (ur, uc + 1) * fc) * (1 - fr) + (tmpImg->r (ur + 1, uc) * (1 - fc) + tmpImg->r (ur + 1, uc + 1) * fc) * fr; + fImg->g (row, col) = (tmpImg->g (ur, uc) * (1 - fc) + tmpImg->g (ur, uc + 1) * fc) * (1 - fr) + (tmpImg->g (ur + 1, uc) * (1 - fc) + tmpImg->g (ur + 1, uc + 1) * fc) * fr; + fImg->b (row, col) = (tmpImg->b (ur, uc) * (1 - fc) + tmpImg->b (ur, uc + 1) * fc) * (1 - fr) + (tmpImg->b (ur + 1, uc) * (1 - fc) + tmpImg->b (ur + 1, uc + 1) * fc) * fr; } delete tmpImg; @@ -612,7 +625,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati ); if (rotate_90) { - std::swap(tmpw, tmph); + std::swap (tmpw, tmph); } if (fixwh == 1) { // fix height, scale width @@ -626,10 +639,11 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati } if (rotate_90) { - tpp->thumbImg = resizeTo(h, w, TI_Bilinear, tmpImg); + tpp->thumbImg = resizeTo (h, w, TI_Bilinear, tmpImg); } else { - tpp->thumbImg = resizeTo(w, h, TI_Bilinear, tmpImg); + tpp->thumbImg = resizeTo (w, h, TI_Bilinear, tmpImg); } + delete tmpImg; @@ -641,7 +655,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati // generate histogram for auto exposure tpp->aeHistCompression = 3; - tpp->aeHistogram(65536 >> tpp->aeHistCompression); + tpp->aeHistogram (65536 >> tpp->aeHistCompression); tpp->aeHistogram.clear(); int radd = 4; int gadd = 4; @@ -656,8 +670,8 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati if (ri->get_FujiWidth() != 0) { int fw = ri->get_FujiWidth(); - start = ABS(fw - i) + 8; - end = min(height + width - fw - i, fw + i) - 8; + start = ABS (fw - i) + 8; + end = min (height + width - fw - i, fw + i) - 8; } else { start = 8; end = width - 8; @@ -665,33 +679,33 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati if (ri->get_colors() == 1) { for (int j = start; j < end; j++) { - tpp->aeHistogram[((int)(image[i * width + j][0])) >> tpp->aeHistCompression] += radd; - tpp->aeHistogram[((int)(image[i * width + j][0])) >> tpp->aeHistCompression] += gadd; - tpp->aeHistogram[((int)(image[i * width + j][0])) >> tpp->aeHistCompression] += badd; + tpp->aeHistogram[ ((int) (image[i * width + j][0])) >> tpp->aeHistCompression] += radd; + tpp->aeHistogram[ ((int) (image[i * width + j][0])) >> tpp->aeHistCompression] += gadd; + tpp->aeHistogram[ ((int) (image[i * width + j][0])) >> tpp->aeHistCompression] += badd; } - } else if(ri->getSensorType() == ST_BAYER) { + } else if (ri->getSensorType() == ST_BAYER) { for (int j = start; j < end; j++) - if (FISGREEN(filter, i, j)) { - tpp->aeHistogram[((int)(tpp->camwbGreen * image[i * width + j][1])) >> tpp->aeHistCompression] += gadd; - } else if (FISRED(filter, i, j)) { - tpp->aeHistogram[((int)(tpp->camwbRed * image[i * width + j][0])) >> tpp->aeHistCompression] += radd; - } else if (FISBLUE(filter, i, j)) { - tpp->aeHistogram[((int)(tpp->camwbBlue * image[i * width + j][2])) >> tpp->aeHistCompression] += badd; + if (FISGREEN (filter, i, j)) { + tpp->aeHistogram[ ((int) (tpp->camwbGreen * image[i * width + j][1])) >> tpp->aeHistCompression] += gadd; + } else if (FISRED (filter, i, j)) { + tpp->aeHistogram[ ((int) (tpp->camwbRed * image[i * width + j][0])) >> tpp->aeHistCompression] += radd; + } else if (FISBLUE (filter, i, j)) { + tpp->aeHistogram[ ((int) (tpp->camwbBlue * image[i * width + j][2])) >> tpp->aeHistCompression] += badd; } - } else if(ri->getSensorType() == ST_FUJI_XTRANS) { + } else if (ri->getSensorType() == ST_FUJI_XTRANS) { for (int j = start; j < end; j++) - if (ri->ISXTRANSGREEN(i, j)) { - tpp->aeHistogram[((int)(tpp->camwbGreen * image[i * width + j][1])) >> tpp->aeHistCompression] += gadd; - } else if (ri->ISXTRANSRED(i, j)) { - tpp->aeHistogram[((int)(tpp->camwbRed * image[i * width + j][0])) >> tpp->aeHistCompression] += radd; - } else if (ri->ISXTRANSBLUE(i, j)) { - tpp->aeHistogram[((int)(tpp->camwbBlue * image[i * width + j][2])) >> tpp->aeHistCompression] += badd; + if (ri->ISXTRANSGREEN (i, j)) { + tpp->aeHistogram[ ((int) (tpp->camwbGreen * image[i * width + j][1])) >> tpp->aeHistCompression] += gadd; + } else if (ri->ISXTRANSRED (i, j)) { + tpp->aeHistogram[ ((int) (tpp->camwbRed * image[i * width + j][0])) >> tpp->aeHistCompression] += radd; + } else if (ri->ISXTRANSBLUE (i, j)) { + tpp->aeHistogram[ ((int) (tpp->camwbBlue * image[i * width + j][2])) >> tpp->aeHistCompression] += badd; } } else { /* if(ri->getSensorType()==ST_FOVEON) */ for (int j = start; j < end; j++) { - tpp->aeHistogram[((int)(image[i * width + j][0] * 2.f)) >> tpp->aeHistCompression] += radd; - tpp->aeHistogram[((int)(image[i * width + j][1])) >> tpp->aeHistCompression] += gadd; - tpp->aeHistogram[((int)(image[i * width + j][2] * 0.5f)) >> tpp->aeHistCompression] += badd; + tpp->aeHistogram[ ((int) (image[i * width + j][0] * 2.f)) >> tpp->aeHistCompression] += radd; + tpp->aeHistogram[ ((int) (image[i * width + j][1])) >> tpp->aeHistCompression] += gadd; + tpp->aeHistogram[ ((int) (image[i * width + j][2] * 0.5f)) >> tpp->aeHistCompression] += badd; } } } @@ -709,14 +723,14 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati if (ri->get_FujiWidth() != 0) { int fw = ri->get_FujiWidth(); - start = ABS(fw - i) + 32; - end = min(height + width - fw - i, fw + i) - 32; + start = ABS (fw - i) + 32; + end = min (height + width - fw - i, fw + i) - 32; } else { start = 32; end = width - 32; } - if(ri->getSensorType() == ST_BAYER) { + if (ri->getSensorType() == ST_BAYER) { for (int j = start; j < end; j++) { if (!filter) { double d = tpp->defGain * image[i * width + j][0]; @@ -731,7 +745,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati rn++; gn++; bn++; - } else if (FISGREEN(filter, i, j)) { + } else if (FISGREEN (filter, i, j)) { double d = tpp->defGain * image[i * width + j][1]; if (d > 64000.) { @@ -740,7 +754,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati avg_g += d; gn++; - } else if (FISRED(filter, i, j)) { + } else if (FISRED (filter, i, j)) { double d = tpp->defGain * image[i * width + j][0]; if (d > 64000.) { @@ -749,7 +763,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati avg_r += d; rn++; - } else if (FISBLUE(filter, i, j)) { + } else if (FISBLUE (filter, i, j)) { double d = tpp->defGain * image[i * width + j][2]; if (d > 64000.) { @@ -760,9 +774,9 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati bn++; } } - } else if(ri->getSensorType() == ST_FUJI_XTRANS) { + } else if (ri->getSensorType() == ST_FUJI_XTRANS) { for (int j = start; j < end; j++) { - if (ri->ISXTRANSGREEN(i, j)) { + if (ri->ISXTRANSGREEN (i, j)) { double d = tpp->defGain * image[i * width + j][1]; if (d > 64000.) { @@ -771,7 +785,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati avg_g += d; gn++; - } else if (ri->ISXTRANSRED(i, j)) { + } else if (ri->ISXTRANSRED (i, j)) { double d = tpp->defGain * image[i * width + j][0]; if (d > 64000.) { @@ -780,7 +794,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati avg_r += d; rn++; - } else if (ri->ISXTRANSBLUE(i, j)) { + } else if (ri->ISXTRANSBLUE (i, j)) { double d = tpp->defGain * image[i * width + j][2]; if (d > 64000.) { @@ -821,22 +835,22 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati double greens = avg_g / gn * tpp->camwbGreen; double blues = avg_b / bn * tpp->camwbBlue; - tpp->redAWBMul = ri->get_rgb_cam(0, 0) * reds + ri->get_rgb_cam(0, 1) * greens + ri->get_rgb_cam(0, 2) * blues; - tpp->greenAWBMul = ri->get_rgb_cam(1, 0) * reds + ri->get_rgb_cam(1, 1) * greens + ri->get_rgb_cam(1, 2) * blues; - tpp->blueAWBMul = ri->get_rgb_cam(2, 0) * reds + ri->get_rgb_cam(2, 1) * greens + ri->get_rgb_cam(2, 2) * blues; + tpp->redAWBMul = ri->get_rgb_cam (0, 0) * reds + ri->get_rgb_cam (0, 1) * greens + ri->get_rgb_cam (0, 2) * blues; + tpp->greenAWBMul = ri->get_rgb_cam (1, 0) * reds + ri->get_rgb_cam (1, 1) * greens + ri->get_rgb_cam (1, 2) * blues; + tpp->blueAWBMul = ri->get_rgb_cam (2, 0) * reds + ri->get_rgb_cam (2, 1) * greens + ri->get_rgb_cam (2, 2) * blues; tpp->wbEqual = wbEq; tpp->wbTempBias = 0.0; ColorTemp cTemp; - cTemp.mul2temp(tpp->redAWBMul, tpp->greenAWBMul, tpp->blueAWBMul, tpp->wbEqual, tpp->autoWBTemp, tpp->autoWBGreen); + cTemp.mul2temp (tpp->redAWBMul, tpp->greenAWBMul, tpp->blueAWBMul, tpp->wbEqual, tpp->autoWBTemp, tpp->autoWBGreen); if (rotate && ri->get_rotateDegree() > 0) { - tpp->thumbImg->rotate(ri->get_rotateDegree()); + tpp->thumbImg->rotate (ri->get_rotateDegree()); } for (int a = 0; a < 3; a++) for (int b = 0; b < 3; b++) { - tpp->colorMatrix[a][b] = ri->get_rgb_cam(a, b); + tpp->colorMatrix[a][b] = ri->get_rgb_cam (a, b); } tpp->init(); @@ -851,7 +865,7 @@ void Thumbnail::init () { RawImageSource::inverse33 (colorMatrix, iColorMatrix); //colorMatrix is rgb_cam - memset (cam2xyz, 0, sizeof(cam2xyz)); + memset (cam2xyz, 0, sizeof (cam2xyz)); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) @@ -863,33 +877,33 @@ void Thumbnail::init () } Thumbnail::Thumbnail () : - camProfile(nullptr), + camProfile (nullptr), iColorMatrix{}, cam2xyz{}, - thumbImg(nullptr), - camwbRed(1.0), - camwbGreen(1.0), - camwbBlue(1.0), - redAWBMul(-1.0), - greenAWBMul(-1.0), - blueAWBMul(-1.0), - autoWBTemp(2700), - autoWBGreen(1.0), - wbEqual(-1.0), - wbTempBias(0.0), - aeHistCompression(3), - embProfileLength(0), - embProfileData(nullptr), - embProfile(nullptr), - redMultiplier(1.0), - greenMultiplier(1.0), - blueMultiplier(1.0), - scale(1.0), - defGain(1.0), - scaleForSave(8192), - gammaCorrected(false), + thumbImg (nullptr), + camwbRed (1.0), + camwbGreen (1.0), + camwbBlue (1.0), + redAWBMul (-1.0), + greenAWBMul (-1.0), + blueAWBMul (-1.0), + autoWBTemp (2700), + autoWBGreen (1.0), + wbEqual (-1.0), + wbTempBias (0.0), + aeHistCompression (3), + embProfileLength (0), + embProfileData (nullptr), + embProfile (nullptr), + redMultiplier (1.0), + greenMultiplier (1.0), + blueMultiplier (1.0), + scale (1.0), + defGain (1.0), + scaleForSave (8192), + gammaCorrected (false), colorMatrix{}, - isRaw(true) + isRaw (true) { } @@ -901,11 +915,11 @@ Thumbnail::~Thumbnail () delete [] embProfileData; if (embProfile) { - cmsCloseProfile(embProfile); + cmsCloseProfile (embProfile); } if (camProfile) { - cmsCloseProfile(camProfile); + cmsCloseProfile (camProfile); } } @@ -922,7 +936,7 @@ IImage8* Thumbnail::quickProcessImage (const procparams::ProcParams& params, int rwidth = thumbImg->getWidth() * rheight / thumbImg->getHeight(); } - Image8* baseImg = resizeTo(rwidth, rheight, interp, thumbImg); + Image8* baseImg = resizeTo (rwidth, rheight, interp, thumbImg); if (params.coarse.rotate) { baseImg->rotate (params.coarse.rotate); @@ -995,13 +1009,13 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei if (params.coarse.rotate == 90 || params.coarse.rotate == 270) { rwidth = rheight; - rheight = int(size_t(thumbImg->getHeight()) * size_t(rwidth) / size_t(thumbImg->getWidth())); + rheight = int (size_t (thumbImg->getHeight()) * size_t (rwidth) / size_t (thumbImg->getWidth())); } else { - rwidth = int(size_t(thumbImg->getWidth()) * size_t(rheight) / size_t(thumbImg->getHeight())); + rwidth = int (size_t (thumbImg->getWidth()) * size_t (rheight) / size_t (thumbImg->getHeight())); } - Imagefloat* baseImg = resizeTo(rwidth, rheight, interp, thumbImg); + Imagefloat* baseImg = resizeTo (rwidth, rheight, interp, thumbImg); if (params.coarse.rotate) { baseImg->rotate (params.coarse.rotate); @@ -1025,12 +1039,12 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei #endif for (int j = 0; j < rwidth; j++) { - float red = baseImg->r(i, j) * rmi; - baseImg->r(i, j) = CLIP(red); - float green = baseImg->g(i, j) * gmi; - baseImg->g(i, j) = CLIP(green); - float blue = baseImg->b(i, j) * bmi; - baseImg->b(i, j) = CLIP(blue); + float red = baseImg->r (i, j) * rmi; + baseImg->r (i, j) = CLIP (red); + float green = baseImg->g (i, j) * gmi; + baseImg->g (i, j) = CLIP (green); + float blue = baseImg->b (i, j) * bmi; + baseImg->b (i, j) = CLIP (blue); } } @@ -1051,7 +1065,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei //ColorTemp::CAT02 (baseImg, ¶ms) ;//perhaps not good! ImProcFunctions ipf (¶ms, false); - ipf.setScale (sqrt(double(fw * fw + fh * fh)) / sqrt(double(thumbImg->getWidth() * thumbImg->getWidth() + thumbImg->getHeight() * thumbImg->getHeight()))*scale); + ipf.setScale (sqrt (double (fw * fw + fh * fh)) / sqrt (double (thumbImg->getWidth() * thumbImg->getWidth() + thumbImg->getHeight() * thumbImg->getHeight()))*scale); ipf.updateColorProfiles (ICCStore::getInstance()->getDefaultMonitorProfileName(), options.rtSettings.monitorIntent, false, false); LUTu hist16 (65536); @@ -1064,7 +1078,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei int origFW; int origFH; double tscale = 0.0; - getDimensions(origFW, origFH, tscale); + getDimensions (origFW, origFH, tscale); ipf.transform (baseImg, trImg, 0, 0, 0, 0, fw, fh, origFW * tscale + 0.5, origFH * tscale + 0.5, focalLen, focalLen35mm, focusDist, fnumber, 0, true); // Raw rotate degree not detectable here delete baseImg; baseImg = trImg; @@ -1075,7 +1089,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei if (params.sh.enabled) { shmap = new SHMap (fw, fh, false); - double radius = sqrt (double(fw * fw + fh * fh)) / 2.0; + double radius = sqrt (double (fw * fw + fh * fh)) / 2.0; double shradius = params.sh.radius; if (!params.sh.hq) { @@ -1104,7 +1118,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei LUTf satcurve (65536); LUTf lhskcurve (65536); - LUTf lumacurve(32770, 0); // lumacurve[32768] and lumacurve[32769] will be set to 32768 and 32769 later to allow linear interpolation + LUTf lumacurve (32770, 0); // lumacurve[32768] and lumacurve[32769] will be set to 32768 and 32769 later to allow linear interpolation LUTf clcurve (65536); LUTf clToningcurve; LUTf cl2Toningcurve; @@ -1134,7 +1148,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei bool opautili = false; - if(params.colorToning.enabled) { + if (params.colorToning.enabled) { TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params.icm.working); double wp[3][3] = { {wprof[0][0], wprof[0][1], wprof[0][2]}, @@ -1147,36 +1161,36 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei {wiprof[1][0], wiprof[1][1], wiprof[1][2]}, {wiprof[2][0], wiprof[2][1], wiprof[2][2]} }; - params.colorToning.getCurves(ctColorCurve, ctOpacityCurve, wp, wip, opautili); + params.colorToning.getCurves (ctColorCurve, ctOpacityCurve, wp, wip, opautili); clToningcurve (65536); - CurveFactory::curveToning(params.colorToning.clcurve, clToningcurve, scale == 1 ? 1 : 16); + CurveFactory::curveToning (params.colorToning.clcurve, clToningcurve, scale == 1 ? 1 : 16); cl2Toningcurve (65536); - CurveFactory::curveToning(params.colorToning.cl2curve, cl2Toningcurve, scale == 1 ? 1 : 16); + CurveFactory::curveToning (params.colorToning.cl2curve, cl2Toningcurve, scale == 1 ? 1 : 16); } - if(params.blackwhite.enabled) { + if (params.blackwhite.enabled) { CurveFactory::curveBW (params.blackwhite.beforeCurve, params.blackwhite.afterCurve, hist16, dummy, customToneCurvebw1, customToneCurvebw2, 16); } double rrm, ggm, bbm; float autor, autog, autob; - float satLimit = float(params.colorToning.satProtectionThreshold) / 100.f * 0.7f + 0.3f; - float satLimitOpacity = 1.f - (float(params.colorToning.saturatedOpacity) / 100.f); + float satLimit = float (params.colorToning.satProtectionThreshold) / 100.f * 0.7f + 0.3f; + float satLimitOpacity = 1.f - (float (params.colorToning.saturatedOpacity) / 100.f); - if(params.colorToning.enabled && params.colorToning.autosat) { //for colortoning evaluation of saturation settings + if (params.colorToning.enabled && params.colorToning.autosat) { //for colortoning evaluation of saturation settings float moyS = 0.f; float eqty = 0.f; ipf.moyeqt (baseImg, moyS, eqty);//return image : mean saturation and standard dev of saturation //printf("moy=%f ET=%f\n", moyS,eqty); float satp = ((moyS + 1.5f * eqty) - 0.3f) / 0.7f; //1.5 sigma ==> 93% pixels with high saturation -0.3 / 0.7 convert to Hombre scale - if(satp >= 0.92f) { + if (satp >= 0.92f) { satp = 0.92f; //avoid values too high (out of gamut) } - if(satp <= 0.15f) { + if (satp <= 0.15f) { satp = 0.15f; //avoid too low values } @@ -1193,15 +1207,15 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei if (isRaw) { cmsHPROFILE dummy; - RawImageSource::findInputProfile(params.icm.input, nullptr, camName, &dcpProf, dummy); + RawImageSource::findInputProfile (params.icm.input, nullptr, camName, &dcpProf, dummy); if (dcpProf) { - dcpProf->setStep2ApplyState(params.icm.working, params.icm.toneCurve, params.icm.applyLookTable, params.icm.applyBaselineExposureOffset, as); + dcpProf->setStep2ApplyState (params.icm.working, params.icm.toneCurve, params.icm.applyLookTable, params.icm.applyBaselineExposureOffset, as); } } LUTu histToneCurve; - ipf.rgbProc (baseImg, labView, nullptr, curve1, curve2, curve, shmap, params.toneCurve.saturation, rCurve, gCurve, bCurve, satLimit , satLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, customToneCurvebw1, customToneCurvebw2, rrm, ggm, bbm, autor, autog, autob, expcomp, hlcompr, hlcomprthresh, dcpProf, as, histToneCurve); + ipf.rgbProc (baseImg, labView, nullptr, curve1, curve2, curve, shmap, params.toneCurve.saturation, rCurve, gCurve, bCurve, satLimit, satLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, customToneCurvebw1, customToneCurvebw2, rrm, ggm, bbm, autor, autog, autob, expcomp, hlcompr, hlcomprthresh, dcpProf, as, histToneCurve); // freeing up some memory customToneCurve1.Reset(); @@ -1216,12 +1230,12 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei } // luminance histogram update - if(params.labCurve.contrast != 0) { + if (params.labCurve.contrast != 0) { hist16.clear(); for (int i = 0; i < fh; i++) for (int j = 0; j < fw; j++) { - hist16[(int)((labView->L[i][j]))]++; + hist16[ (int) ((labView->L[i][j]))]++; } } @@ -1233,7 +1247,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei hist16, lumacurve, dummy, 16, utili); bool clcutili; - CurveFactory::curveCL(clcutili, params.labCurve.clcurve, clcurve, 16); + CurveFactory::curveCL (clcutili, params.labCurve.clcurve, clcurve, 16); bool autili, butili, ccutili, cclutili; CurveFactory::complexsgnCurve (autili, butili, ccutili, cclutili, params.labCurve.acurve, params.labCurve.bcurve, params.labCurve.cccurve, @@ -1242,13 +1256,13 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei ipf.chromiLuminanceCurve (nullptr, 1, labView, labView, curve1, curve2, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, dummy, dummy); - ipf.vibrance(labView); + ipf.vibrance (labView); - if((params.colorappearance.enabled && !params.colorappearance.tonecie) || !params.colorappearance.enabled) { - ipf.EPDToneMap(labView, 5, 6); + if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || !params.colorappearance.enabled) { + ipf.EPDToneMap (labView, 5, 6); } - if(params.colorappearance.enabled) { + if (params.colorappearance.enabled) { CurveFactory::curveLightBrightColor ( params.colorappearance.curve, params.colorappearance.curve2, @@ -1261,18 +1275,18 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei 16); int begh = 0, endh = labView->H; bool execsharp = false; - float d; + float d, dj, yb; float fnum = fnumber;// F number float fiso = iso;// ISO float fspeed = shutter;//speed char * writ = new char[expcomp_.size() + 1];//convert expcomp_ to char - std::copy(expcomp_.begin(), expcomp_.end(), writ); + std::copy (expcomp_.begin(), expcomp_.end(), writ); writ[expcomp_.size()] = '\0'; - float fcomp = atof(writ); //compensation + - + float fcomp = atof (writ); //compensation + - delete[] writ; float adap; - if(fnum < 0.3f || fiso < 5.f || fspeed < 0.00001f) + if (fnum < 0.3f || fiso < 5.f || fspeed < 0.00001f) //if no exif data or wrong { adap = 2000.f; @@ -1281,9 +1295,9 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei float expo2 = params.toneCurve.expcomp; // exposure compensation in tonecurve ==> direct EV E_V += expo2; float expo1;//exposure raw white point - expo1 = log2(params.raw.expos); //log2 ==>linear to EV + expo1 = log2 (params.raw.expos); //log2 ==>linear to EV E_V += expo1; - adap = powf(2.f, E_V - 3.f); //cd / m2 + adap = powf (2.f, E_V - 3.f); //cd / m2 //end calculation adaptation scene luminosity } @@ -1297,7 +1311,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei CAMMean = NAN; CAMBrightCurveJ.dirty = true; CAMBrightCurveQ.dirty = true; - ipf.ciecam_02float (cieView, adap, begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, sk, execsharp, d, rtt); + ipf.ciecam_02float (cieView, adap, begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, sk, execsharp, d, dj, yb, rtt); delete cieView; } @@ -1344,12 +1358,12 @@ int Thumbnail::getImageWidth (const procparams::ProcParams& params, int rheight, int rwidth; if (params.coarse.rotate == 90 || params.coarse.rotate == 270) { - ratio = (float)(thumbImg->getHeight()) / (float)(thumbImg->getWidth()); + ratio = (float) (thumbImg->getHeight()) / (float) (thumbImg->getWidth()); } else { - ratio = (float)(thumbImg->getWidth()) / (float)(thumbImg->getHeight()); + ratio = (float) (thumbImg->getWidth()) / (float) (thumbImg->getHeight()); } - rwidth = (int)(ratio * (float)rheight); + rwidth = (int) (ratio * (float)rheight); return rwidth; } @@ -1387,7 +1401,7 @@ void Thumbnail::getAutoWB (double& temp, double& green, double equal, double tem wbEqual = equal; wbTempBias = tempBias; // compute autoWBTemp and autoWBGreen - cTemp.mul2temp(redAWBMul, greenAWBMul, blueAWBMul, wbEqual, autoWBTemp, autoWBGreen); + cTemp.mul2temp (redAWBMul, greenAWBMul, blueAWBMul, wbEqual, autoWBTemp, autoWBGreen); autoWBTemp += autoWBTemp * tempBias; } @@ -1407,7 +1421,7 @@ void Thumbnail::applyAutoExp (procparams::ProcParams& params) if (params.toneCurve.autoexp && aeHistogram) { ImProcFunctions ipf (¶ms, false); - ipf.getAutoExp (aeHistogram, aeHistCompression, log(defGain) / log(2.0), params.toneCurve.clip, params.toneCurve.expcomp, + ipf.getAutoExp (aeHistogram, aeHistCompression, log (defGain) / log (2.0), params.toneCurve.clip, params.toneCurve.expcomp, params.toneCurve.brightness, params.toneCurve.contrast, params.toneCurve.black, params.toneCurve.hlcompr, params.toneCurve.hlcomprthresh); } } @@ -1431,11 +1445,11 @@ void Thumbnail::getSpotWB (const procparams::ProcParams& params, int xp, int yp, ImProcFunctions ipf (¶ms, false); ipf.transCoord (fw, fh, points, red, green, blue); - int tr = getCoarseBitMask(params.coarse); + int tr = getCoarseBitMask (params.coarse); // calculate spot wb (copy & pasted from stdimagesource) double reds = 0, greens = 0, blues = 0; int rn = 0, gn = 0, bn = 0; - thumbImg->getSpotWBData(reds, greens, blues, rn, gn, bn, red, green, blue, tr); + thumbImg->getSpotWBData (reds, greens, blues, rn, gn, bn, red, green, blue, tr); reds = reds / rn * camwbRed; greens = greens / gn * camwbGreen; blues = blues / bn * camwbBlue; @@ -1509,19 +1523,19 @@ unsigned char* Thumbnail::getGrayscaleHistEQ (int trim_width) // Calc the histogram unsigned int* hist16 = new unsigned int [65536]; - memset(hist16, 0, sizeof(int) * 65536); + memset (hist16, 0, sizeof (int) * 65536); if (thumbImg->getType() == sImage8) { - Image8 *image = static_cast(thumbImg); - image->calcGrayscaleHist(hist16); + Image8 *image = static_cast (thumbImg); + image->calcGrayscaleHist (hist16); } else if (thumbImg->getType() == sImage16) { - Image16 *image = static_cast(thumbImg); - image->calcGrayscaleHist(hist16); + Image16 *image = static_cast (thumbImg); + image->calcGrayscaleHist (hist16); } else if (thumbImg->getType() == sImagefloat) { - Imagefloat *image = static_cast(thumbImg); - image->calcGrayscaleHist(hist16); + Imagefloat *image = static_cast (thumbImg); + image->calcGrayscaleHist (hist16); } else { - printf("getGrayscaleHistEQ #1: Unsupported image type \"%s\"!\n", thumbImg->getType()); + printf ("getGrayscaleHistEQ #1: Unsupported image type \"%s\"!\n", thumbImg->getType()); } // Go down till we cut off that many pixels @@ -1540,45 +1554,45 @@ unsigned char* Thumbnail::getGrayscaleHistEQ (int trim_width) // Correction and gamma to 8 Bit if (thumbImg->getType() == sImage8) { - Image8 *image = static_cast(thumbImg); + Image8 *image = static_cast (thumbImg); for (int i = 0; i < thumbImg->getHeight(); i++) for (int j = (thumbImg->getWidth() - trim_width) / 2; j < trim_width + (thumbImg->getWidth() - trim_width) / 2; j++) { unsigned short r_, g_, b_; - image->convertTo(image->r(i, j), r_); - image->convertTo(image->g(i, j), g_); - image->convertTo(image->b(i, j), b_); - int r = Color::gammatabThumb[min(r_, static_cast(max_)) * scaleForSave >> 13]; - int g = Color::gammatabThumb[min(g_, static_cast(max_)) * scaleForSave >> 13]; - int b = Color::gammatabThumb[min(b_, static_cast(max_)) * scaleForSave >> 13]; + image->convertTo (image->r (i, j), r_); + image->convertTo (image->g (i, j), g_); + image->convertTo (image->b (i, j), b_); + int r = Color::gammatabThumb[min (r_, static_cast (max_)) * scaleForSave >> 13]; + int g = Color::gammatabThumb[min (g_, static_cast (max_)) * scaleForSave >> 13]; + int b = Color::gammatabThumb[min (b_, static_cast (max_)) * scaleForSave >> 13]; tmpdata[ix++] = (r * 19595 + g * 38469 + b * 7472) >> 16; } } else if (thumbImg->getType() == sImage16) { - Image16 *image = static_cast(thumbImg); + Image16 *image = static_cast (thumbImg); for (int i = 0; i < thumbImg->getHeight(); i++) for (int j = (thumbImg->getWidth() - trim_width) / 2; j < trim_width + (thumbImg->getWidth() - trim_width) / 2; j++) { unsigned short r_, g_, b_; - image->convertTo(image->r(i, j), r_); - image->convertTo(image->g(i, j), g_); - image->convertTo(image->b(i, j), b_); - int r = Color::gammatabThumb[min(r_, static_cast(max_)) * scaleForSave >> 13]; - int g = Color::gammatabThumb[min(g_, static_cast(max_)) * scaleForSave >> 13]; - int b = Color::gammatabThumb[min(b_, static_cast(max_)) * scaleForSave >> 13]; + image->convertTo (image->r (i, j), r_); + image->convertTo (image->g (i, j), g_); + image->convertTo (image->b (i, j), b_); + int r = Color::gammatabThumb[min (r_, static_cast (max_)) * scaleForSave >> 13]; + int g = Color::gammatabThumb[min (g_, static_cast (max_)) * scaleForSave >> 13]; + int b = Color::gammatabThumb[min (b_, static_cast (max_)) * scaleForSave >> 13]; tmpdata[ix++] = (r * 19595 + g * 38469 + b * 7472) >> 16; } } else if (thumbImg->getType() == sImagefloat) { - Imagefloat *image = static_cast(thumbImg); + Imagefloat *image = static_cast (thumbImg); for (int i = 0; i < thumbImg->getHeight(); i++) for (int j = (thumbImg->getWidth() - trim_width) / 2; j < trim_width + (thumbImg->getWidth() - trim_width) / 2; j++) { unsigned short r_, g_, b_; - image->convertTo(image->r(i, j), r_); - image->convertTo(image->g(i, j), g_); - image->convertTo(image->b(i, j), b_); - int r = Color::gammatabThumb[min(r_, static_cast(max_)) * scaleForSave >> 13]; - int g = Color::gammatabThumb[min(g_, static_cast(max_)) * scaleForSave >> 13]; - int b = Color::gammatabThumb[min(b_, static_cast(max_)) * scaleForSave >> 13]; + image->convertTo (image->r (i, j), r_); + image->convertTo (image->g (i, j), g_); + image->convertTo (image->b (i, j), b_); + int r = Color::gammatabThumb[min (r_, static_cast (max_)) * scaleForSave >> 13]; + int g = Color::gammatabThumb[min (g_, static_cast (max_)) * scaleForSave >> 13]; + int b = Color::gammatabThumb[min (b_, static_cast (max_)) * scaleForSave >> 13]; tmpdata[ix++] = (r * 19595 + g * 38469 + b * 7472) >> 16; } } @@ -1587,25 +1601,25 @@ unsigned char* Thumbnail::getGrayscaleHistEQ (int trim_width) int max = 0; if (thumbImg->getType() == sImage8) { - Image8 *image = static_cast(thumbImg); + Image8 *image = static_cast (thumbImg); unsigned char max_ = 0; for (int row = 0; row < image->getHeight(); row++) for (int col = 0; col < image->getWidth(); col++) { - if (image->r(row, col) > max_) { - max_ = image->r(row, col); + if (image->r (row, col) > max_) { + max_ = image->r (row, col); } - if (image->g(row, col) > max_) { - max_ = image->g(row, col); + if (image->g (row, col) > max_) { + max_ = image->g (row, col); } - if (image->b(row, col) > max_) { - max_ = image->b(row, col); + if (image->b (row, col) > max_) { + max_ = image->b (row, col); } } - image->convertTo(max_, max); + image->convertTo (max_, max); if (max < 16384) { max = 16384; @@ -1617,34 +1631,34 @@ unsigned char* Thumbnail::getGrayscaleHistEQ (int trim_width) for (int i = 0; i < image->getHeight(); i++) for (int j = (image->getWidth() - trim_width) / 2; j < trim_width + (image->getWidth() - trim_width) / 2; j++) { unsigned short rtmp, gtmp, btmp; - image->convertTo(image->r(i, j), rtmp); - image->convertTo(image->g(i, j), gtmp); - image->convertTo(image->b(i, j), btmp); + image->convertTo (image->r (i, j), rtmp); + image->convertTo (image->g (i, j), gtmp); + image->convertTo (image->b (i, j), btmp); int r = rtmp * scaleForSave >> 21; int g = gtmp * scaleForSave >> 21; int b = btmp * scaleForSave >> 21; tmpdata[ix++] = (r * 19595 + g * 38469 + b * 7472) >> 16; } } else if (thumbImg->getType() == sImage16) { - Image16 *image = static_cast(thumbImg); + Image16 *image = static_cast (thumbImg); unsigned short max_ = 0; for (int row = 0; row < image->getHeight(); row++) for (int col = 0; col < image->getWidth(); col++) { - if (image->r(row, col) > max_) { - max_ = image->r(row, col); + if (image->r (row, col) > max_) { + max_ = image->r (row, col); } - if (image->g(row, col) > max_) { - max_ = image->g(row, col); + if (image->g (row, col) > max_) { + max_ = image->g (row, col); } - if (image->b(row, col) > max_) { - max_ = image->b(row, col); + if (image->b (row, col) > max_) { + max_ = image->b (row, col); } } - image->convertTo(max_, max); + image->convertTo (max_, max); if (max < 16384) { max = 16384; @@ -1656,34 +1670,34 @@ unsigned char* Thumbnail::getGrayscaleHistEQ (int trim_width) for (int i = 0; i < image->getHeight(); i++) for (int j = (image->getWidth() - trim_width) / 2; j < trim_width + (image->getWidth() - trim_width) / 2; j++) { unsigned short rtmp, gtmp, btmp; - image->convertTo(image->r(i, j), rtmp); - image->convertTo(image->g(i, j), gtmp); - image->convertTo(image->b(i, j), btmp); + image->convertTo (image->r (i, j), rtmp); + image->convertTo (image->g (i, j), gtmp); + image->convertTo (image->b (i, j), btmp); int r = rtmp * scaleForSave >> 21; int g = gtmp * scaleForSave >> 21; int b = btmp * scaleForSave >> 21; tmpdata[ix++] = (r * 19595 + g * 38469 + b * 7472) >> 16; } } else if (thumbImg->getType() == sImagefloat) { - Imagefloat *image = static_cast(thumbImg); + Imagefloat *image = static_cast (thumbImg); float max_ = 0.f; for (int row = 0; row < image->getHeight(); row++) for (int col = 0; col < image->getWidth(); col++) { - if (image->r(row, col) > max_) { - max_ = image->r(row, col); + if (image->r (row, col) > max_) { + max_ = image->r (row, col); } - if (image->g(row, col) > max_) { - max_ = image->g(row, col); + if (image->g (row, col) > max_) { + max_ = image->g (row, col); } - if (image->b(row, col) > max_) { - max_ = image->b(row, col); + if (image->b (row, col) > max_) { + max_ = image->b (row, col); } } - image->convertTo(max_, max); + image->convertTo (max_, max); if (max < 16384) { max = 16384; @@ -1695,16 +1709,16 @@ unsigned char* Thumbnail::getGrayscaleHistEQ (int trim_width) for (int i = 0; i < image->getHeight(); i++) for (int j = (image->getWidth() - trim_width) / 2; j < trim_width + (image->getWidth() - trim_width) / 2; j++) { unsigned short rtmp, gtmp, btmp; - image->convertTo(image->r(i, j), rtmp); - image->convertTo(image->g(i, j), gtmp); - image->convertTo(image->b(i, j), btmp); + image->convertTo (image->r (i, j), rtmp); + image->convertTo (image->g (i, j), gtmp); + image->convertTo (image->b (i, j), btmp); int r = rtmp * scaleForSave >> 21; int g = gtmp * scaleForSave >> 21; int b = btmp * scaleForSave >> 21; tmpdata[ix++] = (r * 19595 + g * 38469 + b * 7472) >> 16; } } else { - printf("getGrayscaleHistEQ #2: Unsupported image type \"%s\"!\n", thumbImg->getType()); + printf ("getGrayscaleHistEQ #2: Unsupported image type \"%s\"!\n", thumbImg->getType()); } } @@ -1751,22 +1765,22 @@ bool Thumbnail::writeImage (const Glib::ustring& fname, int format) return false; } - fwrite (thumbImg->getType(), sizeof (char), strlen(thumbImg->getType()), f); + fwrite (thumbImg->getType(), sizeof (char), strlen (thumbImg->getType()), f); fputc ('\n', f); - guint32 w = guint32(thumbImg->getWidth()); - guint32 h = guint32(thumbImg->getHeight()); + guint32 w = guint32 (thumbImg->getWidth()); + guint32 h = guint32 (thumbImg->getHeight()); fwrite (&w, sizeof (guint32), 1, f); fwrite (&h, sizeof (guint32), 1, f); if (thumbImg->getType() == sImage8) { - Image8 *image = static_cast(thumbImg); - image->writeData(f); + Image8 *image = static_cast (thumbImg); + image->writeData (f); } else if (thumbImg->getType() == sImage16) { - Image16 *image = static_cast(thumbImg); - image->writeData(f); + Image16 *image = static_cast (thumbImg); + image->writeData (f); } else if (thumbImg->getType() == sImagefloat) { - Imagefloat *image = static_cast(thumbImg); - image->writeData(f); + Imagefloat *image = static_cast (thumbImg); + image->writeData (f); } //thumbImg->writeData(f); @@ -1795,8 +1809,8 @@ bool Thumbnail::readImage (const Glib::ustring& fname) } char imgType[31]; // 30 -> arbitrary size, but should be enough for all image type's name - fgets(imgType, 30, f); - imgType[strlen(imgType) - 1] = '\0'; // imgType has a \n trailing character, so we overwrite it by the \0 char + fgets (imgType, 30, f); + imgType[strlen (imgType) - 1] = '\0'; // imgType has a \n trailing character, so we overwrite it by the \0 char guint32 width, height; fread (&width, 1, sizeof (guint32), f); @@ -1804,36 +1818,36 @@ bool Thumbnail::readImage (const Glib::ustring& fname) bool success = false; - if (!strcmp(imgType, sImage8)) { - Image8 *image = new Image8(width, height); - image->readData(f); + if (!strcmp (imgType, sImage8)) { + Image8 *image = new Image8 (width, height); + image->readData (f); thumbImg = image; success = true; - } else if (!strcmp(imgType, sImage16)) { - Image16 *image = new Image16(width, height); - image->readData(f); + } else if (!strcmp (imgType, sImage16)) { + Image16 *image = new Image16 (width, height); + image->readData (f); thumbImg = image; success = true; - } else if (!strcmp(imgType, sImagefloat)) { - Imagefloat *image = new Imagefloat(width, height); - image->readData(f); + } else if (!strcmp (imgType, sImagefloat)) { + Imagefloat *image = new Imagefloat (width, height); + image->readData (f); thumbImg = image; success = true; } else { - printf("readImage: Unsupported image type \"%s\"!\n", imgType); + printf ("readImage: Unsupported image type \"%s\"!\n", imgType); } - fclose(f); + fclose (f); return success; } bool Thumbnail::readData (const Glib::ustring& fname) { - setlocale(LC_NUMERIC, "C"); // to set decimal point to "." + setlocale (LC_NUMERIC, "C"); // to set decimal point to "." Glib::KeyFile keyFile; try { - MyMutex::MyLock thmbLock(thumbMutex); + MyMutex::MyLock thmbLock (thumbMutex); try { keyFile.load_from_file (fname); @@ -1912,11 +1926,11 @@ bool Thumbnail::readData (const Glib::ustring& fname) return true; } catch (Glib::Error &err) { if (options.rtSettings.verbose) { - printf("Thumbnail::readData / Error code %d while reading values from \"%s\":\n%s\n", err.code(), fname.c_str(), err.what().c_str()); + printf ("Thumbnail::readData / Error code %d while reading values from \"%s\":\n%s\n", err.code(), fname.c_str(), err.what().c_str()); } } catch (...) { if (options.rtSettings.verbose) { - printf("Thumbnail::readData / Unknown exception while trying to load \"%s\"!\n", fname.c_str()); + printf ("Thumbnail::readData / Unknown exception while trying to load \"%s\"!\n", fname.c_str()); } } @@ -1925,7 +1939,7 @@ bool Thumbnail::readData (const Glib::ustring& fname) bool Thumbnail::writeData (const Glib::ustring& fname) { - MyMutex::MyLock thmbLock(thumbMutex); + MyMutex::MyLock thmbLock (thumbMutex); Glib::ustring keyData; @@ -1958,11 +1972,11 @@ bool Thumbnail::writeData (const Glib::ustring& fname) } catch (Glib::Error& err) { if (options.rtSettings.verbose) { - printf("Thumbnail::writeData / Error code %d while reading values from \"%s\":\n%s\n", err.code(), fname.c_str(), err.what().c_str()); + printf ("Thumbnail::writeData / Error code %d while reading values from \"%s\":\n%s\n", err.code(), fname.c_str(), err.what().c_str()); } } catch (...) { if (options.rtSettings.verbose) { - printf("Thumbnail::writeData / Unknown exception while trying to save \"%s\"!\n", fname.c_str()); + printf ("Thumbnail::writeData / Unknown exception while trying to save \"%s\"!\n", fname.c_str()); } } @@ -1974,7 +1988,7 @@ bool Thumbnail::writeData (const Glib::ustring& fname) if (!f) { if (options.rtSettings.verbose) { - printf("Thumbnail::writeData / Error: unable to open file \"%s\" with write access!\n", fname.c_str()); + printf ("Thumbnail::writeData / Error: unable to open file \"%s\" with write access!\n", fname.c_str()); } return false; @@ -1994,18 +2008,22 @@ bool Thumbnail::readEmbProfile (const Glib::ustring& fname) embProfileLength = 0; FILE* f = g_fopen (fname.c_str (), "rb"); + if (f) { - if(!fseek (f, 0, SEEK_END)) { + if (!fseek (f, 0, SEEK_END)) { int profileLength = ftell (f); - if(profileLength > 0) { + + if (profileLength > 0) { embProfileLength = profileLength; - if(!fseek (f, 0, SEEK_SET)) { + + if (!fseek (f, 0, SEEK_SET)) { embProfileData = new unsigned char[embProfileLength]; fread (embProfileData, 1, embProfileLength, f); embProfile = cmsOpenProfileFromMem (embProfileData, embProfileLength); } } } + fclose (f); return embProfile != nullptr; } @@ -2017,7 +2035,7 @@ bool Thumbnail::writeEmbProfile (const Glib::ustring& fname) { if (embProfileData) { - FILE* f = g_fopen(fname.c_str (), "wb"); + FILE* f = g_fopen (fname.c_str (), "wb"); if (f) { fwrite (embProfileData, 1, embProfileLength, f); @@ -2035,10 +2053,10 @@ bool Thumbnail::readAEHistogram (const Glib::ustring& fname) FILE* f = g_fopen (fname.c_str (), "rb"); if (!f) { - aeHistogram(0); + aeHistogram (0); } else { - aeHistogram(65536 >> aeHistCompression); - fread (&aeHistogram[0], 1, (65536 >> aeHistCompression)*sizeof(aeHistogram[0]), f); + aeHistogram (65536 >> aeHistCompression); + fread (&aeHistogram[0], 1, (65536 >> aeHistCompression)*sizeof (aeHistogram[0]), f); fclose (f); return true; } @@ -2053,7 +2071,7 @@ bool Thumbnail::writeAEHistogram (const Glib::ustring& fname) FILE* f = g_fopen (fname.c_str (), "wb"); if (f) { - fwrite (&aeHistogram[0], 1, (65536 >> aeHistCompression)*sizeof(aeHistogram[0]), f); + fwrite (&aeHistogram[0], 1, (65536 >> aeHistCompression)*sizeof (aeHistogram[0]), f); fclose (f); return true; } @@ -2065,7 +2083,7 @@ bool Thumbnail::writeAEHistogram (const Glib::ustring& fname) unsigned char* Thumbnail::getImage8Data() { if (thumbImg && thumbImg->getType() == rtengine::sImage8) { - Image8* img8 = static_cast(thumbImg); + Image8* img8 = static_cast (thumbImg); return img8->data; } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index a91378d23..c7a1d7300 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -212,10 +212,8 @@ private: multi_array2D conversionBuffer (1, 1); imgsrc->retinexPrepareBuffers (params.icm, params.retinex, conversionBuffer, dummy); imgsrc->retinexPrepareCurves (params.retinex, cdcurve, mapcurve, dehatransmissionCurve, dehagaintransmissionCurve, dehacontlutili, mapcontlutili, useHsl, dummy, dummy ); - float minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax; imgsrc->retinex ( params.icm, params.retinex, params.toneCurve, cdcurve, mapcurve, dehatransmissionCurve, dehagaintransmissionCurve, conversionBuffer, dehacontlutili, mapcontlutili, useHsl, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax, dummy); - } if (pl) { @@ -326,7 +324,7 @@ private: for (int hcr = 0; hcr < numtiles_H; hcr++) { int beg_tileW = wcr * tileWskip + tileWskip / 2.f - crW / 2.f; int beg_tileH = hcr * tileHskip + tileHskip / 2.f - crH / 2.f; - PreviewProps ppP (beg_tileW , beg_tileH, crW, crH, skipP); + PreviewProps ppP (beg_tileW, beg_tileH, crW, crH, skipP); imgsrc->getImage (currWB, tr, origCropPart, ppP, params.toneCurve, params.icm, params.raw ); //baseImg->getStdImage(currWB, tr, origCropPart, ppP, true, params.toneCurve); @@ -546,7 +544,7 @@ private: for (int wcr = 0; wcr <= 2; wcr++) { for (int hcr = 0; hcr <= 2; hcr++) { - PreviewProps ppP (coordW[wcr] , coordH[hcr], crW, crH, 1); + PreviewProps ppP (coordW[wcr], coordH[hcr], crW, crH, 1); imgsrc->getImage (currWB, tr, origCropPart, ppP, params.toneCurve, params.icm, params.raw); //baseImg->getStdImage(currWB, tr, origCropPart, ppP, true, params.toneCurve); @@ -940,7 +938,7 @@ private: LUTu histToneCurve; - ipf.rgbProc (baseImg, labView, nullptr, curve1, curve2, curve, shmap, params.toneCurve.saturation, rCurve, gCurve, bCurve, satLimit , satLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, customToneCurvebw1, customToneCurvebw2, rrm, ggm, bbm, autor, autog, autob, expcomp, hlcompr, hlcomprthresh, dcpProf, as, histToneCurve); + ipf.rgbProc (baseImg, labView, nullptr, curve1, curve2, curve, shmap, params.toneCurve.saturation, rCurve, gCurve, bCurve, satLimit, satLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, customToneCurvebw1, customToneCurvebw2, rrm, ggm, bbm, autor, autog, autob, expcomp, hlcompr, hlcomprthresh, dcpProf, as, histToneCurve); if (settings->verbose) { printf ("Output image / Auto B&W coefs: R=%.2f G=%.2f B=%.2f\n", autor, autog, autob); @@ -2172,19 +2170,19 @@ private: if (params.sharpening.enabled) { if (settings->ciecamfloat) { - float d; - ipf.ciecam_02float (cieView, float(adap), begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, d, 1); + float d, dj, yb; + ipf.ciecam_02float (cieView, float (adap), begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, d, dj, yb, 1); } else { - double dd; - ipf.ciecam_02 (cieView, adap, begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, dd, 1); + double dd, dj, yb; + ipf.ciecam_02 (cieView, adap, begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, dd, dj, yb, 1); } } else { if (settings->ciecamfloat) { - float d; - ipf.ciecam_02float (cieView, float(adap), begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, d, 1); + float d, dj, yb; + ipf.ciecam_02float (cieView, float (adap), begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, d, dj, yb, 1); } else { - double dd; - ipf.ciecam_02 (cieView, adap, begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, dd, 1); + double dd, dj, yb; + ipf.ciecam_02 (cieView, adap, begh, endh, 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, dd, dj, yb, 1); } } } @@ -2513,10 +2511,10 @@ private: if (params.raw.xtranssensor.method == procparams::RAWParams::XTransSensor::methodstring[ - procparams::RAWParams::XTransSensor::threePass]) { + procparams::RAWParams::XTransSensor::threePass]) { params.raw.xtranssensor.method = procparams::RAWParams::XTransSensor::methodstring[ - procparams::RAWParams::XTransSensor::onePass]; + procparams::RAWParams::XTransSensor::onePass]; } if (params.raw.bayersensor.method == procparams::RAWParams::BayerSensor::methodstring[procparams::RAWParams::BayerSensor::pixelshift]) { diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index af45d50b6..91f58f42e 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -27,6 +27,9 @@ #define MINGREEN0 0.8 #define MAXGREEN0 1.2 +#define MINLA0 0.01 +#define MAXLA0 16384 +#define CENTERLA0 500 using namespace rtengine; using namespace rtengine::procparams; @@ -59,6 +62,90 @@ static double wbSlider2Temp (double sval) return temp; } +static double wbSlider2la (double sval) +{ + + // slider range: 0 - 10000 + double la; + + if (sval <= 500) { + // linear below center-temp + la = MINLA0 + (sval / 500.0) * (CENTERLA0 - MINLA0); + } else { + const double slope = (double) (CENTERLA0 - MINLA0) / (MAXLA0 - CENTERLA0); + double x = (sval - 500) / 500; // x 0..1 + double y = x * slope + (1.0 - slope) * pow (x, 4.0); + //double y = pow(x, 4.0); + la = CENTERLA0 + y * (MAXLA0 - CENTERLA0); + } + + if (la < MINLA0) { + la = MINLA0; + } + + if (la > MAXLA0) { + la = MAXLA0; + } + + return la; +} + +static double wbla2Slider (double la) +{ + + double sval; + + if (la <= CENTERLA0) { + sval = ((la - MINLA0) / (CENTERLA0 - MINLA0)) * 500.0; + } else { + const double slope = (double) (CENTERLA0 - MINLA0) / (MAXLA0 - CENTERLA0); + const double y = (la - CENTERLA0) / (MAXLA0 - CENTERLA0); + double x = pow (y, 0.25); // rough guess of x, will be a little lower + double k = 0.1; + bool add = true; + + // the y=f(x) function is a mess to invert, therefore we have this trial-refinement loop instead. + // from tests, worst case is about 20 iterations, ie no problem + for (;;) { + double y1 = x * slope + (1.0 - slope) * pow (x, 4.0); + + if (500 * fabs (y1 - y) < 0.1) { + break; + } + + if (y1 < y) { + if (!add) { + k /= 2; + } + + x += k; + add = true; + } else { + if (add) { + k /= 2; + } + + x -= k; + add = false; + } + } + + sval = 500.0 + x * 500.0; + } + + if (sval < 0) { + sval = 0; + } + + if (sval > 16384.) { + sval = 16384.; + } + + return sval; +} + + + static double wbTemp2Slider (double temp) { @@ -147,9 +234,25 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" degree->set_tooltip_markup (M ("TP_COLORAPP_DEGREE_TOOLTIP")); p1VBox->pack_start (*degree); - surrsource = Gtk::manage (new Gtk::CheckButton (M ("TP_COLORAPP_SURSOURCE"))); - surrsource->set_tooltip_markup (M ("TP_COLORAPP_SURSOURCE_TOOLTIP")); - p1VBox->pack_start (*surrsource, Gtk::PACK_SHRINK); + // surrsource = Gtk::manage (new Gtk::CheckButton (M ("TP_COLORAPP_SURSOURCE"))); + // surrsource->set_tooltip_markup (M ("TP_COLORAPP_SURSOURCE_TOOLTIP")); + + + Gtk::HBox* surrHBox1 = Gtk::manage (new Gtk::HBox ()); + surrHBox1->set_spacing (2); + surrHBox1->set_tooltip_markup (M ("TP_COLORAPP_SURROUND_TOOLTIP")); + Gtk::Label* surrLabel1 = Gtk::manage (new Gtk::Label (M ("TP_COLORAPP_SURROUND") + ":")); + surrHBox1->pack_start (*surrLabel1, Gtk::PACK_SHRINK); + surrsrc = Gtk::manage (new MyComboBoxText ()); + surrsrc->append (M ("TP_COLORAPP_SURROUND_AVER")); + surrsrc->append (M ("TP_COLORAPP_SURROUND_DIM")); + surrsrc->append (M ("TP_COLORAPP_SURROUND_DARK")); + surrsrc->append (M ("TP_COLORAPP_SURROUND_EXDARK")); + surrsrc->set_active (0); + surrHBox1->pack_start (*surrsrc); + p1VBox->pack_start (*surrHBox1); + +// p1VBox->pack_start (*surrsource, Gtk::PACK_SHRINK); Gtk::HBox* wbmHBox = Gtk::manage (new Gtk::HBox ()); wbmHBox->set_spacing (2); @@ -159,11 +262,30 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" wbmodel = Gtk::manage (new MyComboBoxText ()); wbmodel->append (M ("TP_COLORAPP_WBRT")); wbmodel->append (M ("TP_COLORAPP_WBCAM")); + wbmodel->append (M ("TP_COLORAPP_FREE")); + wbmodel->set_active (0); wbmHBox->pack_start (*wbmodel); p1VBox->pack_start (*wbmHBox); - adapscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ADAPTSCENE"), 0.001, 16384., 0.001, 2000.)); // EV -7 ==> EV 17 + Gtk::Image* itempL = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); + Gtk::Image* itempR = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); + Gtk::Image* igreenL = Gtk::manage (new RTImage ("ajd-wb-green1.png")); + Gtk::Image* igreenR = Gtk::manage (new RTImage ("ajd-wb-green2.png")); + + + tempsc = Gtk::manage (new Adjuster (M ("TP_WBALANCE_TEMPERATURE"), MINTEMP0, MAXTEMP0, 5, CENTERTEMP0, itempL, itempR, &wbSlider2Temp, &wbTemp2Slider)); + greensc = Gtk::manage (new Adjuster (M ("TP_WBALANCE_GREEN"), MINGREEN0, MAXGREEN0, 0.001, 1.0, igreenL, igreenR)); + tempsc->set_tooltip_markup (M ("TP_COLORAPP_TEMP_TOOLTIP")); + + tempsc->show(); + greensc->show(); + p1VBox->pack_start (*tempsc); + p1VBox->pack_start (*greensc); + + +// adapscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ADAPTSCENE"), 0.01, 16384., 0.001, 2000.)); // EV -7 ==> EV 17 + adapscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ADAPTSCENE"), MINLA0, MAXLA0, 0.01, 1997.4, NULL, NULL, &wbSlider2la, &wbla2Slider)); if (adapscen->delay < options.adjusterMaxDelay) { adapscen->delay = options.adjusterMaxDelay; @@ -174,6 +296,17 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" adapscen->set_tooltip_markup (M ("TP_COLORAPP_ADAPTSCENE_TOOLTIP")); p1VBox->pack_start (*adapscen); + ybscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_YBSCENE"), 1, 90, 1, 18)); + + if (ybscen->delay < options.adjusterMaxDelay) { + ybscen->delay = options.adjusterMaxDelay; + } + + ybscen->throwOnButtonRelease(); + ybscen->addAutoButton (M ("TP_COLORAPP_ADAP_AUTO_TOOLTIP")); + ybscen->set_tooltip_markup (M ("TP_COLORAPP_YBSCENE_TOOLTIP")); + p1VBox->pack_start (*ybscen); + p1Frame->add (*p1VBox); pack_start (*p1Frame, Gtk::PACK_EXPAND_WIDGET, 4); @@ -182,12 +315,19 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" // Process 1 frame - Gtk::Frame *p2Frame; - // Vertical box container for the content of the Process 1 frame - Gtk::VBox *p2VBox; - p2Frame = Gtk::manage (new Gtk::Frame (M ("TP_COLORAPP_LABEL_CAM02")) ); - p2Frame->set_label_align (0.025, 0.5); + expadjust = Gtk::manage (new MyExpander (false, M ("TP_COLORAPP_LABEL_CAM02"))); + setExpandAlignProperties (expadjust, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); + expadjust->signal_button_release_event().connect_notify ( sigc::bind ( sigc::mem_fun (this, &ColorAppearance::foldAllButMe), expadjust) ); + /* + Gtk::Frame *p2Frame; + // Vertical box container for the content of the Process 1 frame + Gtk::VBox *p2VBox; + + p2Frame = Gtk::manage (new Gtk::Frame (M ("TP_COLORAPP_LABEL_CAM02")) ); + p2Frame->set_label_align (0.025, 0.5); + */ + Gtk::VBox *p2VBox; p2VBox = Gtk::manage ( new Gtk::VBox()); p2VBox->set_spacing (2); @@ -412,10 +552,12 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" - p2Frame->add (*p2VBox); +// p2Frame->add (*p2VBox); + expadjust->add (*p2VBox, false); + expadjust->setLevel (2); + pack_start (*expadjust); - - pack_start (*p2Frame, Gtk::PACK_EXPAND_WIDGET, 4); +// pack_start (*p2Frame, Gtk::PACK_EXPAND_WIDGET, 4); @@ -433,7 +575,12 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" p3VBox = Gtk::manage ( new Gtk::VBox()); p3VBox->set_spacing (2); - adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ADAPTVIEWING"), 0.1, 1000., 0.1, 16.)); + Gtk::Image* itempL1 = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); + Gtk::Image* itempR1 = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); + Gtk::Image* igreenL1 = Gtk::manage (new RTImage ("ajd-wb-green1.png")); + Gtk::Image* igreenR1 = Gtk::manage (new RTImage ("ajd-wb-green2.png")); +// adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ADAPTVIEWING"), 0.1, 16384., 0.1, 16.)); + adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ADAPTVIEWING"), MINLA0, MAXLA0, 0.01, 16, NULL, NULL, &wbSlider2la, &wbla2Slider)); if (adaplum->delay < options.adjusterMaxDelay) { adaplum->delay = options.adjusterMaxDelay; @@ -443,16 +590,29 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" adaplum->set_tooltip_markup (M ("TP_COLORAPP_ADAPTVIEWING_TOOLTIP")); p3VBox->pack_start (*adaplum); - Gtk::Image* itempL = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* itempR = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* igreenL = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* igreenR = Gtk::manage (new RTImage ("ajd-wb-green2.png")); // Gtk::Image* iblueredL = Gtk::manage (new RTImage ("ajd-wb-bluered1.png")); // Gtk::Image* iblueredR = Gtk::manage (new RTImage ("ajd-wb-bluered2.png")); - tempout = Gtk::manage (new Adjuster (M ("TP_WBALANCE_TEMPERATURE"), MINTEMP0, MAXTEMP0, 5, CENTERTEMP0, itempR, itempL, &wbSlider2Temp, &wbTemp2Slider)); - greenout = Gtk::manage (new Adjuster (M ("TP_WBALANCE_GREEN"), MINGREEN0, MAXGREEN0, 0.001, 1.0, igreenR, igreenL)); - ybout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_YB"), 5, 50, 1, 18)); + degreeout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 100.)); + + if (degreeout->delay < options.adjusterMaxDelay) { + degreeout->delay = options.adjusterMaxDelay; + } + + degreeout->throwOnButtonRelease(); + degreeout->addAutoButton (M ("TP_COLORAPP_DEGREE_AUTO_TOOLTIP")); + degreeout->set_tooltip_markup (M ("TP_COLORAPP_DEGREE_TOOLTIP")); + p3VBox->pack_start (*degreeout); + /* + Gtk::Image* itempL1 = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); + Gtk::Image* itempR1 = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); + Gtk::Image* igreenL1 = Gtk::manage (new RTImage ("ajd-wb-green1.png")); + Gtk::Image* igreenR1 = Gtk::manage (new RTImage ("ajd-wb-green2.png")); + */ + tempout = Gtk::manage (new Adjuster (M ("TP_WBALANCE_TEMPERATURE"), MINTEMP0, MAXTEMP0, 5, CENTERTEMP0, itempR1, itempL1, &wbSlider2Temp, &wbTemp2Slider)); + greenout = Gtk::manage (new Adjuster (M ("TP_WBALANCE_GREEN"), MINGREEN0, MAXGREEN0, 0.001, 1.0, igreenR1, igreenL1)); + ybout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_YB"), 5, 90, 1, 18)); + tempout->set_tooltip_markup (M ("TP_COLORAPP_TEMP_TOOLTIP")); tempout->show(); greenout->show(); @@ -505,16 +665,34 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" badpixsl->set_tooltip_markup (M ("TP_COLORAPP_BADPIXSL_TOOLTIP")); pack_start (*badpixsl, Gtk::PACK_SHRINK); + + //reset button + neutral = Gtk::manage (new Gtk::Button (M ("TP_COLORAPP_NEUTRAL"))); + setExpandAlignProperties (neutral, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); + RTImage *resetImg = Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png")); + setExpandAlignProperties (resetImg, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); + neutral->set_image (*resetImg); + neutral->set_tooltip_text (M ("TP_COLORAPP_NEUTRAL_TIP")); + neutralconn = neutral->signal_pressed().connect ( sigc::mem_fun (*this, &ColorAppearance::neutral_pressed) ); + neutral->show(); + + //------------- + + pack_start (*neutral); + // ------------------------ Listening events - surrconn = surrsource->signal_toggled().connect ( sigc::mem_fun (*this, &ColorAppearance::surrsource_toggled) ); +// surrconn = surrsource->signal_toggled().connect ( sigc::mem_fun (*this, &ColorAppearance::surrsource_toggled) ); wbmodelconn = wbmodel->signal_changed().connect ( sigc::mem_fun (*this, &ColorAppearance::wbmodelChanged) ); algoconn = algo->signal_changed().connect ( sigc::mem_fun (*this, &ColorAppearance::algoChanged) ); surroundconn = surround->signal_changed().connect ( sigc::mem_fun (*this, &ColorAppearance::surroundChanged) ); + surrsrcconn = surrsrc->signal_changed().connect ( sigc::mem_fun (*this, &ColorAppearance::surrsrcChanged) ); degree->setAdjusterListener (this); + degreeout->setAdjusterListener (this); adapscen->setAdjusterListener (this); + ybscen->setAdjusterListener (this); adaplum->setAdjusterListener (this); badpixsl->setAdjusterListener (this); jlight->setAdjusterListener (this); @@ -529,6 +707,8 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" tempout->setAdjusterListener (this); greenout->setAdjusterListener (this); ybout->setAdjusterListener (this); + tempsc->setAdjusterListener (this); + greensc->setAdjusterListener (this); show_all(); @@ -543,7 +723,61 @@ ColorAppearance::~ColorAppearance () delete curveEditorG3; } +void ColorAppearance::foldAllButMe (GdkEventButton* event, MyExpander *expander) +{ + if (event->button == 3) { + expadjust->set_expanded (expadjust == expander); + } +} +void ColorAppearance::writeOptions (std::vector &tpOpen) +{ + tpOpen.push_back (expadjust->get_expanded ()); +} + +void ColorAppearance::updateToolState (std::vector &tpOpen) +{ + if (tpOpen.size() >= 1) { + expadjust->set_expanded (tpOpen.at (0)); + } +} + +void ColorAppearance::neutral_pressed () +{ + jlight->resetValue (false); + qbright->resetValue (false); + chroma->resetValue (false); + schroma->resetValue (false); + mchroma->resetValue (false); + rstprotection->resetValue (false); + contrast->resetValue (false); + qcontrast->resetValue (false); + colorh->resetValue (false); + tempout->resetValue (false); + greenout->resetValue (false); + ybout->resetValue (false); + tempsc->resetValue (false); + greensc->resetValue (false); + badpixsl->resetValue (false); + wbmodel->set_active (0); + toneCurveMode->set_active (0); + toneCurveMode2->set_active (0); + toneCurveMode3->set_active (0); + shape->reset(); + shape2->reset(); + shape3->reset(); + gamutconn.block (true); + gamut->set_active (true); + gamutconn.block (false); + degree->setAutoValue (true); + degree->resetValue (false); + adapscen->resetValue (false); + adapscen->setAutoValue (true); + degreeout->resetValue (false); + degreeout->setAutoValue (true); + ybscen->resetValue (false); + ybscen->setAutoValue (true); +} bool ColorAppearance::bgTTipQuery (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip) { @@ -572,7 +806,9 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) if (pedited) { degree->setEditedState (pedited->colorappearance.degree ? Edited : UnEdited); + degreeout->setEditedState (pedited->colorappearance.degreeout ? Edited : UnEdited); adapscen->setEditedState (pedited->colorappearance.adapscen ? Edited : UnEdited); + ybscen->setEditedState (pedited->colorappearance.ybscen ? Edited : UnEdited); adaplum->setEditedState (pedited->colorappearance.adaplum ? Edited : UnEdited); badpixsl->setEditedState (pedited->colorappearance.badpixsl ? Edited : UnEdited); jlight->setEditedState (pedited->colorappearance.jlight ? Edited : UnEdited); @@ -584,10 +820,12 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) tempout->setEditedState (pedited->colorappearance.tempout ? Edited : UnEdited); greenout->setEditedState (pedited->colorappearance.greenout ? Edited : UnEdited); ybout->setEditedState (pedited->colorappearance.ybout ? Edited : UnEdited); + tempsc->setEditedState (pedited->colorappearance.tempsc ? Edited : UnEdited); + greensc->setEditedState (pedited->colorappearance.greensc ? Edited : UnEdited); contrast->setEditedState (pedited->colorappearance.contrast ? Edited : UnEdited); qcontrast->setEditedState (pedited->colorappearance.qcontrast ? Edited : UnEdited); colorh->setEditedState (pedited->colorappearance.colorh ? Edited : UnEdited); - surrsource->set_inconsistent (!pedited->colorappearance.surrsource); +// surrsource->set_inconsistent (!pedited->colorappearance.surrsource); gamut->set_inconsistent (!pedited->colorappearance.gamut); // badpix->set_inconsistent (!pedited->colorappearance.badpix); datacie->set_inconsistent (!pedited->colorappearance.datacie); @@ -595,7 +833,9 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) // sharpcie->set_inconsistent (!pedited->colorappearance.sharpcie); degree->setAutoInconsistent (multiImage && !pedited->colorappearance.autodegree); + degreeout->setAutoInconsistent (multiImage && !pedited->colorappearance.autodegreeout); adapscen->setAutoInconsistent (multiImage && !pedited->colorappearance.autoadapscen); + ybscen->setAutoInconsistent (multiImage && !pedited->colorappearance.autoybscen); set_inconsistent (multiImage && !pedited->colorappearance.enabled); shape->setUnChanged (!pedited->colorappearance.curve); @@ -619,6 +859,25 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) setEnabled (pp->colorappearance.enabled); + surrsrcconn.block (true); + + if (pedited && !pedited->colorappearance.surrsrc) { + surrsrc->set_active (4); + } else if (pp->colorappearance.surrsrc == "Average") { + surrsrc->set_active (0); + } else if (pp->colorappearance.surrsrc == "Dim") { + surrsrc->set_active (1); + } else if (pp->colorappearance.surrsrc == "Dark") { + surrsrc->set_active (2); + } else if (pp->colorappearance.surrsrc == "ExtremelyDark") { + surrsrc->set_active (3); + } + + surrsrcconn.block (false); + // Have to be manually called to handle initial state update + surrsrcChanged(); + + surroundconn.block (true); if (pedited && !pedited->colorappearance.surround) { @@ -637,14 +896,18 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) // Have to be manually called to handle initial state update surroundChanged(); + + wbmodelconn.block (true); if (pedited && !pedited->colorappearance.wbmodel) { - wbmodel->set_active (2); + wbmodel->set_active (3); } else if (pp->colorappearance.wbmodel == "RawT") { wbmodel->set_active (0); } else if (pp->colorappearance.wbmodel == "RawTCAT02") { wbmodel->set_active (1); + } else if (pp->colorappearance.wbmodel == "free") { + wbmodel->set_active (2); } wbmodelconn.block (false); @@ -669,9 +932,9 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) // Have to be manually called to handle initial state update algoChanged(); - surrconn.block (true); - surrsource->set_active (pp->colorappearance.surrsource); - surrconn.block (false); + // surrconn.block (true); + // surrsource->set_active (pp->colorappearance.surrsource); + // surrconn.block (false); gamutconn.block (true); gamut->set_active (pp->colorappearance.gamut); gamutconn.block (false); @@ -688,7 +951,7 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) // sharpcie->set_active (pp->colorappearance.sharpcie); // sharpcieconn.block (false); - lastsurr = pp->colorappearance.surrsource; +// lastsurr = pp->colorappearance.surrsource; lastgamut = pp->colorappearance.gamut; // lastbadpix=pp->colorappearance.badpix; lastdatacie = pp->colorappearance.datacie; @@ -697,11 +960,17 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) lastAutoDegree = pp->colorappearance.autodegree; lastAutoAdapscen = pp->colorappearance.autoadapscen; + lastAutoDegreeout = pp->colorappearance.autodegreeout; + lastAutoybscen = pp->colorappearance.autoybscen; degree->setValue (pp->colorappearance.degree); degree->setAutoValue (pp->colorappearance.autodegree); adapscen->setValue (pp->colorappearance.adapscen); adapscen->setAutoValue (pp->colorappearance.autoadapscen); + degreeout->setValue (pp->colorappearance.degreeout); + degreeout->setAutoValue (pp->colorappearance.autodegreeout); + ybscen->setValue (pp->colorappearance.ybscen); + ybscen->setAutoValue (pp->colorappearance.autoybscen); adaplum->setValue (pp->colorappearance.adaplum); badpixsl->setValue (pp->colorappearance.badpixsl); @@ -717,6 +986,8 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) tempout->setValue (pp->colorappearance.tempout); greenout->setValue (pp->colorappearance.greenout); ybout->setValue (pp->colorappearance.ybout); + tempsc->setValue (pp->colorappearance.tempsc); + greensc->setValue (pp->colorappearance.greensc); tcmode3conn.block (false); tcmode2conn.block (false); @@ -737,9 +1008,13 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pp->colorappearance.degree = degree->getValue (); pp->colorappearance.autodegree = degree->getAutoValue (); + pp->colorappearance.degreeout = degreeout->getValue (); + pp->colorappearance.autodegreeout = degreeout->getAutoValue (); pp->colorappearance.enabled = getEnabled(); pp->colorappearance.adapscen = adapscen->getValue (); pp->colorappearance.autoadapscen = adapscen->getAutoValue (); + pp->colorappearance.ybscen = ybscen->getValue (); + pp->colorappearance.autoybscen = ybscen->getAutoValue (); pp->colorappearance.adaplum = adaplum->getValue (); pp->colorappearance.badpixsl = badpixsl->getValue (); pp->colorappearance.jlight = jlight->getValue (); @@ -751,7 +1026,7 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pp->colorappearance.qcontrast = qcontrast->getValue (); pp->colorappearance.colorh = colorh->getValue (); pp->colorappearance.rstprotection = rstprotection->getValue (); - pp->colorappearance.surrsource = surrsource->get_active(); + // pp->colorappearance.surrsource = surrsource->get_active(); pp->colorappearance.gamut = gamut->get_active(); // pp->colorappearance.badpix = badpix->get_active(); pp->colorappearance.datacie = datacie->get_active(); @@ -763,6 +1038,8 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pp->colorappearance.tempout = tempout->getValue (); pp->colorappearance.greenout = greenout->getValue (); pp->colorappearance.ybout = ybout->getValue (); + pp->colorappearance.tempsc = tempsc->getValue (); + pp->colorappearance.greensc = greensc->getValue (); int tcMode = toneCurveMode->get_active_row_number(); @@ -792,8 +1069,10 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) if (pedited) { pedited->colorappearance.degree = degree->getEditedState (); + pedited->colorappearance.degreeout = degreeout->getEditedState (); pedited->colorappearance.adapscen = adapscen->getEditedState (); pedited->colorappearance.adaplum = adaplum->getEditedState (); + pedited->colorappearance.ybscen = ybscen->getEditedState (); pedited->colorappearance.badpixsl = badpixsl->getEditedState (); pedited->colorappearance.jlight = jlight->getEditedState (); pedited->colorappearance.qbright = qbright->getEditedState (); @@ -805,12 +1084,15 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pedited->colorappearance.colorh = colorh->getEditedState (); pedited->colorappearance.rstprotection = rstprotection->getEditedState (); pedited->colorappearance.autodegree = !degree->getAutoInconsistent(); + pedited->colorappearance.autodegreeout = !degreeout->getAutoInconsistent(); pedited->colorappearance.autoadapscen = !adapscen->getAutoInconsistent(); + pedited->colorappearance.autoybscen = !ybscen->getAutoInconsistent(); pedited->colorappearance.enabled = !get_inconsistent(); pedited->colorappearance.surround = surround->get_active_text() != M ("GENERAL_UNCHANGED"); + pedited->colorappearance.surrsrc = surrsrc->get_active_text() != M ("GENERAL_UNCHANGED"); pedited->colorappearance.wbmodel = wbmodel->get_active_text() != M ("GENERAL_UNCHANGED"); pedited->colorappearance.algo = algo->get_active_text() != M ("GENERAL_UNCHANGED"); - pedited->colorappearance.surrsource = !surrsource->get_inconsistent(); + // pedited->colorappearance.surrsource = !surrsource->get_inconsistent(); pedited->colorappearance.gamut = !gamut->get_inconsistent(); // pedited->colorappearance.badpix = !badpix->get_inconsistent(); pedited->colorappearance.datacie = !datacie->get_inconsistent(); @@ -825,9 +1107,22 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pedited->colorappearance.tempout = tempout->getEditedState (); pedited->colorappearance.greenout = greenout->getEditedState (); pedited->colorappearance.ybout = ybout->getEditedState (); + pedited->colorappearance.tempsc = tempsc->getEditedState (); + pedited->colorappearance.greensc = greensc->getEditedState (); } + if (surrsrc->get_active_row_number() == 0) { + pp->colorappearance.surrsrc = "Average"; + } else if (surrsrc->get_active_row_number() == 1) { + pp->colorappearance.surrsrc = "Dim"; + } else if (surrsrc->get_active_row_number() == 2) { + pp->colorappearance.surrsrc = "Dark"; + } else if (surrsrc->get_active_row_number() == 3) { + pp->colorappearance.surrsrc = "ExtremelyDark"; + } + + if (surround->get_active_row_number() == 0) { pp->colorappearance.surround = "Average"; } else if (surround->get_active_row_number() == 1) { @@ -842,6 +1137,9 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pp->colorappearance.wbmodel = "RawT"; } else if (wbmodel->get_active_row_number() == 1) { pp->colorappearance.wbmodel = "RawTCAT02"; + } else if (wbmodel->get_active_row_number() == 2) { + pp->colorappearance.wbmodel = "free"; + } if (algo->get_active_row_number() == 0) { @@ -929,7 +1227,7 @@ bool ColorAppearance::curveMode3Changed_ () return false; } - +/* void ColorAppearance::surrsource_toggled () { @@ -954,7 +1252,7 @@ void ColorAppearance::surrsource_toggled () } } } - +*/ void ColorAppearance::gamut_toggled () { @@ -1084,7 +1382,9 @@ void ColorAppearance::setDefaults (const ProcParams* defParams, const ParamsEdit { degree->setDefault (defParams->colorappearance.degree); + degreeout->setDefault (defParams->colorappearance.degreeout); adapscen->setDefault (defParams->colorappearance.adapscen); + ybscen->setDefault (defParams->colorappearance.ybscen); adaplum->setDefault (defParams->colorappearance.adaplum); badpixsl->setDefault (defParams->colorappearance.badpixsl); jlight->setDefault (defParams->colorappearance.jlight); @@ -1099,10 +1399,14 @@ void ColorAppearance::setDefaults (const ProcParams* defParams, const ParamsEdit tempout->setDefault (defParams->colorappearance.tempout); greenout->setDefault (defParams->colorappearance.greenout); ybout->setDefault (defParams->colorappearance.ybout); + tempsc->setDefault (defParams->colorappearance.tempsc); + greensc->setDefault (defParams->colorappearance.greensc); if (pedited) { degree->setDefaultEditedState (pedited->colorappearance.degree ? Edited : UnEdited); + degreeout->setDefaultEditedState (pedited->colorappearance.degreeout ? Edited : UnEdited); adapscen->setDefaultEditedState (pedited->colorappearance.adapscen ? Edited : UnEdited); + ybscen->setDefaultEditedState (pedited->colorappearance.ybscen ? Edited : UnEdited); adaplum->setDefaultEditedState (pedited->colorappearance.adaplum ? Edited : UnEdited); badpixsl->setDefaultEditedState (pedited->colorappearance.badpixsl ? Edited : UnEdited); jlight->setDefaultEditedState (pedited->colorappearance.jlight ? Edited : UnEdited); @@ -1117,10 +1421,14 @@ void ColorAppearance::setDefaults (const ProcParams* defParams, const ParamsEdit tempout->setDefaultEditedState (pedited->colorappearance.tempout ? Edited : UnEdited); greenout->setDefaultEditedState (pedited->colorappearance.greenout ? Edited : UnEdited); ybout->setDefaultEditedState (pedited->colorappearance.ybout ? Edited : UnEdited); + tempsc->setDefaultEditedState (pedited->colorappearance.tempsc ? Edited : UnEdited); + greensc->setDefaultEditedState (pedited->colorappearance.greensc ? Edited : UnEdited); } else { degree->setDefaultEditedState (Irrelevant); + degreeout->setDefaultEditedState (Irrelevant); adapscen->setDefaultEditedState (Irrelevant); + ybscen->setDefaultEditedState (Irrelevant); adaplum->setDefaultEditedState (Irrelevant); badpixsl->setDefaultEditedState (Irrelevant); jlight->setDefaultEditedState (Irrelevant); @@ -1135,13 +1443,16 @@ void ColorAppearance::setDefaults (const ProcParams* defParams, const ParamsEdit tempout->setDefaultEditedState (Irrelevant); greenout->setDefaultEditedState (Irrelevant); ybout->setDefaultEditedState (Irrelevant); + tempsc->setDefaultEditedState (Irrelevant); + greensc->setDefaultEditedState (Irrelevant); } } -void ColorAppearance::autoCamChanged (double ccam) +void ColorAppearance::autoCamChanged (double ccam, double ccamout) { nextCcam = ccam; + nextCcamout = ccamout; const auto func = [] (gpointer data) -> gboolean { static_cast (data)->autoCamComputed_(); @@ -1157,6 +1468,7 @@ bool ColorAppearance::autoCamComputed_ () disableListener (); // degree->setEnabled (true); degree->setValue (nextCcam); + degreeout->setValue (nextCcamout); enableListener (); return false; @@ -1180,11 +1492,35 @@ bool ColorAppearance::adapCamComputed_ () disableListener (); // degree->setEnabled (true); adapscen->setValue (nextCadap); +// ybscen->setValue (nextYbscn); enableListener (); return false; } +void ColorAppearance::ybCamChanged (int ybsc) +{ + nextYbscn = ybsc; + + const auto func = [] (gpointer data) -> gboolean { + static_cast (data)->ybCamComputed_(); + return FALSE; + }; + + idle_register.add (func, this); +} + +bool ColorAppearance::ybCamComputed_ () +{ + + disableListener (); +// degree->setEnabled (true); +// adapscen->setValue (nextCadap); + ybscen->setValue (nextYbscn); + enableListener (); + + return false; +} void ColorAppearance::colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller) { @@ -1214,8 +1550,12 @@ void ColorAppearance::adjusterChanged (Adjuster* a, double newval) if (listener && (multiImage || getEnabled()) ) { if (a == degree) { listener->panelChanged (EvCATDegree, a->getTextValue()); + } else if (a == degreeout) { + listener->panelChanged (EvCATDegreeout, a->getTextValue()); } else if (a == adapscen) { listener->panelChanged (EvCATAdapscen, a->getTextValue()); + } else if (a == ybscen) { + listener->panelChanged (EvCATybscen, a->getTextValue()); } else if (a == adaplum) { listener->panelChanged (EvCATAdapLum, a->getTextValue()); } else if (a == badpixsl) { @@ -1244,6 +1584,10 @@ void ColorAppearance::adjusterChanged (Adjuster* a, double newval) listener->panelChanged (EvCATgreenout, a->getTextValue()); } else if (a == ybout) { listener->panelChanged (EvCATybout, a->getTextValue()); + } else if (a == tempsc) { + listener->panelChanged (EvCATtempsc, a->getTextValue()); + } else if (a == greensc) { + listener->panelChanged (EvCATgreensc, a->getTextValue()); } @@ -1263,6 +1607,15 @@ void ColorAppearance::adjusterAutoToggled (Adjuster* a, bool newval) lastAutoDegree = degree->getAutoValue(); + if (degreeout->getAutoInconsistent()) { + degreeout->setAutoInconsistent (false); + degreeout->setAutoValue (false); + } else if (lastAutoDegreeout) { + degreeout->setAutoInconsistent (true); + } + + lastAutoDegreeout = degreeout->getAutoValue(); + if (adapscen->getAutoInconsistent()) { adapscen->setAutoInconsistent (false); adapscen->setAutoValue (false); @@ -1272,6 +1625,15 @@ void ColorAppearance::adjusterAutoToggled (Adjuster* a, bool newval) lastAutoAdapscen = adapscen->getAutoValue(); + if (ybscen->getAutoInconsistent()) { + ybscen->setAutoInconsistent (false); + ybscen->setAutoValue (false); + } else if (lastAutoybscen) { + ybscen->setAutoInconsistent (true); + } + + lastAutoybscen = ybscen->getAutoValue(); + } if (listener && (multiImage || getEnabled()) ) { @@ -1286,6 +1648,17 @@ void ColorAppearance::adjusterAutoToggled (Adjuster* a, bool newval) } } + if (a == degreeout) { + if (degreeout->getAutoInconsistent()) { + listener->panelChanged (EvCATAutoDegreeout, M ("GENERAL_UNCHANGED")); + } else if (degreeout->getAutoValue()) { + listener->panelChanged (EvCATAutoDegreeout, M ("GENERAL_ENABLED")); + } else { + listener->panelChanged (EvCATAutoDegreeout, M ("GENERAL_DISABLED")); + } + } + + if (a == adapscen) { if (adapscen->getAutoInconsistent()) { listener->panelChanged (EvCATAutoAdap, M ("GENERAL_UNCHANGED")); @@ -1296,6 +1669,16 @@ void ColorAppearance::adjusterAutoToggled (Adjuster* a, bool newval) } } + if (a == ybscen) { + if (ybscen->getAutoInconsistent()) { + listener->panelChanged (EvCATAutoyb, M ("GENERAL_UNCHANGED")); + } else if (ybscen->getAutoValue()) { + listener->panelChanged (EvCATAutoyb, M ("GENERAL_ENABLED")); + } else { + listener->panelChanged (EvCATAutoyb, M ("GENERAL_DISABLED")); + } + } + } } @@ -1315,6 +1698,15 @@ void ColorAppearance::enabledChanged () } } +void ColorAppearance::surrsrcChanged () +{ + + if (listener && (multiImage || getEnabled()) ) { + listener->panelChanged (EvCATsurr, surrsrc->get_active_text ()); + } +} + + void ColorAppearance::surroundChanged () { @@ -1325,6 +1717,15 @@ void ColorAppearance::surroundChanged () void ColorAppearance::wbmodelChanged () { + if (wbmodel->get_active_row_number() == 0 || wbmodel->get_active_row_number() == 1) { + tempsc->hide(); + greensc->hide(); + } + + if (wbmodel->get_active_row_number() == 2) { + tempsc->show(); + greensc->show(); + } if (listener && (multiImage || getEnabled()) ) { listener->panelChanged (EvCATMethodWB, wbmodel->get_active_text ()); @@ -1410,8 +1811,10 @@ void ColorAppearance::setBatchMode (bool batchMode) ToolPanel::setBatchMode (batchMode); degree->showEditedCB (); + degreeout->showEditedCB (); adapscen->showEditedCB (); adaplum->showEditedCB (); + ybscen->showEditedCB (); badpixsl->showEditedCB (); jlight->showEditedCB (); qbright->showEditedCB (); @@ -1425,8 +1828,11 @@ void ColorAppearance::setBatchMode (bool batchMode) tempout->showEditedCB (); greenout->showEditedCB (); ybout->showEditedCB (); + tempsc->showEditedCB (); + greensc->showEditedCB (); surround->append (M ("GENERAL_UNCHANGED")); + surrsrc->append (M ("GENERAL_UNCHANGED")); wbmodel->append (M ("GENERAL_UNCHANGED")); algo->append (M ("GENERAL_UNCHANGED")); toneCurveMode->append (M ("GENERAL_UNCHANGED")); @@ -1469,7 +1875,9 @@ void ColorAppearance::trimValues (rtengine::procparams::ProcParams* pp) { degree->trimValue (pp->colorappearance.degree); + degreeout->trimValue (pp->colorappearance.degreeout); adapscen->trimValue (pp->colorappearance.adapscen); + ybscen->trimValue (pp->colorappearance.ybscen); adaplum->trimValue (pp->colorappearance.adaplum); badpixsl->trimValue (pp->colorappearance.badpixsl); jlight->trimValue (pp->colorappearance.jlight); @@ -1484,5 +1892,7 @@ void ColorAppearance::trimValues (rtengine::procparams::ProcParams* pp) tempout->trimValue (pp->colorappearance.tempout); greenout->trimValue (pp->colorappearance.greenout); ybout->trimValue (pp->colorappearance.ybout); + tempsc->trimValue (pp->colorappearance.tempsc); + greensc->trimValue (pp->colorappearance.greensc); } diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index 5f433b556..3829475ae 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -49,6 +49,7 @@ public: // void adjusterAdapToggled (Adjuster* a, bool newval); void enabledChanged (); void surroundChanged (); + void surrsrcChanged (); void wbmodelChanged (); void algoChanged (); void surrsource_toggled (); @@ -57,10 +58,12 @@ public: void datacie_toggled (); void tonecie_toggled (); // void sharpcie_toggled (); - void autoCamChanged (double ccam); + void autoCamChanged (double ccam, double ccamout); bool autoCamComputed_ (); void adapCamChanged (double cadap); bool adapCamComputed_ (); + void ybCamChanged (int yb); + bool ybCamComputed_ (); void curveChanged (CurveEditor* ce); void curveMode1Changed (); @@ -69,6 +72,7 @@ public: bool curveMode2Changed_ (); void curveMode3Changed (); bool curveMode3Changed_ (); + void neutral_pressed (); void expandCurve (bool isExpanded); bool isCurveExpanded (); @@ -78,10 +82,13 @@ public: void trimValues (rtengine::procparams::ProcParams* pp); void updateCurveBackgroundHistogram (LUTu & histToneCurve, LUTu & histLCurve, LUTu & histCCurve,/* LUTu & histCLurve, LUTu & histLLCurve,*/ LUTu & histLCAM, LUTu & histCCAM, LUTu & histRed, LUTu & histGreen, LUTu & histBlue, LUTu & histLuma, LUTu & histLRETI); virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller); + void updateToolState (std::vector &tpOpen); + void writeOptions (std::vector &tpOpen); private: bool bgTTipQuery (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip); bool srTTipQuery (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip); + void foldAllButMe (GdkEventButton* event, MyExpander *expander); Glib::RefPtr bgTTips; Glib::RefPtr srTTips; @@ -90,7 +97,9 @@ private: Adjuster* degree; Adjuster* adapscen; + Adjuster* ybscen; Adjuster* adaplum; + Adjuster* degreeout; Adjuster* badpixsl; Adjuster* jlight; Adjuster* qbright; @@ -104,6 +113,10 @@ private: Adjuster* tempout; Adjuster* greenout; Adjuster* ybout; + Adjuster* tempsc; + Adjuster* greensc; + + MyExpander* expadjust; MyComboBoxText* toneCurveMode; MyComboBoxText* toneCurveMode2; @@ -116,6 +129,9 @@ private: Gtk::CheckButton* datacie; Gtk::CheckButton* tonecie; // Gtk::CheckButton* sharpcie; + Gtk::Button* neutral; + MyComboBoxText* surrsrc; + sigc::connection surrsrcconn; MyComboBoxText* surround; sigc::connection surroundconn; @@ -125,7 +141,7 @@ private: sigc::connection algoconn; sigc::connection surrconn; sigc::connection gamutconn, datacieconn, tonecieconn /*,badpixconn , sharpcieconn*/; - sigc::connection tcmodeconn, tcmode2conn, tcmode3conn; + sigc::connection tcmodeconn, tcmode2conn, tcmode3conn, neutralconn; CurveEditorGroup* curveEditorG; CurveEditorGroup* curveEditorG2; CurveEditorGroup* curveEditorG3; @@ -133,9 +149,12 @@ private: DiagonalCurveEditor* shape; DiagonalCurveEditor* shape2; DiagonalCurveEditor* shape3; - double nextCcam, nextCadap; + double nextCcam, nextCcamout, nextCadap; + int nextYbscn; bool lastAutoDegree; bool lastAutoAdapscen; + bool lastAutoDegreeout; + bool lastAutoybscen; bool lastsurr; bool lastgamut; bool lastdatacie; diff --git a/rtgui/options.cc b/rtgui/options.cc index 9568f0383..73635d6e7 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -650,7 +650,7 @@ void Options::setDefaults () #endif // rtSettings.viewingdevice = 0; // rtSettings.viewingdevicegrey = 3; - rtSettings.viewinggreySc = 1; + // rtSettings.viewinggreySc = 1; rtSettings.leveldnv = 2; rtSettings.leveldnti = 0; rtSettings.leveldnaut = 0; @@ -1607,11 +1607,11 @@ int Options::readFromFile (Glib::ustring fname) rtSettings.viewingdevicegrey = keyFile.get_integer ("Color Management", "grey"); } */ - +/* if (keyFile.has_key ("Color Management", "greySc")) { rtSettings.viewinggreySc = keyFile.get_integer ("Color Management", "greySc"); } - +*/ if (keyFile.has_key ("Color Management", "CBDLArtif")) { rtSettings.artifact_cbdl = keyFile.get_double ("Color Management", "CBDLArtif"); } @@ -2195,7 +2195,7 @@ int Options::saveToFile (Glib::ustring fname) keyFile.set_boolean ("Color Management", "MonitorBPC", rtSettings.monitorBPC); //keyFile.set_integer ("Color Management", "view", rtSettings.viewingdevice); //keyFile.set_integer ("Color Management", "grey", rtSettings.viewingdevicegrey); - keyFile.set_integer ("Color Management", "greySc", rtSettings.viewinggreySc); +// keyFile.set_integer ("Color Management", "greySc", rtSettings.viewinggreySc); keyFile.set_string ("Color Management", "AdobeRGB", rtSettings.adobe); keyFile.set_string ("Color Management", "ProPhoto", rtSettings.prophoto); diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 85ac6c351..f12515fce 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -175,9 +175,14 @@ void ParamsEdited::set (bool v) colorappearance.enabled = v; colorappearance.degree = v; colorappearance.autodegree = v; + colorappearance.degreeout = v; + colorappearance.autodegreeout = v; colorappearance.surround = v; + colorappearance.surrsrc = v; colorappearance.adapscen = v; colorappearance.autoadapscen = v; + colorappearance.ybscen = v; + colorappearance.autoybscen = v; colorappearance.adaplum = v; colorappearance.badpixsl = v; colorappearance.wbmodel = v; @@ -207,6 +212,8 @@ void ParamsEdited::set (bool v) colorappearance.tempout = v; colorappearance.greenout = v; colorappearance.ybout = v; + colorappearance.tempsc = v; + colorappearance.greensc = v; //colorBoost.amount = v; //colorBoost.avoidclip = v; @@ -795,9 +802,14 @@ void ParamsEdited::initFrom (const std::vector colorappearance.enabled = colorappearance.enabled && p.colorappearance.enabled == other.colorappearance.enabled; colorappearance.degree = colorappearance.degree && p.colorappearance.degree == other.colorappearance.degree; colorappearance.autodegree = colorappearance.autodegree && p.colorappearance.autodegree == other.colorappearance.autodegree; + colorappearance.degreeout = colorappearance.degreeout && p.colorappearance.degreeout == other.colorappearance.degreeout; + colorappearance.autodegreeout = colorappearance.autodegreeout && p.colorappearance.autodegreeout == other.colorappearance.autodegreeout; colorappearance.surround = colorappearance.surround && p.colorappearance.surround == other.colorappearance.surround; + colorappearance.surrsrc = colorappearance.surrsrc && p.colorappearance.surrsrc == other.colorappearance.surrsrc; colorappearance.adapscen = colorappearance.adapscen && p.colorappearance.adapscen == other.colorappearance.adapscen; colorappearance.autoadapscen = colorappearance.autoadapscen && p.colorappearance.autoadapscen == other.colorappearance.autoadapscen; + colorappearance.ybscen = colorappearance.ybscen && p.colorappearance.ybscen == other.colorappearance.ybscen; + colorappearance.autoybscen = colorappearance.autoybscen && p.colorappearance.autoybscen == other.colorappearance.autoybscen; colorappearance.adaplum = colorappearance.adaplum && p.colorappearance.adaplum == other.colorappearance.adaplum; colorappearance.badpixsl = colorappearance.badpixsl && p.colorappearance.badpixsl == other.colorappearance.badpixsl; colorappearance.wbmodel = colorappearance.wbmodel && p.colorappearance.wbmodel == other.colorappearance.wbmodel; @@ -826,6 +838,8 @@ void ParamsEdited::initFrom (const std::vector colorappearance.tempout = colorappearance.tempout && p.colorappearance.tempout == other.colorappearance.tempout; colorappearance.greenout = colorappearance.greenout && p.colorappearance.greenout == other.colorappearance.greenout; colorappearance.ybout = colorappearance.ybout && p.colorappearance.ybout == other.colorappearance.ybout; + colorappearance.tempsc = colorappearance.tempsc && p.colorappearance.tempsc == other.colorappearance.tempsc; + colorappearance.greensc = colorappearance.greensc && p.colorappearance.greensc == other.colorappearance.greensc; //colorBoost.amount = colorBoost.amount && p.colorBoost.amount == other.colorBoost.amount; //colorBoost.avoidclip = colorBoost.avoidclip && p.colorBoost.avoidclip == other.colorBoost.avoidclip; @@ -1902,10 +1916,22 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten toEdit.colorappearance.autodegree = mods.colorappearance.autodegree; } + if (colorappearance.degreeout) { + toEdit.colorappearance.degreeout = mods.colorappearance.degreeout; + } + + if (colorappearance.autodegreeout) { + toEdit.colorappearance.autodegreeout = mods.colorappearance.autodegreeout; + } + if (colorappearance.surround) { toEdit.colorappearance.surround = mods.colorappearance.surround; } + if (colorappearance.surrsrc) { + toEdit.colorappearance.surrsrc = mods.colorappearance.surrsrc; + } + if (colorappearance.autoadapscen) { toEdit.colorappearance.autoadapscen = mods.colorappearance.autoadapscen; } @@ -1914,6 +1940,14 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten toEdit.colorappearance.adapscen = mods.colorappearance.adapscen; } + if (colorappearance.autoybscen) { + toEdit.colorappearance.autoybscen = mods.colorappearance.autoybscen; + } + + if (colorappearance.ybscen) { + toEdit.colorappearance.ybscen = mods.colorappearance.ybscen; + } + if (colorappearance.adaplum) { toEdit.colorappearance.adaplum = dontforceSet && options.baBehav[ADDSET_CAT_ADAPTVIEWING] ? toEdit.colorappearance.adaplum + mods.colorappearance.adaplum : mods.colorappearance.adaplum; } @@ -1938,6 +1972,14 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten toEdit.colorappearance.greenout = mods.colorappearance.greenout; } + if (colorappearance.tempsc) { + toEdit.colorappearance.tempsc = mods.colorappearance.tempsc; + } + + if (colorappearance.greensc) { + toEdit.colorappearance.greensc = mods.colorappearance.greensc; + } + if (colorappearance.ybout) { toEdit.colorappearance.ybout = mods.colorappearance.ybout; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 5ac97040d..0d1fc0bd2 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -289,10 +289,15 @@ public: bool enabled; bool degree; bool autodegree; + bool degreeout; + bool autodegreeout; bool autoadapscen; + bool autoybscen; bool surround; + bool surrsrc; bool adapscen; bool adaplum; + bool ybscen; bool badpixsl; bool wbmodel; bool algo; @@ -314,6 +319,8 @@ public: bool tempout; bool greenout; bool ybout; + bool tempsc; + bool greensc; }; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index cc8639eac..58b9319e9 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -939,14 +939,14 @@ Gtk::Widget* Preferences::getColorManagementPanel () grey->append (M("PREFERENCES_GREY30")); grey->append (M("PREFERENCES_GREY40")); */ - +/* Gtk::Label* greySclab = Gtk::manage (new Gtk::Label (M ("PREFERENCES_GREYSC") + ":", Gtk::ALIGN_START)); setExpandAlignProperties (greySclab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); greySc = Gtk::manage (new Gtk::ComboBoxText ()); setExpandAlignProperties (greySc, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); greySc->append (M ("PREFERENCES_GREYSCA")); greySc->append (M ("PREFERENCES_GREYSC18")); - +*/ Gtk::Frame* fcielab = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_CIEART_FRAME")) ); setExpandAlignProperties (fcielab, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); @@ -961,8 +961,8 @@ Gtk::Widget* Preferences::getColorManagementPanel () colo->attach (*greylab, 0, 2, 1, 1); colo->attach (*grey, 1, 2, 1, 1); */ - colo->attach (*greySclab, 0, 3, 1, 1); - colo->attach (*greySc, 1, 3, 1, 1); +// colo->attach (*greySclab, 0, 3, 1, 1); +// colo->attach (*greySc, 1, 3, 1, 1); cbciecamfloat = Gtk::manage (new Gtk::CheckButton (M ("PREFERENCES_CIEART_LABEL"))); setExpandAlignProperties (cbciecamfloat, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); colo->attach (*cbciecamfloat, 0, 4, 2, 1); @@ -1068,7 +1068,7 @@ Gtk::Widget* Preferences::getGeneralPanel () // --------------------------------------------- - Gtk::Frame* flang = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_DEFAULTLANG")) ); + Gtk::Frame* flang = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_LANG")) ); setExpandAlignProperties (flang, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); Gtk::Grid* langGrid = Gtk::manage ( new Gtk::Grid() ); langGrid->set_column_spacing (4); @@ -1103,7 +1103,7 @@ Gtk::Widget* Preferences::getGeneralPanel () // --------------------------------------------- - Gtk::Frame* ftheme = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_DEFAULTTHEME")) ); + Gtk::Frame* ftheme = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_THEME")) ); setExpandAlignProperties (ftheme, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); Gtk::Grid* themeGrid = Gtk::manage ( new Gtk::Grid() ); themeGrid->set_column_spacing (4); @@ -1794,7 +1794,7 @@ void Preferences::storePreferences () moptions.rtSettings.iccDirectory = iccDir->get_filename (); // moptions.rtSettings.viewingdevice = view->get_active_row_number (); // moptions.rtSettings.viewingdevicegrey = grey->get_active_row_number (); - moptions.rtSettings.viewinggreySc = greySc->get_active_row_number (); +// moptions.rtSettings.viewinggreySc = greySc->get_active_row_number (); // moptions.rtSettings.autocielab = cbAutocielab->get_active (); moptions.rtSettings.ciecamfloat = cbciecamfloat->get_active (); moptions.rtSettings.HistogramWorking = ckbHistogramWorking->get_active (); @@ -1957,7 +1957,7 @@ void Preferences::fillPreferences () // view->set_active (moptions.rtSettings.viewingdevice); // grey->set_active (moptions.rtSettings.viewingdevicegrey); - greySc->set_active (moptions.rtSettings.viewinggreySc); +// greySc->set_active (moptions.rtSettings.viewinggreySc); dnv->set_active (moptions.rtSettings.leveldnv); dnti->set_active (moptions.rtSettings.leveldnti); dnliss->set_active (moptions.rtSettings.leveldnliss); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index e876bfda9..aa207fc26 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -122,9 +122,9 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener Gtk::SpinButton* panFactor; Gtk::CheckButton* rememberZoomPanCheckbutton; - Gtk::ComboBoxText* view; - Gtk::ComboBoxText* grey; - Gtk::ComboBoxText* greySc; + // Gtk::ComboBoxText* view; +// Gtk::ComboBoxText* grey; +// Gtk::ComboBoxText* greySc; Gtk::ComboBoxText* dnv; Gtk::ComboBoxText* dnti; Gtk::ComboBoxText* dnaut;