diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc index 34363781f..dce81742c 100644 Binary files a/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc and b/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc index 413360817..65af92f1c 100644 Binary files a/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc and b/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Best.icc b/rtdata/iccprofiles/output/RTv2_Best.icc index 3f9db89e0..6390b1f34 100644 Binary files a/rtdata/iccprofiles/output/RTv2_Best.icc and b/rtdata/iccprofiles/output/RTv2_Best.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Beta.icc b/rtdata/iccprofiles/output/RTv2_Beta.icc index ebd5005e2..13907b35a 100644 Binary files a/rtdata/iccprofiles/output/RTv2_Beta.icc and b/rtdata/iccprofiles/output/RTv2_Beta.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Bruce.icc b/rtdata/iccprofiles/output/RTv2_Bruce.icc index c795da140..7dd7f383c 100644 Binary files a/rtdata/iccprofiles/output/RTv2_Bruce.icc and b/rtdata/iccprofiles/output/RTv2_Bruce.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Large.icc b/rtdata/iccprofiles/output/RTv2_Large.icc index 40f86fcf1..9d2c3fc01 100644 Binary files a/rtdata/iccprofiles/output/RTv2_Large.icc and b/rtdata/iccprofiles/output/RTv2_Large.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Medium.icc b/rtdata/iccprofiles/output/RTv2_Medium.icc index 59bdf6706..ebaf4d133 100644 Binary files a/rtdata/iccprofiles/output/RTv2_Medium.icc and b/rtdata/iccprofiles/output/RTv2_Medium.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Rec2020.icc b/rtdata/iccprofiles/output/RTv2_Rec2020.icc index b6969a6f1..5a1614bed 100644 Binary files a/rtdata/iccprofiles/output/RTv2_Rec2020.icc and b/rtdata/iccprofiles/output/RTv2_Rec2020.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Wide.icc b/rtdata/iccprofiles/output/RTv2_Wide.icc index 32ce13c7d..e17668966 100644 Binary files a/rtdata/iccprofiles/output/RTv2_Wide.icc and b/rtdata/iccprofiles/output/RTv2_Wide.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_sRGB.icc b/rtdata/iccprofiles/output/RTv2_sRGB.icc index 5efc365f8..eb841129e 100644 Binary files a/rtdata/iccprofiles/output/RTv2_sRGB.icc and b/rtdata/iccprofiles/output/RTv2_sRGB.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc index 30df95eac..e07da6e04 100644 Binary files a/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc and b/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc index 5dfb4cb0d..7194ff6da 100644 Binary files a/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc and b/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Best.icc b/rtdata/iccprofiles/output/RTv4_Best.icc index c67688686..8d40518ad 100644 Binary files a/rtdata/iccprofiles/output/RTv4_Best.icc and b/rtdata/iccprofiles/output/RTv4_Best.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Beta.icc b/rtdata/iccprofiles/output/RTv4_Beta.icc index 86825164a..118615326 100644 Binary files a/rtdata/iccprofiles/output/RTv4_Beta.icc and b/rtdata/iccprofiles/output/RTv4_Beta.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Bruce.icc b/rtdata/iccprofiles/output/RTv4_Bruce.icc index c3a01b116..d61767305 100644 Binary files a/rtdata/iccprofiles/output/RTv4_Bruce.icc and b/rtdata/iccprofiles/output/RTv4_Bruce.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Large.icc b/rtdata/iccprofiles/output/RTv4_Large.icc index 176bff9a7..9aef72934 100644 Binary files a/rtdata/iccprofiles/output/RTv4_Large.icc and b/rtdata/iccprofiles/output/RTv4_Large.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Medium.icc b/rtdata/iccprofiles/output/RTv4_Medium.icc index d63965fa5..075e9637c 100644 Binary files a/rtdata/iccprofiles/output/RTv4_Medium.icc and b/rtdata/iccprofiles/output/RTv4_Medium.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Rec2020.icc b/rtdata/iccprofiles/output/RTv4_Rec2020.icc index 27b1f8c49..9fcb5d263 100644 Binary files a/rtdata/iccprofiles/output/RTv4_Rec2020.icc and b/rtdata/iccprofiles/output/RTv4_Rec2020.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Wide.icc b/rtdata/iccprofiles/output/RTv4_Wide.icc index f95587797..6dca43823 100644 Binary files a/rtdata/iccprofiles/output/RTv4_Wide.icc and b/rtdata/iccprofiles/output/RTv4_Wide.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_sRGB.icc b/rtdata/iccprofiles/output/RTv4_sRGB.icc index af95e0fd4..60607da55 100644 Binary files a/rtdata/iccprofiles/output/RTv4_sRGB.icc and b/rtdata/iccprofiles/output/RTv4_sRGB.icc differ diff --git a/rtdata/images/themed/png/dark/color-picker-small.png b/rtdata/images/themed/png/dark/color-picker-small.png new file mode 100644 index 000000000..5976b6e11 Binary files /dev/null and b/rtdata/images/themed/png/dark/color-picker-small.png differ diff --git a/rtdata/images/themed/png/light/color-picker-small.png b/rtdata/images/themed/png/light/color-picker-small.png new file mode 100644 index 000000000..109f8fda4 Binary files /dev/null and b/rtdata/images/themed/png/light/color-picker-small.png differ diff --git a/rtdata/images/themed/svg/color-picker-small.svg b/rtdata/images/themed/svg/color-picker-small.svg new file mode 100644 index 000000000..d83400653 --- /dev/null +++ b/rtdata/images/themed/svg/color-picker-small.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index bd9cb8359..bf1a12876 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -498,7 +498,6 @@ PREFERENCES_CLIPPINGIND;Indicador de pèrdues PREFERENCES_CUSTPROFBUILD;Constructor de perfils de procés particulars PREFERENCES_CUSTPROFBUILDHINT;Nom del fitxer executable (o script) per a usar un nou perfil de procés en una imatge.\nRep paràmetres en línia d'ordres per a la generació de perfils basats en regles:\n[raw/JPG path] [path per omissió del perfil de procés] [número f] [expos. en segons] [long. focal en mm] [ISO] [objectiu] [càmera] PREFERENCES_CUSTPROFBUILDPATH;Executable path -PREFERENCES_CUTOVERLAYBRUSH;Cropa màscara color/transparència PREFERENCES_DARKFRAMEFOUND;Trobat PREFERENCES_DARKFRAMESHOTS;trets PREFERENCES_DARKFRAMETEMPLATES;plantilles @@ -513,7 +512,6 @@ PREFERENCES_DIRSOFTWARE;Instal·lació al directori PREFERENCES_EDITORLAYOUT;Sortida d'editor PREFERENCES_EXTERNALEDITOR;Editor extern PREFERENCES_FBROWSEROPTS;Opcions de navegador i minifotos -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barra de gestor de fitxers d'una línia (inapropiat en monitors de baixa resolució) PREFERENCES_FILEFORMAT;Format de fitxer PREFERENCES_FLATFIELDFOUND;Trobat PREFERENCES_FLATFIELDSDIR;Carpeta de camps plans @@ -561,9 +559,7 @@ PREFERENCES_PROFILESAVECACHE;Desa els paràmetres de procés a la memòria cau PREFERENCES_PROFILESAVEINPUT;Desa els paràm. de procés juntament amb la imatge PREFERENCES_PROPERTY;Propietat PREFERENCES_PSPATH;Directori d'instal. d'Adobe Photoshop -PREFERENCES_SELECTFONT;Selec. font PREFERENCES_SELECTLANG;Seleccionar idioma -PREFERENCES_SELECTTHEME;Seleccionar tema PREFERENCES_SET;Fixa PREFERENCES_SHOWBASICEXIF;Mostra principals dades Exif PREFERENCES_SHOWDATETIME;Indica data i hora @@ -662,7 +658,6 @@ TP_CROP_GUIDETYPE;Tipus de guia: TP_CROP_H;Alt TP_CROP_LABEL;Cropa TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Selecc. cropar TP_CROP_W;Ample TP_CROP_X;x TP_CROP_Y;y @@ -790,9 +785,6 @@ TP_LENSGEOM_AUTOCROP;Auto cropa TP_LENSGEOM_FILL;Auto omple TP_LENSGEOM_LABEL;Lent / Geometria TP_LENSPROFILE_LABEL;Perfil de correcció de lent -TP_LENSPROFILE_USECA;Usa correcció AC -TP_LENSPROFILE_USEDIST;Correcció de distorsió -TP_LENSPROFILE_USEVIGN;Correcció de vores fosques TP_NEUTRAL_TIP;Torna els controls d'exposició a valors neutrals TP_PERSPECTIVE_HORIZONTAL;Horitzontal TP_PERSPECTIVE_LABEL;Perspectiva @@ -1324,13 +1316,18 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1431,10 +1428,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 @@ -1448,8 +1441,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1489,7 +1482,13 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALL;All to 'Set' @@ -1504,8 +1503,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1525,6 +1524,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_D65;6500K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLUOF2;Fluorescent F2 !PREFERENCES_FLUOF7;Fluorescent F7 !PREFERENCES_FLUOF11;Fluorescent F11 @@ -1554,7 +1554,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. @@ -1573,15 +1572,13 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1612,7 +1609,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1675,11 +1672,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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_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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1690,6 +1683,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1709,8 +1703,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1722,14 +1714,13 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1749,11 +1740,9 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1767,16 +1756,25 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1805,6 +1803,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -1929,6 +1929,15 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_LABCURVE_CURVEEDITOR_LH;LH !TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) !TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1962,6 +1971,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) @@ -1986,7 +1996,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2038,10 +2048,10 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2079,7 +2089,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2295,6 +2305,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_WAVELET_TON;Toning !TP_WBALANCE_EQBLUERED;Blue/Red equalizer !TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". !TP_WBALANCE_WATER1;UnderWater 1 diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 5478d820a..38c4a37fe 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -485,6 +485,7 @@ PARTIALPASTE_VIGNETTING;暗角修正 PARTIALPASTE_WAVELETGROUP;小波变换等级 PARTIALPASTE_WHITEBALANCE;白平衡 PREFERENCES_ADD;添加 +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;导航器引导颜色 PREFERENCES_APPLNEXTSTARTUP;下次启动生效 PREFERENCES_AUTOMONPROFILE;使用操作系统主显示器的色彩档案 PREFERENCES_BATCH_PROCESSING;批处理 @@ -495,10 +496,6 @@ PREFERENCES_BLACKBODY;钨丝灯 PREFERENCES_CACHEMAXENTRIES;最大缓存数量 PREFERENCES_CACHEOPTS;缓存选项 PREFERENCES_CACHETHUMBHEIGHT;最大缩略图高度 -PREFERENCES_CIEART;CIECAM02 优化 -PREFERENCES_CIEART_FRAME;CIECAM02-特定选项 -PREFERENCES_CIEART_LABEL;使用单浮点精度而不是双精度 -PREFERENCES_CIEART_TOOLTIP;如果启用, CIECAM02 将使用单精度浮点计算, 结果是品质轻微下降, 速度则可以提高一些 PREFERENCES_CLIPPINGIND;高光溢出提示 PREFERENCES_CLUTSCACHE;HaldCLUT 缓存 PREFERENCES_CLUTSCACHE_LABEL;CLUTs 最大缓存数 @@ -514,7 +511,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;可执行文件路径 -PREFERENCES_CUTOVERLAYBRUSH;裁切遮罩色彩和透明度 PREFERENCES_D50;5000K PREFERENCES_D50_OLD;5000K PREFERENCES_D55;5500K @@ -534,7 +530,6 @@ PREFERENCES_DIRSOFTWARE;软件安装路径 PREFERENCES_EDITORLAYOUT;编辑器布局 PREFERENCES_EXTERNALEDITOR;外部编辑器 PREFERENCES_FBROWSEROPTS;文件浏览选项 -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) PREFERENCES_FILEFORMAT;文件格式 PREFERENCES_FLATFIELDFOUND;找到 PREFERENCES_FLATFIELDSDIR;平场图像路径 @@ -591,7 +586,6 @@ PREFERENCES_MONPROFILE;默认色彩配置文件 PREFERENCES_MONPROFILE_WARNOSX;受MacOS限制, 仅支持sRGB PREFERENCES_MULTITAB;多编辑器标签模式 PREFERENCES_MULTITABDUALMON;多编辑器标签独立模式 -PREFERENCES_NAVGUIDEBRUSH;导航器引导颜色 PREFERENCES_NAVIGATIONFRAME;导航器 PREFERENCES_OUTDIR;输出路径 PREFERENCES_OUTDIRFOLDER;保存至文件夹 @@ -628,13 +622,10 @@ PREFERENCES_PRTPROFILE;色彩配置文件 PREFERENCES_PSPATH;Adobe Photoshop安装路径 PREFERENCES_REMEMBERZOOMPAN;记忆缩放和位置 PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -PREFERENCES_SELECTFONT;设置主要字体 -PREFERENCES_SELECTFONT_COLPICKER;设置色彩选择器字体 PREFERENCES_SELECTLANG;选择语言 -PREFERENCES_SELECTTHEME;选择主题 -PREFERENCES_SERIALIZE_TIFF_READ;Tiff 读取设定 -PREFERENCES_SERIALIZE_TIFF_READ_LABEL;连续载入tiff文件 -PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;开启后可以提高在无压缩tiff图片文件夹中的缩略图生成速度 +PREFERENCES_SERIALIZE_TIFF_READ;TIFF 读取设定 +PREFERENCES_SERIALIZE_TIFF_READ_LABEL;连续载入TIFF文件 +PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;开启后可以提高在无压缩TIFF图片文件夹中的缩略图生成速度 PREFERENCES_SET;设置 PREFERENCES_SHOWBASICEXIF;显示基本Exif信息 PREFERENCES_SHOWDATETIME;显示时间日期 @@ -654,7 +645,6 @@ PREFERENCES_TAB_DYNAMICPROFILE;动态预设规则 PREFERENCES_TAB_GENERAL;一般 PREFERENCES_TAB_IMPROC;图片处理 PREFERENCES_TAB_SOUND;音效 -PREFERENCES_THEME;主题 PREFERENCES_TP_LABEL;工具栏 PREFERENCES_TP_VSCROLLBAR;隐藏垂直滚动栏 PREFERENCES_TUNNELMETADATA;无损复制 Exif/IPTC/XMP 到输出文件 @@ -771,7 +761,6 @@ TP_CROP_GUIDETYPE;辅助方式: TP_CROP_H;高 TP_CROP_LABEL;剪裁 TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;选择预设 TP_CROP_W;宽 TP_CROP_X;x TP_CROP_Y;y @@ -878,9 +867,6 @@ TP_LENSGEOM_AUTOCROP;自动剪切 TP_LENSGEOM_FILL;自动填充 TP_LENSGEOM_LABEL;镜头 / 几何 TP_LENSPROFILE_LABEL;镜头矫正档案 -TP_LENSPROFILE_USECA;色散矫正 -TP_LENSPROFILE_USEDIST;畸变矫正 -TP_LENSPROFILE_USEVIGN;暗角矫正 TP_PCVIGNETTE_FEATHER;羽化 TP_PCVIGNETTE_LABEL;暗角滤镜 TP_PCVIGNETTE_ROUNDNESS;圆度 @@ -1401,13 +1387,18 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1507,10 +1498,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 @@ -1522,16 +1509,16 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !MAIN_MSG_WRITEFAILED;Failed to write\n"%1"\n\nMake sure that the folder exists and that you have write permission to it. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. !OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -1545,7 +1532,12 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. !PREFERENCES_CACHECLEAR;Clear @@ -1553,8 +1545,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: !PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1562,9 +1554,10 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_PERFORMANCE_THREADS;Threads !PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show @@ -1604,7 +1597,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. !TP_BWMIX_CC_ENABLED;Adjust complementary color @@ -1636,11 +1629,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1651,6 +1640,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1670,8 +1660,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1680,14 +1668,13 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 !TP_COLORAPP_LABEL_SCENE;Scene Conditions !TP_COLORAPP_LABEL_VIEWING;Viewing Conditions +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) !TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors 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. @@ -1701,11 +1688,9 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1719,16 +1704,25 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1754,6 +1748,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORTONING_TWOBY;Special a* and b* !TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. !TP_COLORTONING_TWOSTD;Standard chroma +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEFRINGE_THRESHOLD;Threshold !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal @@ -1900,6 +1896,15 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. !TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection !TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1930,6 +1935,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACKS;Black Levels @@ -1961,7 +1967,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FALSECOLOR;False color suppression steps @@ -2016,10 +2022,10 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2057,7 +2063,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2309,6 +2315,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_WBALANCE_LAMP_HEADER;Lamp !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SOLUX47;Solux 4700K (vendor) !TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) !TP_WBALANCE_TEMPBIAS;AWB temperature bias diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index 9404a8a6b..4c4e727c1 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -280,7 +280,6 @@ PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File PREFERENCES_PSPATH;Adobe Photoshop installation directory PREFERENCES_SELECTLANG;選擇語言 -PREFERENCES_SELECTTHEME;Select theme PREFERENCES_SHOWBASICEXIF;顯示基本Exif資訊 PREFERENCES_SHOWDATETIME;顯示時間日期 PREFERENCES_SHTHRESHOLD;暗部不足闕值 @@ -340,7 +339,6 @@ TP_CROP_GTRULETHIRDS;1/3法則 TP_CROP_GUIDETYPE;輔助方式: TP_CROP_H;高 TP_CROP_LABEL;剪裁 -TP_CROP_SELECTCROP; 選擇預設 TP_CROP_W;寬 TP_CROP_X;x TP_CROP_Y;y @@ -986,13 +984,18 @@ TP_WBALANCE_TEMPERATURE;色溫 !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1093,10 +1096,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1129,17 +1128,17 @@ TP_WBALANCE_TEMPERATURE;色溫 !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1220,8 +1219,14 @@ TP_WBALANCE_TEMPERATURE;色溫 !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1238,8 +1243,8 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1255,7 +1260,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1267,8 +1271,8 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1314,7 +1318,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel @@ -1337,12 +1340,10 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1355,7 +1356,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1411,7 +1411,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1475,11 +1475,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1490,6 +1486,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1509,8 +1506,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1522,14 +1517,13 @@ TP_WBALANCE_TEMPERATURE;色溫 !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1549,11 +1543,9 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1567,16 +1559,25 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1609,6 +1610,8 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1826,10 +1829,16 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1872,6 +1881,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1905,7 +1915,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FALSECOLOR;False color suppression steps @@ -1964,10 +1974,10 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_RESIZE_FITBOX;Bounding Box !TP_RESIZE_FULLIMAGE;Full Image !TP_RESIZE_LANCZOS;Lanczos -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2005,7 +2015,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2281,6 +2291,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index caaba31bb..51873b391 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -811,9 +811,6 @@ IPTCPANEL_TITLE;Titulek IPTCPANEL_TITLEHINT;Vložte krátké, popisné a lidsky čitelné jméno obrázku. Například název souboru. IPTCPANEL_TRANSREFERENCE;Číslo úlohy IPTCPANEL_TRANSREFERENCEHINT;Zadejte číslo nebo identifikátor potřebný v pracovním postupu nebo pro sledování. -LENSPROFILE_CORRECTION_AUTOMATCH;Automatický dohledané korekční parametry -LENSPROFILE_CORRECTION_LCPFILE;LCP Soubor -LENSPROFILE_CORRECTION_MANUAL;Ruční korekční parametry LENSPROFILE_LENS_WARNING;Varování: crop factor použitý pro profilování objektivu je větší než crop factor fotoaparátu. Výsledek může být nesprávný. MAIN_BUTTON_FULLSCREEN;Celá obrazovka MAIN_BUTTON_NAVNEXT_TOOLTIP;Přejít k dalšímu obrázku relativnímu k obrázku otevřenému v editoru.\nZkratka: Shift-F4\n\nPřejít k dalšímu obrázku relativnímu k vybranému náhledu v prohlížeči souborů nebo na filmovém pásu:\nZkratka: F4 @@ -979,9 +976,9 @@ PARTIALPASTE_VIBRANCE;Živost PARTIALPASTE_VIGNETTING;Korekce vinětace PARTIALPASTE_WHITEBALANCE;Nastavení bílé PREFERENCES_ADD;Přidat +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Barva vodítek navigátoru PREFERENCES_APPLNEXTSTARTUP;vyžaduje restart aplikace PREFERENCES_AUTOMONPROFILE;Použít barevný profil hlavního monitoru z operačního systému -PREFERENCES_AUTOSAVE_TP_OPEN;Před ukončením automaticky uložit\nstav sbalení/rozbalení nástrojů. PREFERENCES_BATCH_PROCESSING;Dávkové zpracování PREFERENCES_BEHADDALL;Vše do 'Přidat' PREFERENCES_BEHADDALLHINT;Nastaví všechny parametry do módu Přidat.\nZměna parametrů v panelu dávkového zpracování se aplikuje jako rozdíl k uloženým hodnotám. @@ -1014,7 +1011,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Formát klíče PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Jméno PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Cesta k programu -PREFERENCES_CUTOVERLAYBRUSH;Barva masky ořezu/průhlednosti PREFERENCES_D50;Nastavení v hlavní nabídce PREFERENCES_D50_OLD;5000K PREFERENCES_D55;5500K @@ -1036,7 +1032,6 @@ PREFERENCES_EDITORCMDLINE;Vlastní příkazová řádka PREFERENCES_EDITORLAYOUT;Rozvržení editoru PREFERENCES_EXTERNALEDITOR;Externí editor PREFERENCES_FBROWSEROPTS;Volby prohlížeče souborů / náhledů -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Jednořádková lišta nástrojů v prohlížeči souborů\n(vypněte na nízkých rozlišeních) PREFERENCES_FILEFORMAT;Formát souboru PREFERENCES_FLATFIELDFOUND;Nalezeno PREFERENCES_FLATFIELDSDIR;Složka Flat Field souborů @@ -1093,7 +1088,6 @@ PREFERENCES_MONPROFILE;Výchozí barevný profil PREFERENCES_MONPROFILE_WARNOSX;Na MacOS je podporováno pouze sRGB. PREFERENCES_MULTITAB;Mód více karet editoru PREFERENCES_MULTITABDUALMON;Mód více karet editoru ve vlastním okně -PREFERENCES_NAVGUIDEBRUSH;Barva vodítek navigátoru PREFERENCES_NAVIGATIONFRAME;Navigátor PREFERENCES_OUTDIR;Výstupní složka PREFERENCES_OUTDIRFOLDER;Ulož do souboru @@ -1131,13 +1125,10 @@ PREFERENCES_PSPATH;Instalační složka Adobe Photoshop PREFERENCES_REMEMBERZOOMPAN;Zapamatovat si procento přiblížení a posun obrázku PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Zapamatovat si procento přiblížení a posun aktuálního obrázku a použít tyto hodnoty při otevírání nového obrázku.\n\nTato volba funguje pouze v režimu "Mód jedné karty editoru" a volba "Metoda demozajkování pro náhled při přiblížení menším než 100%" je nastavena na "Stejně jako v PP3". PREFERENCES_SAVE_TP_OPEN_NOW;Uložit stav sbalení/rozbalení nástrojů hned -PREFERENCES_SELECTFONT;Vyberte hlavní písmo -PREFERENCES_SELECTFONT_COLPICKER;Vybrat písmo pro Průzkumníka barev PREFERENCES_SELECTLANG;Volba jazyka -PREFERENCES_SELECTTHEME;Zvolit vzhled -PREFERENCES_SERIALIZE_TIFF_READ;Nastavení čtení Tiff -PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serializovat čtení tiff souborů -PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Povolení této volby může zvýšit výkon generování náhledů ve složkách obsahujících mnoho nezkomprimovaných tiff souborů. +PREFERENCES_SERIALIZE_TIFF_READ;Nastavení čtení TIFF +PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serializovat čtení TIFF souborů +PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Povolení této volby může zvýšit výkon generování náhledů ve složkách obsahujících mnoho nezkomprimovaných TIFF souborů. PREFERENCES_SET;Nastavit PREFERENCES_SHOWBASICEXIF;Zobrazovat základní Exif informace PREFERENCES_SHOWDATETIME;Zobrazovat datum a čas @@ -1157,7 +1148,6 @@ PREFERENCES_TAB_DYNAMICPROFILE;Pravidla dynamických profilů PREFERENCES_TAB_GENERAL;Obecné PREFERENCES_TAB_IMPROC;Zpracování obrázku PREFERENCES_TAB_SOUND;Zvuky -PREFERENCES_THEME;Vzhled PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Vložený JPEG náhled PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Obrázek k zobrazení PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutrální vykreslení raw @@ -1315,11 +1305,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Překlopit horizontálně. TP_COARSETRAF_TOOLTIP_ROTLEFT;Otočit doleva.\n\nZkratky:\n[ - režim více karet editoru,\nAlt-[- režim jedné karty editoru. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Otočit doprava.\n\nZkratky:\n] - režim více karet editoru,\nAlt-]- režim jedné karty editoru. TP_COARSETRAF_TOOLTIP_VFLIP;Překlopit vertikálně. -TP_COLORAPP_ADAPTSCENE;Absolutní jas scény -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Absolutní jas scény prostředí (cd/m²).\n 1) Vypočítáno z Exifu:\nRychlost závěrky - citlivost - clona - expoziční korekce fotoaparátu.\n 2) Vypočítáno z hodnoty raw bílého bodu a expoziční kompenzace Rawtherapee. -TP_COLORAPP_ADAPTVIEWING;Absolutní jas prohlížení (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Absolutní jas prostředí prohlížení\n(obvykle 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Pokud je povoleno (doporučeno), RawTherapee vypočítá optimální hodnotu z Exif dat.\nPokud si přejete zadat hodnotu ručně, nejprve zrušte zatržení tohoto pole. TP_COLORAPP_ALGO;Algoritmus TP_COLORAPP_ALGO_ALL;Vše TP_COLORAPP_ALGO_JC;Světlost + Barevnost (JC) @@ -1349,8 +1334,6 @@ TP_COLORAPP_CURVEEDITOR3;Barevná křivka TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Upravte barevnost, nasycení nebo pestrobarevnost.\n\nZobrazí histogram barevnosti (L*a*b*) před CIECAM02.\nPokud je volba "Zobrazit CIECAM02 histogramy výstupu v křivkách" povolena, zobrazí histogram C, S nebo M po CIECAM02 .\n\nC, S a M histogramy nejsou na hlavním panelu zobrazeny.\nHistogram konečného výsledku je zobrazen na hlavním panelu. TP_COLORAPP_DATACIE;CIECAM02 histogramy výstupu v křivkách TP_COLORAPP_DATACIE_TOOLTIP;Pokud je povoleno, zobrazuje histogram v CIECAM02 křivkách přibližné hodnoty/rozsahy po CIECAM02 úpravách J nebo Q, a C, S nebo M.\nVýběr neovlivňuje histogram na hlavním panelu.\n\nPokud je zakázáno, zobrazuje histogram v CIECAM02 křivkách L*a*b* hodnoty před CIECAM02 úpravami. -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Pokud je povoleno (doporučeno), RawTherapee vypočítá optimální hodnotu, jenž následně používá jak CAT02 tak i celý CIECAM02.\nZakažte, pokud si přejete zadat hodnotu ručně (doporučeny jsou hodnoty nad 65). -TP_COLORAPP_DEGREE_TOOLTIP;Míra CIE Chromatic Adaptation Transform 2002. TP_COLORAPP_FREE;Volná teplota + zelená + CAT02 + [výstup] TP_COLORAPP_GAMUT;Kontrola palety (L*a*b*) TP_COLORAPP_GAMUT_TOOLTIP;Povolí kontrolu palety v L*a*b* režimu. @@ -1368,8 +1351,6 @@ TP_COLORAPP_NEUTRAL;Obnovit TP_COLORAPP_NEUTRAL_TIP;Obnoví původní hodnoty u všech posuvníků a křivek. TP_COLORAPP_RSTPRO;Ochrana červených a pleťových tónů TP_COLORAPP_RSTPRO_TOOLTIP;Ochrana červených a pleťových tónů ovlivňuje posuvníky i křivky. -TP_COLORAPP_SHARPCIE;--nepoužito-- -TP_COLORAPP_SHARPCIE_TOOLTIP;--nepoužito-- TP_COLORAPP_SURROUND;Okolí TP_COLORAPP_SURROUND_AVER;Průměrné TP_COLORAPP_SURROUND_DARK;Tmavé @@ -1389,11 +1370,9 @@ TP_COLORAPP_TCMODE_SATUR;Nasycení TP_COLORAPP_TEMP_TOOLTIP;Pro výběr osvětlení vždy nastavte Tint=1.\n\nA barva=2856\nD50 barva=5003\nD55 barva=5503\nD65 barva=6504\nD75 barva=7504 TP_COLORAPP_TONECIE;Mapování tónů pomocí CIECAM02 TP_COLORAPP_TONECIE_TOOLTIP;Pokud je volba zakázána, probíhá mapování tónů v prostoru L*a*b*.\nPokud je volba povolena. probíhá mapování tónů pomocí CIECAM02.\nAby měla tato volba efekt, musí být povolen nástroj Mapování tónů. +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolutní jas prostředí prohlížení\n(obvykle 16cd/m²). TP_COLORAPP_WBCAM;WB [RT+CAT02] + [výstup] TP_COLORAPP_WBRT;WB [RT] + [výstup] -TP_COLORAPP_YB;Yb% (střední jas) -TP_COLORAPP_YBSCENE;Yb% (střední jas) -TP_COLORAPP_YBSCENE_TOOLTIP;Pokud je povolena automatika, Yb je vypočteno ze střední hodnoty jasu aktuálního obrázku TP_COLORTONING_AB;o C/L TP_COLORTONING_AUTOSAT;Automaticky TP_COLORTONING_BALANCE;Vyvážené @@ -1446,7 +1425,6 @@ TP_CROP_GUIDETYPE;Druh vodítek: TP_CROP_H;Výška TP_CROP_LABEL;Ořez TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Vyznačit výřez TP_CROP_W;Šířka TP_CROP_X;X TP_CROP_Y;Y @@ -1553,7 +1531,7 @@ TP_EXPOSURE_CURVEEDITOR2;Tónová křivka 2 TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Podívejte se prosím na článek "Exposure > Tone Curves" na RawPedii, kde se můžete naučit. jak pomocí dvou tónových křivek dosáhnout ten nejlepší výsledek. TP_EXPOSURE_EXPCOMP;Kompenzace expozice TP_EXPOSURE_HISTMATCHING;Automaticky přizpůsobená Tónová křivka -TP_EXPOSURE_HISTMATCHING_TOOLTIP;Automatické nastavení posuvníků a křivek (kromě kompenzace expozice) tak, aby bylo dosaženo co největší shody s vloženým Jpeg náhledem. +TP_EXPOSURE_HISTMATCHING_TOOLTIP;Automatické nastavení posuvníků a křivek (kromě kompenzace expozice) tak, aby bylo dosaženo co největší shody s vloženým JPEG náhledem. TP_EXPOSURE_LABEL;Expozice TP_EXPOSURE_SATURATION;Nasycení TP_EXPOSURE_TCMODE_FILMLIKE;Jako film @@ -1687,9 +1665,6 @@ TP_LENSGEOM_AUTOCROP;Automatický ořez TP_LENSGEOM_FILL;Automatické vyplnění TP_LENSGEOM_LABEL;Objektiv / Geometrie TP_LENSPROFILE_LABEL;Korekční profily objektivů -TP_LENSPROFILE_USECA;Korekce chromatické aberace -TP_LENSPROFILE_USEDIST;Korekce zkreslení -TP_LENSPROFILE_USEVIGN;Korekce vinětace TP_LOCALCONTRAST_AMOUNT;Míra TP_LOCALCONTRAST_DARKNESS;Úroveň tmavé TP_LOCALCONTRAST_LABEL;Místní kontrast @@ -1823,7 +1798,6 @@ TP_RESIZE_WIDTH;Šířka TP_RETINEX_CONTEDIT_HSL;HSV korekce histogramu TP_RETINEX_CONTEDIT_LAB;Histogram korekce L*a*b* TP_RETINEX_CONTEDIT_LH;Korekce odstínu -TP_RETINEX_CONTEDIT_MAP;Korekce masky TP_RETINEX_CURVEEDITOR_CD;L=f(L) TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Jas dle jasu L=f(L).\nUpraví raw data pro snížení výskytu halo efektu a vzniku artefaktů. TP_RETINEX_CURVEEDITOR_LH;Síla=f(O) @@ -1860,7 +1834,6 @@ TP_RETINEX_LABEL;Retinex TP_RETINEX_LABEL_MASK;Maska TP_RETINEX_LABSPACE;L*a*b* TP_RETINEX_LOW;Slabé -TP_RETINEX_MAP;Metoda masky TP_RETINEX_MAP_GAUS;Gaussova maska TP_RETINEX_MAP_MAPP;Ostrá maska (částečná vlnka) TP_RETINEX_MAP_MAPT;Ostrá maska (kompletní vlnka) @@ -2206,13 +2179,18 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !HISTORY_MSG_489;DRC - Detail !HISTORY_MSG_490;DRC - Amount !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -2279,18 +2257,25 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !ICCPROFCREATOR_SLOPE;Slope !ICCPROFCREATOR_TRC_PRESET;Tone response curve: !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift !PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: !PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_PERFORMANCE_THREADS;Threads !PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_TAB_PERFORMANCE;Performance @@ -2299,16 +2284,30 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !SAVEDLG_FILEFORMAT_FLOAT; floating-point !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -2319,7 +2318,17 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAW_2PASS;1-pass+fast !TP_RAW_4PASS;3-pass+fast @@ -2327,12 +2336,14 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !TP_RAW_BORDER;Border !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. +!TP_RETINEX_MAP;Method !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light @@ -2341,3 +2352,4 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression !TP_TM_FATTAL_THRESHOLD;Detail +!TP_WBALANCE_PICKER;Pick diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index aaa58fce2..beb4f2711 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -271,7 +271,6 @@ PREFERENCES_PROFILESAVECACHE;Gem bearbejdningsparametre i cache PREFERENCES_PROFILESAVEINPUT;Gem bearbejdningsparametre sammen med input-filen PREFERENCES_PSPATH;Installationsmappe til Adobe Photoshop PREFERENCES_SELECTLANG;Vælg sprog -PREFERENCES_SELECTTHEME;Vælg tema PREFERENCES_SHOWBASICEXIF;Vis grundlæggende exif-data PREFERENCES_SHOWDATETIME;Vis dato og tid PREFERENCES_SHTHRESHOLD;Tærskel for udbrændte skygger @@ -331,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Reglen om tredjedele TP_CROP_GUIDETYPE;Hjælpelinjer: TP_CROP_H;H TP_CROP_LABEL;Beskær -TP_CROP_SELECTCROP; Vælg beskæring TP_CROP_W;B TP_CROP_X;x TP_CROP_Y;y @@ -981,13 +979,18 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1088,10 +1091,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1125,17 +1124,17 @@ TP_WBALANCE_TEMPERATURE;Temperatur !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1217,8 +1216,14 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1235,8 +1240,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1252,7 +1257,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1264,8 +1268,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1311,7 +1315,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel @@ -1334,12 +1337,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1352,7 +1353,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1408,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1472,11 +1472,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1487,6 +1483,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1506,8 +1503,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1519,14 +1514,13 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1546,11 +1540,9 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1564,16 +1556,25 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1606,6 +1607,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1823,10 +1826,16 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1869,6 +1878,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1901,7 +1911,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1962,10 +1972,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2003,7 +2013,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2279,6 +2289,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 14debc30f..8cc1bc000 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -71,6 +71,8 @@ #70 25.07.2018 Korrekturen (TooWaBoo) RT 5.4 #71 28.09.2018 Korrekturen (TooWaBoo) RT 5.5 #72 05.10.2018 Korrekturen (TooWaBoo) RT 5.5 +#73 21.11.2018 Erweiterung (TooWaBoo) RT 5.5 +#74 24.11.2018 Erweiterung (TooWaBoo) RT 5.5 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -113,6 +115,10 @@ DYNPROFILEEDITOR_DELETE;Löschen DYNPROFILEEDITOR_EDIT;Ändern DYNPROFILEEDITOR_EDIT_RULE;Profilregel ändern DYNPROFILEEDITOR_ENTRY_TOOLTIP;Groß-/Kleinschreibung wird NICHT berücksichtigt.\nFür einen regulären Ausdruck benutzen Sie bitte\n"re:" als Prefix. +DYNPROFILEEDITOR_IMGTYPE_ANY;Alle +DYNPROFILEEDITOR_IMGTYPE_HDR;HDR +DYNPROFILEEDITOR_IMGTYPE_PS;Pixel-Shift +DYNPROFILEEDITOR_IMGTYPE_STD;Standard DYNPROFILEEDITOR_MOVE_DOWN;Runter DYNPROFILEEDITOR_MOVE_UP;Hoch DYNPROFILEEDITOR_NEW;Neu @@ -152,15 +158,15 @@ EXPORT_BYPASS_DEFRINGE;Farbsaum entfernen überspringen EXPORT_BYPASS_DIRPYRDENOISE;Rauschreduzierung überspringen EXPORT_BYPASS_DIRPYREQUALIZER;Detailebenenkontrast überspringen EXPORT_BYPASS_EQUALIZER;Waveletebenen überspringen -EXPORT_BYPASS_RAW_CA;CA-Korrektur überspringen [RAW] -EXPORT_BYPASS_RAW_CCSTEPS;Falschfarbenreduzierung überspringen\n[RAW] -EXPORT_BYPASS_RAW_DCB_ENHANCE;DCB-Verbesserungsstufen überspringen\n[RAW] -EXPORT_BYPASS_RAW_DCB_ITERATIONS;DCB-Interationen überspringen [RAW] -EXPORT_BYPASS_RAW_DF;Dunkelbild überspringen [RAW] -EXPORT_BYPASS_RAW_FF;Weißbild überspringen [RAW] -EXPORT_BYPASS_RAW_GREENTHRESH;Grün-Ausgleich überspringen [RAW] -EXPORT_BYPASS_RAW_LINENOISE;Zeilenrauschfilter überspringen [RAW] -EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;LMMSE-Verbesserungsstufen überspringen [RAW] +EXPORT_BYPASS_RAW_CA;CA-Korrektur überspringen +EXPORT_BYPASS_RAW_CCSTEPS;Falschfarbenreduzierung überspringen +EXPORT_BYPASS_RAW_DCB_ENHANCE;DCB-Verbesserungsstufen überspringen +EXPORT_BYPASS_RAW_DCB_ITERATIONS;DCB-Interationen überspringen +EXPORT_BYPASS_RAW_DF;Dunkelbild überspringen +EXPORT_BYPASS_RAW_FF;Weißbild überspringen +EXPORT_BYPASS_RAW_GREENTHRESH;Grün-Ausgleich überspringen +EXPORT_BYPASS_RAW_LINENOISE;Zeilenrauschfilter überspringen +EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;LMMSE-Verbesserungsstufen überspringen EXPORT_BYPASS_SHARPENEDGE;Kantenschärfung überspringen EXPORT_BYPASS_SHARPENING;Schärfung überspringen EXPORT_BYPASS_SHARPENMICRO;Mikrokontrast überspringen @@ -173,7 +179,7 @@ EXPORT_PIPELINE;Verarbeitungspipeline EXPORT_PUTTOQUEUEFAST; Zur Warteschlange “Schneller Export“ hinzufügen EXPORT_RAW_DMETHOD;Demosaikmethode EXPORT_USE_FAST_PIPELINE;Priorität Geschwindigkeit -EXPORT_USE_FAST_PIPELINE_TIP;Wendet alle Bearbeitungsschritte, im Gegensatz\nzu „Standard“ , auf das bereits skalierte Bild an.\nDadurch steigt die Verarbeitungsgeschwindigkeit\nauf Kosten der Qualität. +EXPORT_USE_FAST_PIPELINE_TIP;Wendet alle Bearbeitungsschritte, im Gegensatz\nzu „Standard“, auf das bereits skalierte Bild an.\nDadurch steigt die Verarbeitungsgeschwindigkeit\nauf Kosten der Qualität. EXPORT_USE_NORMAL_PIPELINE;Standard EXTPROGTARGET_1;RAW EXTPROGTARGET_2;Stapelverarbeitung beendet @@ -185,6 +191,8 @@ FILEBROWSER_AUTOFLATFIELD;Automatisches Weißbild FILEBROWSER_BROWSEPATHBUTTONHINT;Ausgewählten Pfad öffnen. FILEBROWSER_BROWSEPATHHINT;Einen Pfad eingeben:\nTaste:\nStrg + o Setzt den Cursor in das Eingabefeld\nEnter Öffnet den Pfad\nEsc Änderungen verwerfen\nUmschalt + Esc Eingabefeld verlassen\n\nSchnellnavigation:\nTaste:\n~ “Home“-Verzeichnis des Benutzers\n! Bilder-Verzeichnis des Benutzers FILEBROWSER_CACHE;Festplatten-Cache +FILEBROWSER_CACHECLEARFROMFULL;Alle zwischengespeicherte Profile löschen +FILEBROWSER_CACHECLEARFROMPARTIAL;Alle NICHT zwischengespeicherte Profile löschen FILEBROWSER_CLEARPROFILE;Profil löschen FILEBROWSER_COLORLABEL_TOOLTIP;Farbmarkierung\n\nTaste: Strg + Umschalt + 0 Ohne\nTaste: Strg + Umschalt + 1 Rot\nTaste: Strg + Umschalt + 2 Gelb\nTaste: Strg + Umschalt + 3 Grün\nTaste: Strg + Umschalt + 4 Blau\nTaste: Strg + Umschalt + 5 Violett FILEBROWSER_COPYPROFILE;Profil kopieren @@ -354,7 +362,7 @@ HISTORY_MSG_32;(Schärfung) - RLD\nDämpfung HISTORY_MSG_33;(Schärfung) - RLD\nIterationen HISTORY_MSG_34;(Objektivkorrektur)\nProfil - Verzeichnung HISTORY_MSG_35;(Objektivkorrektur)\nProfil - Vignettierung -HISTORY_MSG_36;(Objektivkorrektur)\nProfil - CA-Korrektur +HISTORY_MSG_36;(Objektivkorrektur)\nProfil - CA HISTORY_MSG_37;(Belichtung) - Auto HISTORY_MSG_38;(Weißabgleich) - Methode HISTORY_MSG_39;(Weißabgleich)\nFarbtemperatur @@ -790,12 +798,31 @@ HISTORY_MSG_485;(Objektivkorrektur)\nProfil HISTORY_MSG_486;(Objektivkorrektur)\nProfil - Kamera HISTORY_MSG_487;(Objektivkorrektur)\nProfil - Objektiv HISTORY_MSG_488;(Dynamikkompression) +HISTORY_MSG_489;(Dynamikkompression)\nDetails HISTORY_MSG_490;(Dynamikkompression)\nIntensität HISTORY_MSG_491;(Weißabgleich) HISTORY_MSG_492;(RGB-Kurven) HISTORY_MSG_493;(L*a*b*) HISTORY_MSG_CLAMPOOG;(Belichtung) - Farben\nauf Farbraum beschränken -HISTORY_MSG_COLORTONING_LABGRID_VALUE;(Farbanpassungen)\nL*a*b* - Farbkorrektur +HISTORY_MSG_COLORTONING_LABGRID_VALUE;(Farbanpassungen)\nL*a*b*-Farbkorrektur +HISTORY_MSG_COLORTONING_LABREGION_AB;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich +HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Kanal +HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - C-Maske +HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - H-Maske +HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Helligkeit +HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - L-Maske +HISTORY_MSG_COLORTONING_LABREGION_LIST;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Liste +HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Maskenunschärfe +HISTORY_MSG_COLORTONING_LABREGION_OFFSET;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Versatz +HISTORY_MSG_COLORTONING_LABREGION_POWER;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Verstärkung +HISTORY_MSG_COLORTONING_LABREGION_SATURATION;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Sättigung +HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Maske anzeigen +HISTORY_MSG_COLORTONING_LABREGION_SLOPE;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Steigung +HISTORY_MSG_DEHAZE_DEPTH;(Bildschleier entfernen)\nTiefe +HISTORY_MSG_DEHAZE_ENABLED;(Bildschleier entfernen) +HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;(Bildschleier entfernen)\nMaske anzeigen +HISTORY_MSG_DEHAZE_STRENGTH;(Bildschleier entfernen)\nIntensität +HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;(Sensor—Matrix)\nFarbinterpolation\nAuto-Kontrastschwelle HISTORY_MSG_DUALDEMOSAIC_CONTRAST;(Sensor-Matrix)\nFarbinterpolation\nKontrastschwelle HISTORY_MSG_HISTMATCHING;(Belichtung)\nAuto-Tonwertkurve HISTORY_MSG_ICM_OUTPUT_PRIMARIES;(Farbmanagement)\nAusgabeprofil\nVorlagen @@ -820,6 +847,7 @@ HISTORY_MSG_RAWCACORR_COLORSHIFT;(Sensor-Matrix)\nChromatische Aberration\nFarbv HISTORY_MSG_RAW_BORDER;(Sensor-Matrix)\nFarbinterpolation\nBildrand HISTORY_MSG_RESIZE_ALLOWUPSCALING;(Skalieren)\nHochskalieren zulassen HISTORY_MSG_SHARPENING_CONTRAST;(Schärfung)\nKontrastschwelle +HISTORY_MSG_SH_COLORSPACE;Farbraum HISTORY_MSG_SOFTLIGHT_ENABLED;(Weiches Licht) HISTORY_MSG_SOFTLIGHT_STRENGTH;(Weiches Licht)\nIntensität HISTORY_MSG_TM_FATTAL_ANCHOR;(Dynamikkompression)\nHelligkeitsverschiebung @@ -910,9 +938,6 @@ IPTCPANEL_TITLE;Titel IPTCPANEL_TITLEHINT;Geben Sie einen kurzen lesbaren Namen\nfür das Bild ein, z.B. den Dateinamen. IPTCPANEL_TRANSREFERENCE;Verarbeitungs-ID IPTCPANEL_TRANSREFERENCEHINT;Geben Sie eine Kennung zur Kontrolle oder\nVerfolgung des Arbeitsablaufes ein. -LENSPROFILE_CORRECTION_AUTOMATCH;Automatisch (Lensfun) -LENSPROFILE_CORRECTION_LCPFILE;LCP-Datei -LENSPROFILE_CORRECTION_MANUAL;Benutzerdefiniert (Lensfun) LENSPROFILE_LENS_WARNING;Warnung: Der Cropfaktor des Profils entspricht nicht dem des Objektivs.\nDies kann zu einem fehlerhaften Ergebnis führen. MAIN_BUTTON_FULLSCREEN;Vollbild\nTaste: F11 MAIN_BUTTON_ICCPROFCREATOR;ICC-Profil erstellen. @@ -985,7 +1010,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;Vorschau Fokusmaske\nTaste: Umschalt + f MAIN_TOOLTIP_PREVIEWG;Vorschau Grün-Kanal\nTaste: g MAIN_TOOLTIP_PREVIEWL;Vorschau Helligkeit\nTaste: v\n\n0.299·R + 0.587·G + 0.114·B MAIN_TOOLTIP_PREVIEWR;Vorschau Rot-Kanal\nTaste: r -MAIN_TOOLTIP_PREVIEWSHARPMASK;Schärfungs-Kontroll-Maske ein-/ausschalten.\n\nFunktioniert nur bei aktivierter Schärfung\nund Zoom >= 100%. +MAIN_TOOLTIP_PREVIEWSHARPMASK;Schärfungs-Kontroll-Maske ein-/ausschalten.\n\nFunktioniert nur bei aktivierter Schärfung\nund Zoom >= 100%.\nTaste: p MAIN_TOOLTIP_QINFO;Bildinformationen ein-/ausblenden.\nTaste: i MAIN_TOOLTIP_SHOWHIDELP1;Linkes Bedienfeld ein-/ausblenden.\nTaste: l MAIN_TOOLTIP_SHOWHIDERP1;Rechtes Bedienfeld ein-/ausblenden.\nTaste: Alt + l @@ -1023,6 +1048,7 @@ PARTIALPASTE_CROP;Ausschnitt PARTIALPASTE_DARKFRAMEAUTOSELECT;Dunkelbild: Automatische Auswahl PARTIALPASTE_DARKFRAMEFILE;Dunkelbild: Datei PARTIALPASTE_DEFRINGE;Farbsaum entfernen (Defringe) +PARTIALPASTE_DEHAZE;Bildschleier entfernen PARTIALPASTE_DETAILGROUP;Detailparameter PARTIALPASTE_DIALOGLABEL;Selektives Einfügen des Bearbeitungsprofils PARTIALPASTE_DIRPYRDENOISE;Rauschreduzierung @@ -1088,6 +1114,12 @@ PARTIALPASTE_VIGNETTING;Vignettierungskorrektur PARTIALPASTE_WAVELETGROUP;Wavelet PARTIALPASTE_WHITEBALANCE;Weißabgleich PREFERENCES_ADD;HINZU +PREFERENCES_APPEARANCE;Oberflächendesign (erfordert Neustart) +PREFERENCES_APPEARANCE_COLORPICKERFONT;Schriftart Farbwähler +PREFERENCES_APPEARANCE_CROPMASKCOLOR;Farbe/Transparenz für Schnittmaske +PREFERENCES_APPEARANCE_MAINFONT;Schriftart: +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Farbe der Navigationshilfe +PREFERENCES_APPEARANCE_THEME;Oberflächendesign PREFERENCES_APPLNEXTSTARTUP;erfordert Neustart PREFERENCES_AUTOMONPROFILE;Automatisch das für den aktuellen Monitor festgelegte Profil verwenden PREFERENCES_AUTOSAVE_TP_OPEN;Werkzeugstatus vor dem Beenden automatisch speichern @@ -1098,13 +1130,14 @@ PREFERENCES_BEHAVIOR;Verhalten PREFERENCES_BEHSETALL;Alle setzen PREFERENCES_BEHSETALLHINT;Setzt alle Parameter auf Setzen.\nAnpassungen der Parameter in der Hintergrundstapelverarbeitung werden als Absolut zu den gespeicherten Werten interpretiert. PREFERENCES_BLACKBODY;Wolfram +PREFERENCES_CACHECLEAR;Löschen +PREFERENCES_CACHECLEAR_ALL;Alle Dateien im Zwischenspeicher löschen: +PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Alle Dateien im Zwischenspeicher löschen mit Ausnahme der Bearbeitungsprofile: +PREFERENCES_CACHECLEAR_ONLYPROFILES;Alle Bearbeitungsprofile im Zwischenspeicher löschen: +PREFERENCES_CACHECLEAR_SAFETY;Nur Dateien im Zwischenspeicher werden gelöscht. Bearbeitungsprofile im Bildordner bleiben unberührt. PREFERENCES_CACHEMAXENTRIES;Maximale Anzahl der Miniaturbilder im Festplatten-Cache PREFERENCES_CACHEOPTS;Einstellungen des Festplatten-Cache für Miniaturbilder PREFERENCES_CACHETHUMBHEIGHT;Maximale Höhe der Miniaturbilder -PREFERENCES_CIEART;CIECAM02-Optimierung -PREFERENCES_CIEART_FRAME;CIECAM02-spezifische Einstellungen -PREFERENCES_CIEART_LABEL;Einfache statt doppelte Genauigkeit -PREFERENCES_CIEART_TOOLTIP;Wenn aktiviert, werden CIECAM02-Berechnungen mit einfacher Genauigkeit statt doppelter durchgeführt. Dadurch wird der Vorgang etwas beschleunigt. Die Qualität nimmt jedoch geringfügig ab. PREFERENCES_CLIPPINGIND;Anzeige zu heller/dunkler Bereiche PREFERENCES_CLUTSCACHE;HaldCLUT-Zwischenspeicher PREFERENCES_CLUTSCACHE_LABEL;Maximale Anzahl CLUTs im Zwischenspeicher @@ -1127,7 +1160,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Format PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;Tag-ID PREFERENCES_CUSTPROFBUILDPATH;Anwendungspfad -PREFERENCES_CUTOVERLAYBRUSH;Farbe/Transparenz für Schnittmaske PREFERENCES_D50;5000K PREFERENCES_D50_OLD;5000K PREFERENCES_D55;5500K @@ -1149,7 +1181,7 @@ PREFERENCES_EDITORCMDLINE;Benutzerdefinierte Befehlszeile PREFERENCES_EDITORLAYOUT;Editor-Layout PREFERENCES_EXTERNALEDITOR;Externer Editor PREFERENCES_FBROWSEROPTS;Bildinformationen und Miniaturbilder -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Einzeilige Toolbar\n(Bei geringer Bildschirmauflösung deaktivieren) +PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Einzeilige Toolbar PREFERENCES_FILEFORMAT;Dateiformat PREFERENCES_FLATFIELDFOUND;Gefunden PREFERENCES_FLATFIELDSDIR;Weißbild-Verzeichnis @@ -1181,7 +1213,7 @@ PREFERENCES_HISTOGRAM_TOOLTIP;Wenn aktiviert, wird das Arbeitsprofil für die Da PREFERENCES_HLTHRESHOLD;Lichter - Schwelle PREFERENCES_ICCDIR;ICC-Profile-Verzeichnis PREFERENCES_IMG_RELOAD_NEEDED;Änderungen werden nur auf neu geöffnete Bilder angewendet -PREFERENCES_IMPROCPARAMS;Standard-Bildverarbeitungsparameter +PREFERENCES_IMPROCPARAMS;Standard-Bearbeitungsprofile PREFERENCES_INSPECT_LABEL;Bildzwischenspeicher PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximale Anzahl Bilder im Zwischenspeicher PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Legt die maximale Anzahl Bilder fest, die im Zwischenspeicher gehalten werden, wenn man in der Dateiverwaltung mit der Maus über ein Bild fährt.\n\nAuf Systemen mit nicht mehr als 2GB RAM, sollte der Wert nicht größer als 2 gewählt werden. @@ -1206,7 +1238,6 @@ PREFERENCES_MONPROFILE;Standardfarbprofil PREFERENCES_MONPROFILE_WARNOSX;Aufgrund einer macOS-Limitierung wird nur sRGB unterstützt. PREFERENCES_MULTITAB;Multi-Reitermodus PREFERENCES_MULTITABDUALMON;Multi-Reitermodus (auf zweitem Monitor, wenn verfügbar) -PREFERENCES_NAVGUIDEBRUSH;Farbe der Navigationshilfe PREFERENCES_NAVIGATIONFRAME;Navigation PREFERENCES_OUTDIR;Ausgabeverzeichnis PREFERENCES_OUTDIRFOLDER;In dieses Verzeichnis speichern @@ -1234,9 +1265,9 @@ PREFERENCES_PROFILEHANDLING;Behandlung der Bearbeitungsprofile PREFERENCES_PROFILELOADPR;Priorität der Profile beim Laden PREFERENCES_PROFILEPRCACHE;Bearbeitungsprofil im Festplatten-Cache PREFERENCES_PROFILEPRFILE;Bearbeitungsprofil welches dem geladenen Bild beiliegt (Sidecar) -PREFERENCES_PROFILESAVEBOTH;Verarbeitungsparameter im Festplatten-Cache und zusammen mit dem Bild speichern -PREFERENCES_PROFILESAVECACHE;Verarbeitungsparameter im Festplatten-Cache speichern -PREFERENCES_PROFILESAVEINPUT;Verarbeitungsparameter zusammen mit dem Bild speichern (Sidecar) +PREFERENCES_PROFILESAVEBOTH;Bearbeitungsprofile im Festplatten-Cache und zusammen mit dem Bild speichern +PREFERENCES_PROFILESAVECACHE;Bearbeitungsprofile im Festplatten-Cache speichern +PREFERENCES_PROFILESAVEINPUT;Bearbeitungsprofile zusammen mit dem Bild speichern (Sidecar) PREFERENCES_PROFILESAVELOCATION;Speicherort der Profile PREFERENCES_PROFILE_NONE;Kein Farbprofil PREFERENCES_PROPERTY;Eigenschaft @@ -1246,10 +1277,7 @@ PREFERENCES_PSPATH;Adobe Photoshop Installationsverzeichnis PREFERENCES_REMEMBERZOOMPAN;Zoom und Bildposition merken PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Öffnen eines neuen Bildes mit den Zoom- und Positionswerten\ndes vorangegangenen Bildes.\n\nFunktioniert nur unter folgenden Bedingungen:\nEin-Reitermodus aktiv\n“Demosaikmethode für 100%-Ansicht“ muss auf “Wie im Bild-\nverarbeitungsprofil vorgegeben“ eingestellt sein. PREFERENCES_SAVE_TP_OPEN_NOW;Werkzeugstatus jetzt speichern -PREFERENCES_SELECTFONT;Schriftart: -PREFERENCES_SELECTFONT_COLPICKER;Schriftart Farbwähler PREFERENCES_SELECTLANG;Sprache -PREFERENCES_SELECTTHEME;Oberflächendesign PREFERENCES_SERIALIZE_TIFF_READ;TIFF-Bilder PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialisiertes Lesen von TIFF-Bildern verwenden PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Beim Arbeiten mit Ordnern voll unkomprimierter TIFF-Bilder, kann diese Einstellung das Generieren von Miniaturbildern deutlich beschleunigen. @@ -1273,7 +1301,6 @@ PREFERENCES_TAB_GENERAL;Allgemein PREFERENCES_TAB_IMPROC;Bildbearbeitung PREFERENCES_TAB_PERFORMANCE;Performance PREFERENCES_TAB_SOUND;Klänge -PREFERENCES_THEME;Oberflächendesign (erfordert Neustart) PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Eingebundenes JPEG PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Bildanzeige PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutrales RAW-Bild @@ -1340,7 +1367,7 @@ SAVEDLG_PUTTOQUEUE;Zur Warteschlange hinzufügen SAVEDLG_PUTTOQUEUEHEAD;An den Anfang der Warteschlange hinzufügen SAVEDLG_PUTTOQUEUETAIL;An das Ende der Warteschlange hinzufügen SAVEDLG_SAVEIMMEDIATELY;Sofort speichern -SAVEDLG_SAVESPP;Verarbeitungsparameter mit dem Bild speichern +SAVEDLG_SAVESPP;Bearbeitungsprofile mit dem Bild speichern SAVEDLG_SUBSAMP;Komprimierung SAVEDLG_SUBSAMP_1;Beste Kompression SAVEDLG_SUBSAMP_2;Ausgeglichen @@ -1437,11 +1464,7 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Horizontal spiegeln. TP_COARSETRAF_TOOLTIP_ROTLEFT;Nach links drehen.\nTaste: [ TP_COARSETRAF_TOOLTIP_ROTRIGHT;Nach rechts drehen.\nTaste: ] TP_COARSETRAF_TOOLTIP_VFLIP;Vertikal spiegeln. -TP_COLORAPP_ADAPTSCENE;Luminanz (cd/m²) -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Absolute Luminanz der Szenenleuchstärket\n(normalerweise 2000cd/m²). -TP_COLORAPP_ADAPTVIEWING;Luminanz (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Absolute Luminanz der Betrachtungsumgebung\n(normalerweise 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Wenn aktiviert (empfohlen), werden die optimalen\nWerte aus den Exif-Daten automatisch berechnet. +TP_COLORAPP_ABSOLUTELUMINANCE;Absolute Luminanz TP_COLORAPP_ALGO;Algorithmus TP_COLORAPP_ALGO_ALL;Alle TP_COLORAPP_ALGO_JC;Helligkeit + Buntheit (JH) @@ -1452,6 +1475,7 @@ TP_COLORAPP_BADPIXSL;Hot / Bad-Pixelfilter TP_COLORAPP_BADPIXSL_TOOLTIP;Unterdrückt “Hot / Bad“-Pixel\n\n0 = keine Auswirkung\n1 = Mittel\n2 = Gaussian TP_COLORAPP_BRIGHT;Helligkeit (Q) TP_COLORAPP_BRIGHT_TOOLTIP;Helligkeit in CIECAM02 berücksichtigt die Weißintensität und unterscheidet sich von L*a*b* und RGB-Helligkeit. +TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;Bei manueller Einstellung werden Werte über 65 empfohlen. TP_COLORAPP_CHROMA;Buntheit (H) TP_COLORAPP_CHROMA_M;Farbigkeit (M) TP_COLORAPP_CHROMA_M_TOOLTIP;Die Farbigkeit in CIECAM02 unterscheidet sich\nvon L*a*b*- und RGB-Farbigkeit. @@ -1471,8 +1495,6 @@ TP_COLORAPP_CURVEEDITOR3;Farbkurve TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Korrigiert Buntheit, Sättigung oder Farbigkeit.\n\nZeigt das Histogramm der Chromatizität (L*a*b* ) VOR den CIECAM02-Änderungen an.\nWenn "CIECAM02-Ausgabe-Histogramm in Kurven anzeigen" aktiviert ist, wird das Histogramm von C, S oder M NACH den CIECAM02-Änderungen angezeigt.\n\nC, S und M werden nicht im Haupt-Histogramm angezeigt.\nFür die endgültige Ausgabe verwenden Sie das Haupt-Histogramm. TP_COLORAPP_DATACIE;CIECAM02-Ausgabe-Histogramm in\nKurven anzeigen TP_COLORAPP_DATACIE_TOOLTIP;Wenn aktiviert, zeigen die Histogramme\nder CIECAM02-Kurven die angenäherten\nWerte/Bereiche für J oder Q und C, S oder M\nNACH den CIECAM02-Anpassungen an. Das\nbetrifft nicht das Haupt-Histogramm.\n\nWenn deaktiviert, zeigen die Histogramme\nder CIECAM02-Kurven die L*a*b*-Werte\nVOR den CIECAM02-Anpassungen an. -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Wenn aktiviert (empfohlen), wird ein optimaler\nWert berechnet, der von CAT02 und CIECAM02\nverwendet wird.\nUm den Wert manuell zu setzen, muss die Option\ndeaktiviert sein (Werte über 64 sind empfohlen). -TP_COLORAPP_DEGREE_TOOLTIP;Umfang der “CIE Chromatic Adaptation Transform 2002“. TP_COLORAPP_FREE;Farbtemperatur + Tönung + CAT02 + [Ausgabe] TP_COLORAPP_GAMUT;Gamutkontrolle (L*a*b*) TP_COLORAPP_GAMUT_TOOLTIP;Gamutkontrolle im L*a*b*-Modus erlauben. @@ -1484,14 +1506,13 @@ TP_COLORAPP_LABEL_SCENE;Umgebungsbedingungen (Szene) TP_COLORAPP_LABEL_VIEWING;Betrachtungsbedingungen TP_COLORAPP_LIGHT;Helligkeit (J) TP_COLORAPP_LIGHT_TOOLTIP;Helligkeit in CIECAM02 unterscheidet sich\nvon L*a*b* und RGB Helligkeit. +TP_COLORAPP_MEANLUMINANCE;Mittlere Luminanz (Yb%) TP_COLORAPP_MODEL;Weißpunktmodell TP_COLORAPP_MODEL_TOOLTIP;Weißabgleich [RT] + [Ausgabe]:\nRT's Weißabgleich wird für die Szene verwendet,\nCIECAM02 auf D50 gesetzt und der Weißabgleich\ndes Ausgabegerätes kann unter:\nEinstellungen > Farb-Management\neingestellt werden.\n\nWeißabgleich [RT+CAT02] + [Ausgabe]:\nRT's Weißabgleich wird für CAT02 verwendet und\nder Weißabgleich des Ausgabegerätes kann unter\nEinstellungen > Farb-Management\neingestellt werden. TP_COLORAPP_NEUTRAL;Zurücksetzen TP_COLORAPP_NEUTRAL_TIP;Setzt alle CIECAM02-Parameter auf Vorgabewerte zurück. TP_COLORAPP_RSTPRO;Hautfarbtöne schützen TP_COLORAPP_RSTPRO_TOOLTIP;Hautfarbtöne schützen\nWirkt sich auf Regler und Kurven aus. -TP_COLORAPP_SHARPCIE;--unused-- -TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- TP_COLORAPP_SURROUND;Umgebung TP_COLORAPP_SURROUND_AVER;Durchschnitt TP_COLORAPP_SURROUND_DARK;Dunkel @@ -1511,11 +1532,9 @@ TP_COLORAPP_TCMODE_SATUR;Sättigung (S) TP_COLORAPP_TEMP_TOOLTIP;Um eine Farbtemperatur auszuwählen\nsetzen Sie die Tönung immer auf "1".\nA Temp=2856\nD50 Temp=5003\nD55 Temp=5503\nD65 Temp=6504\nD75 Temp=7504 TP_COLORAPP_TONECIE;Tonwertkorrektur mittels\nCIECAM02-Helligkeit (Q) TP_COLORAPP_TONECIE_TOOLTIP;Wenn diese Option ausgeschaltet ist, wird die Tonwertkorrektur im L*a*b*-Farbraum durchgeführt.\nWenn die Option eingeschaltet ist, wird CIECAM02 für die Tonwertkorrektur verwendet. Das Werkzeug Tonwertkorrektur muss aktiviert sein, damit diese Option berücksichtigt wird. +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute Luminanz der Betrachtungsumgebung\n(normalerweise 16cd/m²). TP_COLORAPP_WBCAM;[RT+CAT02] + [Ausgabe] TP_COLORAPP_WBRT;[RT] + [Ausgabe] -TP_COLORAPP_YB;Yb% (Ø Luminanz) -TP_COLORAPP_YBSCENE;Yb% (Ø Luminanz) -TP_COLORAPP_YBSCENE_TOOLTIP;Wenn aktiviert, wird der Durchschnittswert der Luminanz berechnet. TP_COLORTONING_AB;o C/L TP_COLORTONING_AUTOSAT;Automatisch TP_COLORTONING_BALANCE;Farbausgleich @@ -1527,8 +1546,27 @@ TP_COLORTONING_HIGHLIGHT;Lichter TP_COLORTONING_HUE;Farbton TP_COLORTONING_LAB;L*a*b*-Überlagerung TP_COLORTONING_LABEL;Farbanpassungen -TP_COLORTONING_LABGRID;L*a*b* - Farbkorrektur +TP_COLORTONING_LABGRID;L*a*b*-Farbkorrektur TP_COLORTONING_LABGRID_VALUES;HL: a=%1, b=%2\nS: a=%3, b=%4 +TP_COLORTONING_LABREGIONS;L*a*b*-Farbkorrektur Bereiche +TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +TP_COLORTONING_LABREGION_CHANNEL;Kanal +TP_COLORTONING_LABREGION_CHANNEL_ALL;Alle +TP_COLORTONING_LABREGION_CHANNEL_B;Blau +TP_COLORTONING_LABREGION_CHANNEL_G;Grün +TP_COLORTONING_LABREGION_CHANNEL_R;Rot +TP_COLORTONING_LABREGION_CHROMATICITYMASK;C +TP_COLORTONING_LABREGION_HUEMASK;H +TP_COLORTONING_LABREGION_LIGHTNESS;Helligkeit +TP_COLORTONING_LABREGION_LIGHTNESSMASK;L +TP_COLORTONING_LABREGION_LIST_TITLE;Farbkorrektur +TP_COLORTONING_LABREGION_MASK;Maske +TP_COLORTONING_LABREGION_MASKBLUR;Maskenunschärfe +TP_COLORTONING_LABREGION_OFFSET;Versatz +TP_COLORTONING_LABREGION_POWER;Verstärkung +TP_COLORTONING_LABREGION_SATURATION;Sättigung +TP_COLORTONING_LABREGION_SHOWMASK;Maske anzeigen +TP_COLORTONING_LABREGION_SLOPE;Steigung TP_COLORTONING_LUMA;Luminanz TP_COLORTONING_LUMAMODE;Luminanz schützen TP_COLORTONING_LUMAMODE_TOOLTIP;Wenn aktiviert, wird die Luminanz der Farben Rot, Grün, Cyan, Blau... geschützt. @@ -1567,16 +1605,21 @@ TP_CROP_GTTRIANGLE2;Goldenes Dreieck 2 TP_CROP_GUIDETYPE;Hilfslinien: TP_CROP_H;Höhe TP_CROP_LABEL;Ausschnitt -TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Ausschnitt wählen +TP_CROP_PPI;PPI = +TP_CROP_RESETCROP;Zurücksetzen +TP_CROP_SELECTCROP;Ausschnitt TP_CROP_W;Breite -TP_CROP_X;x -TP_CROP_Y;y +TP_CROP_X;Links +TP_CROP_Y;Oben TP_DARKFRAME_AUTOSELECT;Automatische Auswahl TP_DARKFRAME_LABEL;Dunkelbild TP_DEFRINGE_LABEL;Farbsaum entfernen (Defringe) TP_DEFRINGE_RADIUS;Radius TP_DEFRINGE_THRESHOLD;Schwelle +TP_DEHAZE_DEPTH;Tiefe +TP_DEHAZE_LABEL;Bildschleier entfernen +TP_DEHAZE_SHOW_DEPTH_MAP;Maske anzeigen +TP_DEHAZE_STRENGTH;Intensität TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto-Multizonen TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatisch Global TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Bewertung des Farbrauschens.\nDie Bewertung ist ungenau und sehr subjektiv! @@ -1815,10 +1858,16 @@ TP_LABCURVE_RSTPRO_TOOLTIP;Kann mit dem Chromatizitätsregler und\nder CC-Kurve TP_LENSGEOM_AUTOCROP;Auto-Schneiden TP_LENSGEOM_FILL;Auto-Füllen TP_LENSGEOM_LABEL;Objektivkorrekturen +TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatisch (Lensfun) +TP_LENSPROFILE_CORRECTION_LCPFILE;LCP-Datei +TP_LENSPROFILE_CORRECTION_MANUAL;Benutzerdefiniert (Lensfun) TP_LENSPROFILE_LABEL;Objektivkorrekturprofil -TP_LENSPROFILE_USECA;CA korrigieren -TP_LENSPROFILE_USEDIST;Verzeichnung korrigieren -TP_LENSPROFILE_USEVIGN;Vignettierung korrigieren +TP_LENSPROFILE_LENS_WARNING;Achtung: Der Crop-Faktor des Profils entspricht\nnicht dem der Kamera.\nDie Ergebnisse sind möglicherweise falsch. +TP_LENSPROFILE_MODE_HEADER;Profil auswählen +TP_LENSPROFILE_USE_CA;CA +TP_LENSPROFILE_USE_GEOMETRIC;Verzeichnung +TP_LENSPROFILE_USE_HEADER;Korrektur auswählen +TP_LENSPROFILE_USE_VIGNETTING;Vignettierung TP_LOCALCONTRAST_AMOUNT;Intensität TP_LOCALCONTRAST_DARKNESS;Dunkle Bereiche TP_LOCALCONTRAST_LABEL;Lokaler Kontrast @@ -1859,8 +1908,9 @@ TP_PREPROCESS_PDAFLINESFILTER;PDAF-Zeilenfilter TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Minimiert Streifenrauschen, das bei Gegenlichtaufnahmen mit\nsichtbaren Flares einiger spiegellosen Sony-Kameras entsteht. TP_PRSHARPENING_LABEL;Nach Skalierung schärfen TP_PRSHARPENING_TOOLTIP;Schärft das Bild nach der Größenänderung.\nFunktioniert nur mit der Methode “Lanczos“.\nDas Ergebnis wird nicht in RawTherapee\nangezeigt.\n\nWeitere Informationen finden Sie auf “RawPedia“. -TP_RAWCACORR_AUTO;Automatische Korrektur +TP_RAWCACORR_AUTO;Autokorrektur TP_RAWCACORR_AUTOIT;Iterationen +TP_RAWCACORR_AUTOIT_TOOLTIP;Diese Einstellung ist verfügbar, wenn "Autokorrektur" aktiviert ist.\nDie Autokorrektur ist konservativ, d.h. sie korrigiert häufig nicht alle\nchromatischen Aberrationen. Um die verbleibenden chromatischen\nAberrationen zu korrigieren, können Sie bis zu fünf Iterationen\nverwenden. Jede Iteration verringert die verbleibende chromatische\nAberration auf Kosten zusätzlicher Verarbeitungszeit. TP_RAWCACORR_AVOIDCOLORSHIFT;Farbverschiebungen vermeiden TP_RAWCACORR_CABLUE;Blau TP_RAWCACORR_CARED;Rot @@ -1893,6 +1943,8 @@ TP_RAW_DMETHOD;Methode TP_RAW_DMETHOD_PROGRESSBAR;%1 verarbeitet TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaikoptimierung TP_RAW_DMETHOD_TOOLTIP;IGV und LMMSE sind speziel für High-ISO-Aufnahmen um die\nRauschreduzierung zu unterstützen ohne zu Maze-Mustern,\nPosterisierung oder einem ausgewaschenen Look zu führen.\n\nPixel-Shift ist für “Pentax Pixel-Shift“-Dateien. Für "Nicht-Pixel-\nShift"-Dateien wird automatisch AMaZE verwendet. +TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto-Kontrastschwelle +TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;Wenn das Kontrollkästchen aktiviert ist (empfohlen), berechnet\nRawTherapee einen optimalen Wert auf der Grundlage homogener\nBereiche im Bild. Wenn kein homogener Bereich vorhanden ist oder\ndas Bild zu sehr rauscht, wird der Wert auf 0 gesetzt. TP_RAW_DUALDEMOSAICCONTRAST;Kontrastschwelle TP_RAW_EAHD;EAHD TP_RAW_FALSECOLOR;Falschfarbenreduzierung @@ -2108,6 +2160,7 @@ TP_SOFTLIGHT_STRENGTH;Intensität TP_TM_FATTAL_AMOUNT;Intensität TP_TM_FATTAL_ANCHOR;Helligkeitsverschiebung TP_TM_FATTAL_LABEL;Dynamikkompression +TP_TM_FATTAL_THRESHOLD;Details TP_VIBRANCE_AVOIDCOLORSHIFT;Farbverschiebungen vermeiden TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Hautfarbtöne @@ -2329,6 +2382,7 @@ TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 TP_WBALANCE_LED_HEADER;LED TP_WBALANCE_LED_LSI;LSI Lumelex 2040 TP_WBALANCE_METHOD;Methode +TP_WBALANCE_PICKER;Farbwähler TP_WBALANCE_SHADE;Schatten TP_WBALANCE_SIZE;Größe: TP_WBALANCE_SOLUX35;Solux 3500K @@ -2351,51 +2405,3 @@ ZOOMPANEL_ZOOMFITSCREEN;An Bildschirm anpassen.\nTaste: Alt + f ZOOMPANEL_ZOOMIN;Hineinzoomen\nTaste: + ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!DYNPROFILEEDITOR_IMGTYPE_ANY;Any -!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR -!DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift -!DYNPROFILEEDITOR_IMGTYPE_STD;Standard -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!HISTORY_MSG_489;DRC - Detail -!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask -!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask -!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness -!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask -!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List -!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask -!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth -!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal -!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map -!HISTORY_MSG_DEHAZE_STRENGTH;Dehaze - Strength -!HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold -!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace -!PARTIALPASTE_DEHAZE;Haze removal -!PREFERENCES_CACHECLEAR;Clear -!PREFERENCES_CACHECLEAR_ALL;Clear all cached files: -!PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: -!PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: -!PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions -!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 -!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C -!TP_COLORTONING_LABREGION_HUEMASK;H -!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness -!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L -!TP_COLORTONING_LABREGION_LIST_TITLE;Correction -!TP_COLORTONING_LABREGION_MASK;Mask -!TP_COLORTONING_LABREGION_SATURATION;Saturation -!TP_COLORTONING_LABREGION_SHOWMASK;Show mask -!TP_DEHAZE_DEPTH;Depth -!TP_DEHAZE_LABEL;Haze Removal -!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map -!TP_DEHAZE_STRENGTH;Strength -!TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). -!TP_TM_FATTAL_THRESHOLD;Detail diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 791a913ee..648eca675 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -30,30 +30,30 @@ HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Colour correction HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid colour shift HISTORY_MSG_SH_COLORSPACE;S/H - Colourspace MAIN_TAB_COLOR;Colour -MAIN_TOOLTIP_BACKCOLOR0;Background colour of the preview: Theme-based\nShortcut: 9 -MAIN_TOOLTIP_BACKCOLOR1;Background colour of the preview: Black\nShortcut: 9 -MAIN_TOOLTIP_BACKCOLOR2;Background colour of the preview: White\nShortcut: 9 -MAIN_TOOLTIP_BACKCOLOR3;Background colour of the preview: Middle grey\nShortcut: 9 +MAIN_TOOLTIP_BACKCOLOR0;Background colour of the preview: theme-based\nShortcut: 9 +MAIN_TOOLTIP_BACKCOLOR1;Background colour of the preview: black\nShortcut: 9 +MAIN_TOOLTIP_BACKCOLOR2;Background colour of the preview: white\nShortcut: 9 +MAIN_TOOLTIP_BACKCOLOR3;Background colour of the preview: middle grey\nShortcut: 9 PARTIALPASTE_COLORGROUP;Colour Related Settings PARTIALPASTE_COLORTONING;Colour toning PARTIALPASTE_ICMSETTINGS;Colour management settings PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid colour shift PARTIALPASTE_RAW_FALSECOLOR;False colour suppression +PREFERENCES_APPEARANCE_COLORPICKERFONT;Colour picker font +PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask colour +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide colour PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor colour profile PREFERENCES_BEHAVIOR;Behaviour -PREFERENCES_CUTOVERLAYBRUSH;Crop mask colour/transparency PREFERENCES_ICCDIR;Directory containing colour profiles PREFERENCES_INTENT_ABSOLUTE;Absolute Colourimetric PREFERENCES_INTENT_RELATIVE;Relative Colourimetric PREFERENCES_MENUGROUPLABEL;Group "Colour label" PREFERENCES_MONPROFILE;Default colour profile -PREFERENCES_NAVGUIDEBRUSH;Navigator guide colour PREFERENCES_PRTPROFILE;Colour profile -PREFERENCES_SELECTFONT_COLPICKER;Select Colour Picker's font PREFERENCES_TAB_COLORMGR;Colour Management SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colours with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Colour Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. -TOOLBAR_TOOLTIP_COLORPICKER;Lockable Colour Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a colour picker\nDrag it around while pressing the left mouse button\nDelete the colour picker with a right mouse button click\nDelete all colour pickers with Shift + Right mouse button click\nRight click away from any colour picker to go back to the Hand tool +TOOLBAR_TOOLTIP_COLORPICKER;Lockable Colour Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. TOOLBAR_TOOLTIP_STRAIGHTEN;Straighten / fine rotation.\nShortcut: s\n\nIndicate the vertical or horizontal by drawing a guide line over the image preview. Angle of rotation will be shown next to the guide line. Centre of rotation is the geometrical centre of the image. TP_BWMIX_CC_ENABLED;Adjust complementary colour TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colours in ROYGCBPM mode. @@ -73,6 +73,7 @@ TP_COLORAPP_TCMODE_COLORF;Colourfulness TP_COLORTONING_COLOR;Colour TP_COLORTONING_LABEL;Colour Toning TP_COLORTONING_LABGRID;L*a*b* colour correction grid +TP_COLORTONING_LABREGIONS;Colour correction regions TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change colour (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated colour blending.\n"Colour balance (Shadows/Midtones/Highlights)" and "Saturation 2 colours" use direct colours.\n\nThe Black-and-White tool can be enabled when using any colour toning method, which allows for colour toning. TP_COLORTONING_SPLITCOCO;Colour Balance Shadows/Midtones/Highlights @@ -824,13 +825,18 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -949,10 +955,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1012,12 +1014,12 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !MAIN_TOOLTIP_HIDEHP;Show/Hide the left panel (including the history).\nShortcut: l !MAIN_TOOLTIP_INDCLIPPEDH;Clipped highlight indication.\nShortcut: < !MAIN_TOOLTIP_INDCLIPPEDS;Clipped shadow indication.\nShortcut: > -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_QINFO;Quick info on the image.\nShortcut: i !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l @@ -1115,8 +1117,11 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PARTIALPASTE_VIGNETTING;Vignetting correction !PARTIALPASTE_WHITEBALANCE;White balance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_APPLNEXTSTARTUP;restart required -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1136,8 +1141,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1171,10 +1176,10 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup... !PREFERENCES_DIRSOFTWARE;Installation directory !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout +!PREFERENCES_EDITORLAYOUT;Editor layout !PREFERENCES_EXTERNALEDITOR;External Editor !PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FILEFORMAT;File format !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1263,13 +1268,11 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_PSPATH;Adobe Photoshop installation directory !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now !PREFERENCES_SELECTLANG;Select language -!PREFERENCES_SELECTTHEME;Select theme -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWBASICEXIF;Show basic Exif info !PREFERENCES_SHOWDATETIME;Show date and time @@ -1289,7 +1292,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_TAB_IMPROC;Image Processing !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1371,7 +1373,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_CROP;Crop selection.\nShortcut: c\nMove the crop area using Shift-mouse drag +!TOOLBAR_TOOLTIP_CROP;Crop selection.\nShortcut: c\nMove the crop using Shift+mouse drag. !TOOLBAR_TOOLTIP_HAND;Hand tool.\nShortcut: h !TOOLBAR_TOOLTIP_WB;Spot white balance.\nShortcut: w !TP_BWMIX_ALGO;Algorithm OYCPM @@ -1442,11 +1444,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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 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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1455,6 +1453,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_COLORAPP_BADPIXSL;Hot/bad pixel filter !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_S;Saturation (S) !TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. @@ -1470,8 +1469,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. !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. @@ -1482,14 +1479,13 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1507,11 +1503,9 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1522,16 +1516,24 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_COLORTONING_HUE;Hue !TP_COLORTONING_LAB;L*a*b* blending !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_METHOD;Method @@ -1565,10 +1567,11 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_CROP_H;Height !TP_CROP_LABEL;Crop !TP_CROP_PPI;PPI= -!TP_CROP_SELECTCROP;Select Crop +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_CROP_W;Width -!TP_CROP_X;X -!TP_CROP_Y;Y +!TP_CROP_X;Left +!TP_CROP_Y;Top !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1789,10 +1792,16 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1833,6 +1842,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1865,7 +1875,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1931,10 +1941,10 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_W;Width: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -1972,7 +1982,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2271,6 +2281,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 !TP_WBALANCE_METHOD;Method +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SIZE;Size: !TP_WBALANCE_SOLUX35;Solux 3500K diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index fe7565d28..ead6f7abb 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -734,13 +734,18 @@ !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -861,10 +866,6 @@ !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -921,20 +922,20 @@ !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM;Transform !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. !MAIN_TOOLTIP_HIDEHP;Show/Hide the left panel (including the history).\nShortcut: l !MAIN_TOOLTIP_INDCLIPPEDH;Clipped highlight indication.\nShortcut: < !MAIN_TOOLTIP_INDCLIPPEDS;Clipped shadow indication.\nShortcut: > -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_QINFO;Quick info on the image.\nShortcut: i !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l @@ -1037,9 +1038,15 @@ !PARTIALPASTE_VIGNETTING;Vignetting correction !PARTIALPASTE_WHITEBALANCE;White balance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_APPLNEXTSTARTUP;restart required !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1060,8 +1067,8 @@ !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1077,7 +1084,6 @@ !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1096,10 +1102,10 @@ !PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup... !PREFERENCES_DIRSOFTWARE;Installation directory !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout +!PREFERENCES_EDITORLAYOUT;Editor layout !PREFERENCES_EXTERNALEDITOR;External Editor !PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FILEFORMAT;File format !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1156,7 +1162,6 @@ !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OUTDIR;Output Directory !PREFERENCES_OUTDIRFOLDER;Save to folder @@ -1195,14 +1200,11 @@ !PREFERENCES_PSPATH;Adobe Photoshop installation directory !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now !PREFERENCES_SELECTLANG;Select language -!PREFERENCES_SELECTTHEME;Select theme -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWBASICEXIF;Show basic Exif info !PREFERENCES_SHOWDATETIME;Show date and time @@ -1223,7 +1225,6 @@ !PREFERENCES_TAB_IMPROC;Image Processing !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1307,8 +1308,8 @@ !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool -!TOOLBAR_TOOLTIP_CROP;Crop selection.\nShortcut: c\nMove the crop area using Shift-mouse drag +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. +!TOOLBAR_TOOLTIP_CROP;Crop selection.\nShortcut: c\nMove the crop using Shift+mouse drag. !TOOLBAR_TOOLTIP_HAND;Hand tool.\nShortcut: h !TOOLBAR_TOOLTIP_STRAIGHTEN;Straighten / fine rotation.\nShortcut: s\n\nIndicate the vertical or horizontal by drawing a guide line over the image preview. Angle of rotation will be shown next to the guide line. Center of rotation is the geometrical center of the image. !TOOLBAR_TOOLTIP_WB;Spot white balance.\nShortcut: w @@ -1386,11 +1387,7 @@ !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 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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1401,6 +1398,7 @@ !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1420,8 +1418,6 @@ !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1433,14 +1429,13 @@ !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1460,11 +1455,9 @@ !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1478,16 +1471,25 @@ !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1527,10 +1529,11 @@ !TP_CROP_H;Height !TP_CROP_LABEL;Crop !TP_CROP_PPI;PPI= -!TP_CROP_SELECTCROP;Select Crop +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_CROP_W;Width -!TP_CROP_X;X -!TP_CROP_Y;Y +!TP_CROP_X;Left +!TP_CROP_Y;Top !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1773,10 +1776,16 @@ !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1819,6 +1828,7 @@ !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1852,7 +1862,7 @@ !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FALSECOLOR;False color suppression steps @@ -1920,10 +1930,10 @@ !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_W;Width: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -1961,7 +1971,7 @@ !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2271,6 +2281,7 @@ !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 !TP_WBALANCE_METHOD;Method +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SIZE;Size: !TP_WBALANCE_SOLUX35;Solux 3500K diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index b70f2b3a7..dfd0bc84b 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -712,6 +712,7 @@ PARTIALPASTE_VIBRANCE;Vibranza PARTIALPASTE_VIGNETTING;Corrección de viñeteo PARTIALPASTE_WHITEBALANCE;Equilibrio de blancos PREFERENCES_ADD;Añadir +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Color de la guía del navegador PREFERENCES_APPLNEXTSTARTUP;requiere reinicio PREFERENCES_AUTOMONPROFILE;Usar perfil de color del monitor principal en el sistema operativo PREFERENCES_BATCH_PROCESSING;Procesamiento por lotes @@ -724,9 +725,6 @@ PREFERENCES_BLACKBODY;Tungsteno PREFERENCES_CACHEMAXENTRIES;Cantidad máxima de entradas en la memoria intermedia PREFERENCES_CACHEOPTS;Opciones de memoria intermedia PREFERENCES_CACHETHUMBHEIGHT;Altura máxima de las miniaturas -PREFERENCES_CIEART;Optimización CIECAM02 -PREFERENCES_CIEART_LABEL;Usar precisión flotante simple en lugar de doble. -PREFERENCES_CIEART_TOOLTIP;Si se habilita, los cálculos CIECAM02 se realizan con precisión flotante simple en lugar de doble. Esto provee un pequeño aumento en la velocidad de cálculo a expensas de una casi imperceptible pérdida de calidad PREFERENCES_CLIPPINGIND;Indicación de recortes PREFERENCES_CLUTSDIR;Directorio HaldCLUT PREFERENCES_CUSTPROFBUILD;Programa generador de perfiles de procesamiento de imagen del usuario @@ -735,7 +733,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Clave de formato PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nombre PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;ID Etiqueta PREFERENCES_CUSTPROFBUILDPATH;Ruta al programa ejecutable -PREFERENCES_CUTOVERLAYBRUSH;Recortar máscara de color/transparencia PREFERENCES_D50;5000ºK PREFERENCES_D55;5500ºK PREFERENCES_D60;6000ºK @@ -754,7 +751,6 @@ PREFERENCES_DIRSOFTWARE;Carpeta de instalación PREFERENCES_EDITORLAYOUT;Disposición del editor PREFERENCES_EXTERNALEDITOR;Editor externo PREFERENCES_FBROWSEROPTS;Opciones del explorador de archivos/Miniaturas -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barra de herramientas del explorador en una sola fila (deseleccionar para pantallas de baja resolución) PREFERENCES_FILEFORMAT;Formato de archivo PREFERENCES_FLATFIELDFOUND;Encontrado PREFERENCES_FLATFIELDSDIR;Carpeta de archivos de campo plano @@ -795,7 +791,6 @@ PREFERENCES_MENUOPTIONS;Opciones de menú de contexto PREFERENCES_METADATA;Metadatos PREFERENCES_MULTITAB;Modo Editor de varias pestañas PREFERENCES_MULTITABDUALMON;Modo Editor de varias pestañas, si está disponible en segundo monitor -PREFERENCES_NAVGUIDEBRUSH;Color de la guía del navegador PREFERENCES_OUTDIR;Carpeta de salida PREFERENCES_OUTDIRFOLDER;Guardar en carpeta PREFERENCES_OUTDIRFOLDERHINT;Guardar las imágenes creadas en una carpeta elegida @@ -816,9 +811,7 @@ PREFERENCES_PROFILESAVECACHE;Guardar perfiles de procesamiento en memoria interm PREFERENCES_PROFILESAVEINPUT;Guardar perfiles de procesamiento junto con imagen de entrada PREFERENCES_PROPERTY;Propiedad PREFERENCES_PSPATH;Carpeta de instalación de Adobe Photoshop -PREFERENCES_SELECTFONT;Seleccionar fuente PREFERENCES_SELECTLANG;Seleccionar idioma -PREFERENCES_SELECTTHEME;Seleccionar tema PREFERENCES_SET;Establecer PREFERENCES_SHOWBASICEXIF;Mostrar datos Exif básicos PREFERENCES_SHOWDATETIME;Mostrar fecha y hora @@ -971,11 +964,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Voltear horizontalmente.\nAtajo: '[' TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotar a la izquierda.\nAtajo: ']' TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotar a la derecha TP_COARSETRAF_TOOLTIP_VFLIP;Voltear verticalmente -TP_COLORAPP_ADAPTSCENE;Adaptación a la luminosidad de la escena -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Luminancia absoluta del entorno de la escena (cd/m²).\n1) Calculado en base a datos Exif: \nTiempo de Exposición - Velocidad ISO - Número F de apertura - Corrección de exposición\n2) Calculado a partir del Punto Blanco raw y Compensación de Exposición RT. -TP_COLORAPP_ADAPTVIEWING;Luminosidad de visualización (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Luminancia absoluta del entorno de visualización\n(usualmente 16cd/m²) -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Si la casilla está seleccionada (como se recomienda) RT calcula el valor óptimo a partir de los datos Exif.\nPara establecer el valor manualmente, primero desmarque la casilla TP_COLORAPP_ALGO;Algoritmo TP_COLORAPP_ALGO_ALL;Todo TP_COLORAPP_ALGO_JC;Claridad + Crominancia (JC) @@ -1005,8 +993,6 @@ TP_COLORAPP_CURVEEDITOR3;Curva de color TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Ajusta Crominancia, Saturación o Colorido.\n\nMuestra el histograma de Cromaticidad (Lab) antes de los ajustes CIECAM02.\nSi la casilla "Muestra en las curvas histogramas de salida CIECAM02" está seleccionada, muestra el histograma de C, s o M después de CIECAM02.\n\nC, s y M no se muestran en el histograma del panel principal.\n\nVea el histograma de salida final en el panel principal TP_COLORAPP_DATACIE;Curvas con histogramas de salida CIECAM02 TP_COLORAPP_DATACIE_TOOLTIP;Si está seleccionada, los histogramas en las curvas CIECAM02 muestran aproximadamente valores/rangos de J o Q, y C, s o M después de los ajustes CIECAM02.\nEsta selección no influye en el histograma del panel principal.\n\nCuando no está seleccionada, los histogramas en las curvas CIECAM02 muestran valores Lab antes de los ajustes CIECAM02 -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Si la casilla está seleccionada (como se recomienda), RT calcula el valor óptimo, que es usado por CAT02, y también por todo CIECAM02.\nPara establecer manualmente el valor, primero desmarque la casilla (se recomienda usar valores mayores a 65) -TP_COLORAPP_DEGREE_TOOLTIP;Cantidad de transformación de adaptación cromática CIE 2002 TP_COLORAPP_GAMUT;Control de Gamut (Lab) TP_COLORAPP_GAMUT_TOOLTIP;Permite control de gamut en modo Lab TP_COLORAPP_HUE;Matiz (h) @@ -1021,8 +1007,6 @@ TP_COLORAPP_MODEL;Modelo de Punto Blanco TP_COLORAPP_MODEL_TOOLTIP;Modelo de Punto Blanco\n\nWB [RT] + [salida]:\nEl Balance de Blancos de RT es usado para la escena, CIECAM02 es establecido a D50, y el Balance de Blancos del dispositivo de salida es el establecido en Preferencias > Gestión de Color\n\nWB [RT+CAT02] + [salida]:\nEl Balance de Blancos de RT es usado por CAT02 y el del dispositivo de salida es el establecido en preferencias TP_COLORAPP_RSTPRO; Protección de tonos rojos y color piel TP_COLORAPP_RSTPRO_TOOLTIP;Intensidad de protección de tonos rojos y color piel (en curvas y en controles deslizantes) -TP_COLORAPP_SHARPCIE;Enfoque, Contraste por niveles de detalle, Micro-contraste & Eliminación de AC con Q/C -TP_COLORAPP_SHARPCIE_TOOLTIP;Si se selecciona, Enfoque, Contraste por niveles de detalle, Micro-contraste & Eliminación de AC usarán CIECAM02 TP_COLORAPP_SURROUND;Entorno TP_COLORAPP_SURROUND_AVER;Promedio TP_COLORAPP_SURROUND_DARK;Oscuro @@ -1041,6 +1025,7 @@ TP_COLORAPP_TCMODE_LIGHTNESS;Claridad TP_COLORAPP_TCMODE_SATUR;Saturación TP_COLORAPP_TONECIE;Mapeo tonal usando Brillo (Q) CIECAM02. TP_COLORAPP_TONECIE_TOOLTIP;Si esta opción no está seleccionada, el mapeo tonal se hace usando el espacio de color Lab.\nSi esta opción está seleccionada, el mapeo tonal se hace usando CIECAM02.\nLa herramienta de mapeo tonal debe de estar habilitada para que esta selección tenga efecto +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminancia absoluta del entorno de visualización\n(usualmente 16cd/m²) TP_COLORAPP_WBCAM;BalBlanco [RT+CAT02] + [salida] TP_COLORAPP_WBRT;BalBlanco [RT] + [salida] TP_COLORTONING_AB;o C/L @@ -1090,7 +1075,6 @@ TP_CROP_GUIDETYPE;Clase de guía: TP_CROP_H;Al TP_CROP_LABEL;Recortar TP_CROP_PPI;Ptos/Pulgada= -TP_CROP_SELECTCROP;Seleccionar recorte TP_CROP_W;Ancho TP_CROP_X;x TP_CROP_Y;y @@ -1279,9 +1263,6 @@ TP_LENSGEOM_AUTOCROP;Auto recorte TP_LENSGEOM_FILL;Auto relleno TP_LENSGEOM_LABEL;Lente / Geometría TP_LENSPROFILE_LABEL;Perfil de corrección de lente -TP_LENSPROFILE_USECA;Corrección de AC -TP_LENSPROFILE_USEDIST;Corrección de distorsión -TP_LENSPROFILE_USEVIGN;Corrección de viñeteo TP_NEUTRAL_TIP;Restablecer controles de exposición a valores neutros\nAplica a los mismos controles que son afectados por Niveles Automáticos, sin importar si usa o no Niveles Automáticos TP_PCVIGNETTE_FEATHER;Difuminado TP_PCVIGNETTE_FEATHER_TOOLTIP;Difuminación: \n0=Solo Esquinas\n50=Hasta medio camino al centro\n100=Hasta el Centro @@ -1708,13 +1689,18 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1814,17 +1800,13 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1854,7 +1836,12 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1863,8 +1850,8 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1877,6 +1864,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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 @@ -1911,15 +1899,13 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1941,35 +1927,46 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !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. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset !TP_CBDL_AFT;After Black-and-White !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_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORAPP_NEUTRAL;Reset !TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -2033,6 +2030,15 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LABCURVE_CURVEEDITOR_CC;CC +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -2053,6 +2059,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) @@ -2066,7 +2073,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_RAW_DCB;DCB !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2113,10 +2120,10 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2154,7 +2161,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2364,6 +2371,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". !ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index 19ec9ba7d..33cb478a3 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -271,7 +271,6 @@ PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File PREFERENCES_PSPATH;Adobe Photoshop installation directory PREFERENCES_SELECTLANG;Hizkuntza hautatu -PREFERENCES_SELECTTHEME;Select theme PREFERENCES_SHOWBASICEXIF;Oinarrizko EXIF datuak bistaratu PREFERENCES_SHOWDATETIME;Data eta ordua bistratu PREFERENCES_SHTHRESHOLD;Moztutako itzalen muga @@ -331,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Herenen erregela TP_CROP_GUIDETYPE;Gida mota: TP_CROP_H;H TP_CROP_LABEL;Moztu -TP_CROP_SELECTCROP; Mozketa hautatu TP_CROP_W;W TP_CROP_X;x TP_CROP_Y;y @@ -982,13 +980,18 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1089,10 +1092,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1126,17 +1125,17 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1218,8 +1217,14 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1236,8 +1241,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1253,7 +1258,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1265,8 +1269,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1312,7 +1316,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel @@ -1335,12 +1338,10 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1353,7 +1354,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1409,7 +1409,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1473,11 +1473,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1488,6 +1484,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1507,8 +1504,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1520,14 +1515,13 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1547,11 +1541,9 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1565,16 +1557,25 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1607,6 +1608,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1824,10 +1827,16 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1870,6 +1879,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1902,7 +1912,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1963,10 +1973,10 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2004,7 +2014,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2280,6 +2290,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 34c74ea67..94f0f3fc9 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -860,9 +860,6 @@ IPTCPANEL_TITLE;Titre IPTCPANEL_TITLEHINT;Enterez un nom court et humainement lisible pour l'image, cela peut être le nom du fichier. IPTCPANEL_TRANSREFERENCE;ID du travail IPTCPANEL_TRANSREFERENCEHINT;Enterez un nombre ou identifiant servant au contrôle du flux de travail ou au suivi. -LENSPROFILE_CORRECTION_AUTOMATCH;Paramètres de correction trouvés automatiquement -LENSPROFILE_CORRECTION_LCPFILE;Fichier LCP -LENSPROFILE_CORRECTION_MANUAL;Paramètres de correction manuel LENSPROFILE_LENS_WARNING;Attention: la taille du capteur utilisé pour le profilage de l'objectif est plus grand que celui de l'appareil sélectionné, le résultat peut être faux. MAIN_BUTTON_FULLSCREEN;Plein écran MAIN_BUTTON_ICCPROFCREATOR;Créateur de Profil ICC @@ -935,7 +932,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;Affichage du Masque du focus\nRaccourci: canal Vert\nRaccourci: g MAIN_TOOLTIP_PREVIEWL;Affichage de la Luminosité\nRaccourci: v\n\n0.299*R + 0.587*V + 0.114*B MAIN_TOOLTIP_PREVIEWR;Affichage du canal Rouge\nRaccourci: r -MAIN_TOOLTIP_PREVIEWSHARPMASK;Prévisualiser le masque de contraste de netteté.\nRaccourci: Aucun\n\nNe fonctionne que si l'outil Netteté est activé et pour un zomm >= 100%. +MAIN_TOOLTIP_PREVIEWSHARPMASK;Prévisualiser le masque de contraste de netteté.\nRaccourci: p\n\nNe fonctionne que si l'outil Netteté est activé et pour un zomm >= 100%. MAIN_TOOLTIP_QINFO;Informations rapide sur l'image\nRaccourci: i MAIN_TOOLTIP_SHOWHIDELP1;Montrer/Cacher le panneau gauche\nRaccourci: l MAIN_TOOLTIP_SHOWHIDERP1;Afficher/Cacher le panneau droit\nRaccourci: Alt-l @@ -1039,9 +1036,9 @@ PARTIALPASTE_VIGNETTING;Correction du vignettage PARTIALPASTE_WAVELETGROUP;Niveaux d'ondelette PARTIALPASTE_WHITEBALANCE;Balance des blancs PREFERENCES_ADD;Ajoute +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Couleur du cadre dans le Navigateur PREFERENCES_APPLNEXTSTARTUP;appliqué au prochain lancement PREFERENCES_AUTOMONPROFILE;Utiliser automatiquement le profil de l'écran principal -PREFERENCES_AUTOSAVE_TP_OPEN;Sauver automatiquement l'état ouvert/fermé\n des outils avant de fermer PREFERENCES_BATCH_PROCESSING;Traitement par lot PREFERENCES_BEHADDALL;Tout à 'Ajoute' PREFERENCES_BEHADDALLHINT;Règle tous les paramètres sur le mode Ajoute.\nLa modification des paramètres dans le panneau d'édition en par lot sera des deltas par-rapport aux valeurs existantes @@ -1057,17 +1054,13 @@ PREFERENCES_CACHECLEAR_SAFETY;Seuls les fichiers mis en cache sont effacés. Les PREFERENCES_CACHEMAXENTRIES;Nombre maximal d'éléments dans le Cache PREFERENCES_CACHEOPTS;Options du Cache PREFERENCES_CACHETHUMBHEIGHT;Hauteur maximale des vignettes -PREFERENCES_CIEART;CIECAM02 optimisation -PREFERENCES_CIEART_FRAME;Réglages spécifiques à CIECAM02 -PREFERENCES_CIEART_LABEL;Utilise la précision float au lieu de double pour CIECAM02 -PREFERENCES_CIEART_TOOLTIP;Si activé, les calculs CIECAM sont réalisés en précision float au lieu de précision double. Cela amène un léger accroissement de vitesse, et une légère réduction de qualité PREFERENCES_CLIPPINGIND;Indication du dépassement de plage dynamique PREFERENCES_CLUTSCACHE;Cache HaldCLUT PREFERENCES_CLUTSCACHE_LABEL;Nombre maximum de chache CLUT PREFERENCES_CLUTSDIR;Dossier HaldCLUT PREFERENCES_CMMBPC;Compensation du point noir PREFERENCES_CROP;Édition du recadrage -PREFERENCES_CROP_AUTO_FIT;Zoomer automatiquement sur la zone recadrée lorsque vous double-cliquez sur l'image de prévisualisation +PREFERENCES_CROP_AUTO_FIT;Zommer automatiquement sur la zone recadrée PREFERENCES_CROP_GUIDES;Guides affichés en dehors de l'édition du recadrage PREFERENCES_CROP_GUIDES_FRAME;Cadre PREFERENCES_CROP_GUIDES_FULL;Original @@ -1083,7 +1076,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Format des clés PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nom PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Chemin de l'exécutable -PREFERENCES_CUTOVERLAYBRUSH;Masque de recadrage PREFERENCES_D50;5000K PREFERENCES_D50_OLD;5000K PREFERENCES_D55;5500K @@ -1105,7 +1097,6 @@ PREFERENCES_EDITORCMDLINE;Ligne de commande personnelle PREFERENCES_EDITORLAYOUT;Disposition de l'éditeur PREFERENCES_EXTERNALEDITOR;Éditeur externe PREFERENCES_FBROWSEROPTS;Options du navigateur de fichiers et de vignettes -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barre de menu de l'explorateur de fichiers uni-ligne\n(à désactiver pour les écrans de faible résolution) PREFERENCES_FILEFORMAT;Format du fichier PREFERENCES_FLATFIELDFOUND;Trouvé PREFERENCES_FLATFIELDSDIR;Dossier des images de Champ Uniforme @@ -1162,7 +1153,6 @@ PREFERENCES_MONPROFILE;Profil couleur par défaut PREFERENCES_MONPROFILE_WARNOSX;Due à des limitations de macOS, seul sRGB est supporté. PREFERENCES_MULTITAB;Éditeurs multiple PREFERENCES_MULTITABDUALMON;Éditeurs multiple, si possible sur un second moniteur -PREFERENCES_NAVGUIDEBRUSH;Couleur du cadre dans le Navigateur PREFERENCES_NAVIGATIONFRAME;Navigation PREFERENCES_OUTDIR;Dossier de sortie PREFERENCES_OUTDIRFOLDER;Dossier de sauvegarde @@ -1202,10 +1192,7 @@ PREFERENCES_PSPATH;Dossier d'installation d'Adobe Photoshop PREFERENCES_REMEMBERZOOMPAN;Se souvenir de niveau de zoom et de la position de l'image PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Retient le niveau de zoom et la position de l'image courante lors de l'ouverture d'une nouvelle image.\n\nCette option ne fonctionne que dans le mode "Éditeur unique" et quand "Méthode de dématriçage utilisé pour l'aperçu à un zoom <100%" is set to "Idem PP3". PREFERENCES_SAVE_TP_OPEN_NOW;Sauver l'état ouvert/fermé maintenant -PREFERENCES_SELECTFONT;Police principale -PREFERENCES_SELECTFONT_COLPICKER;Police des pipette à couleur PREFERENCES_SELECTLANG;Choix de la langue -PREFERENCES_SELECTTHEME;Choisissez un thème PREFERENCES_SERIALIZE_TIFF_READ;Réglage de lecture des images TIFF PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Sérialiser la lecture des fichiers TIFF PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Lorsque d'un travail avec des dossiers plein de fichier TIFF non compressé, activer cette option peut augmenter les performance de la génération des vignettes. @@ -1229,7 +1216,6 @@ PREFERENCES_TAB_GENERAL;Général PREFERENCES_TAB_IMPROC;Traitement de l'image PREFERENCES_TAB_PERFORMANCE;Performance PREFERENCES_TAB_SOUND;Sons -PREFERENCES_THEME;Thème PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Prévisualisation JPEG incluse PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image à montrer PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Rendu Neutre des données Raw @@ -1393,11 +1379,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Symétriser / axe vertical TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotation vers la gauche\nRaccourci: [\n\nRaccourci en mode Éditeur unique: Alt-[ TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotation vers la droite\nRaccourci: ]\n\nRaccourci en mode Éditeur unique: Alt-] TP_COARSETRAF_TOOLTIP_VFLIP;Symétriser / axe horizontal -TP_COLORAPP_ADAPTSCENE;Luminosité de la scène -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Luminance absolue de l'environnement de la scène (cd/m²).\n1) Calculé à partir des données Exif:\nVitesse d'obturation - val. ISO - ouverture F - correction d'expos. du boitier.\n2) Calculé à partir du Point Blanc Raw et de la Compensation d'Exposition de RawTherapee -TP_COLORAPP_ADAPTVIEWING;Luminosité du visionnage (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Luminance absolue de l'environnement de visionnage\n(souvent 16cd/m²) -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Si la case est cochée (recommandé), une valeur optimum est calculée à partir des données Exif.\nPour régler la valeur manuellement, décochez d'abord la case TP_COLORAPP_ALGO;Algorithme TP_COLORAPP_ALGO_ALL;Tout TP_COLORAPP_ALGO_JC;Luminosité + Chroma (JC) @@ -1427,8 +1408,6 @@ TP_COLORAPP_CURVEEDITOR3;Courbes chroma TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Vous pouvez choisir entre chroma -saturation- niveau couleurs.\n Histogramme affiche la chromaticité Lab avant CIECAM.\n On peut voir le résultat final dans la fenêtre histogramme.\n Histogramme de C,s,M avant/après si la cas à cocher "Données CIECAM" est activée.\n (C,s,M) ne sont pas affichés dans le panneau histogramme TP_COLORAPP_DATACIE;Histogrammes post CIECAM dans les courbes TP_COLORAPP_DATACIE_TOOLTIP;Quand activé, les histogrammes de fond des courbes CIECAM02 montrent des valeurs/amplitudes approximatives de J/Q, ou de C:s/M après les ajustements CIECAM.\nCette sélection n'a pas d'incidence sur l'histogramme général.\n\nQuand désactivé, les histogrammes de fond des courbes CIECAM affichent les valeurs Lab avant les ajustements CIECAM -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Si la case est cochée (recommandé), RT calcule une valeur optimale, qui est utilisée par CAT02, mais aussi pour l'ensemble de CIECAM02.\nVous pouvez décocher la case et changer la valeur du curseur; (les valeurs supérieures à 65 sont recommandées) -TP_COLORAPP_DEGREE_TOOLTIP;Niveau d'adaptation chromatique CIE CAT 2002 TP_COLORAPP_FREE;Temp libre+vert + CAT02 + [sortie] TP_COLORAPP_GAMUT;Contrôle du gamut (Lab) TP_COLORAPP_GAMUT_TOOLTIP;Permet le controle du gamut en mode Lab @@ -1446,8 +1425,6 @@ TP_COLORAPP_NEUTRAL;Résinitialiser TP_COLORAPP_NEUTRAL_TIP;Réinitialiser tous les curseurs, cases à cocher et courbes à leurs valeur par défaut TP_COLORAPP_RSTPRO;Protection des tons chairs et rouges TP_COLORAPP_RSTPRO_TOOLTIP;Protection des tons chairs et rouges (curseurs et courbes) -TP_COLORAPP_SHARPCIE;Netteté, Contraste par niveau de détails, Microcontraste & Aberration chromatique avec Q/C -TP_COLORAPP_SHARPCIE_TOOLTIP;Netteté, Contraste par niveau de détails, Microcontraste & Aberration chromatique utiliseront CIECAM02 si activé. TP_COLORAPP_SURROUND;Entourage TP_COLORAPP_SURROUND_AVER;Moyen TP_COLORAPP_SURROUND_DARK;Sombre @@ -1467,11 +1444,9 @@ TP_COLORAPP_TCMODE_SATUR;Saturation TP_COLORAPP_TEMP_TOOLTIP;Pour sélectionner un illuminant, toujours régler Teinte=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 TP_COLORAPP_TONECIE;Compression Tonale utilisant CIECAM02 TP_COLORAPP_TONECIE_TOOLTIP;Si cette option est désactivée, la compression tonale est faite dans l'espace Lab.\nSi cette options est activée, la compression tonale est faite en utilisant CIECAM02.\nL'outil Compression Tonale doit être activé pour que ce réglage prenne effet +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminance absolue de l'environnement de visionnage\n(souvent 16cd/m²) TP_COLORAPP_WBCAM;BB [RT+CAT02] + [sortie] TP_COLORAPP_WBRT;BB [RT] + [sortie] -TP_COLORAPP_YB;Yb% (luminance moyenne) -TP_COLORAPP_YBSCENE;Yb% (luminance moyenne) -TP_COLORAPP_YBSCENE_TOOLTIP;si auto activé, Yb est calculé suivant la valeur de luminance moyenne de l'image actuelle TP_COLORTONING_AB;o C/L TP_COLORTONING_AUTOSAT;Automatique TP_COLORTONING_BALANCE;Balance @@ -1534,7 +1509,6 @@ TP_CROP_GUIDETYPE;Type de guide: TP_CROP_H;H TP_CROP_LABEL;Recadrage TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP; Sélection du recadrage TP_CROP_W;L TP_CROP_X;X TP_CROP_Y;Y @@ -1787,9 +1761,6 @@ TP_LENSGEOM_AUTOCROP;Recadrage auto TP_LENSGEOM_FILL;Remplir TP_LENSGEOM_LABEL;Objectif / Géométrie TP_LENSPROFILE_LABEL;Profil de correction d'objectif -TP_LENSPROFILE_USECA;Corr. de l'aber. chromatique -TP_LENSPROFILE_USEDIST;Corr. de la distortion -TP_LENSPROFILE_USEVIGN;Corr. du vignettage TP_LOCALCONTRAST_AMOUNT;Quantité TP_LOCALCONTRAST_DARKNESS;Niveau des ombres TP_LOCALCONTRAST_LABEL;Contraste Local @@ -1955,7 +1926,6 @@ TP_RESIZE_WIDTH;Largeur TP_RETINEX_CONTEDIT_HSL;Égaliseur d'histogramme TSV TP_RETINEX_CONTEDIT_LAB;Égaliseur d'histogramme L*a*b* TP_RETINEX_CONTEDIT_LH;Égaliseur de teinte -TP_RETINEX_CONTEDIT_MAP;Égaliseur de masque TP_RETINEX_CURVEEDITOR_CD;L=f(L) TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance en fonction de la luminance L=f(L)\nCorrige les données raw pour réduire halos et artéfacts. TP_RETINEX_CURVEEDITOR_LH;Force=f(T) @@ -1993,7 +1963,6 @@ TP_RETINEX_LABEL;Retinex TP_RETINEX_LABEL_MASK;Masque TP_RETINEX_LABSPACE;L*a*b* TP_RETINEX_LOW;Bas -TP_RETINEX_MAP;Méthode de masquage TP_RETINEX_MAP_GAUS;Masque gaussien TP_RETINEX_MAP_MAPP;Masque pointu (ondelettes partielles) TP_RETINEX_MAP_MAPT;Masque pointu (ondelettes totales) @@ -2325,3 +2294,46 @@ ZOOMPANEL_ZOOMFITSCREEN;Affiche l'image entière\nRaccourci: Alt-f ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: + ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power +!TP_COLORTONING_LABREGION_SLOPE;Slope +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. +!TP_RETINEX_CONTEDIT_MAP;Equalizer +!TP_RETINEX_MAP;Method +!TP_WBALANCE_PICKER;Pick diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index 761d0ea77..d930c3948 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -271,7 +271,6 @@ PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File PREFERENCES_PSPATH;Adobe Photoshop installation directory PREFERENCES_SELECTLANG;Επιλογή γλώσσας -PREFERENCES_SELECTTHEME;Επιλογή θέματος PREFERENCES_SHOWBASICEXIF;Προβολή βασικών στοιχείων Exif PREFERENCES_SHOWDATETIME;Προβολή ημερομηνίας και ώρας PREFERENCES_SHTHRESHOLD;Κατώφλι ψαλιδίσματος σκιών @@ -331,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Κανόνας τρίτων TP_CROP_GUIDETYPE;Είδος βοηθών: TP_CROP_H;H TP_CROP_LABEL;Αποκοπή -TP_CROP_SELECTCROP; Επιλογή αποκοπής TP_CROP_W;W TP_CROP_X;x TP_CROP_Y;y @@ -981,13 +979,18 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1088,10 +1091,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1125,17 +1124,17 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1217,8 +1216,14 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1235,8 +1240,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1252,7 +1257,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1264,8 +1268,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1311,7 +1315,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel @@ -1334,12 +1337,10 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1352,7 +1353,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1408,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1472,11 +1472,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1487,6 +1483,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1506,8 +1503,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1519,14 +1514,13 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1546,11 +1540,9 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1564,16 +1556,25 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1606,6 +1607,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1823,10 +1826,16 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1869,6 +1878,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1901,7 +1911,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1962,10 +1972,10 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2003,7 +2013,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2279,6 +2289,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index d909f15c4..64b29759a 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -271,7 +271,6 @@ PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File PREFERENCES_PSPATH;Adobe Photoshop installation directory PREFERENCES_SELECTLANG;בחר שפה -PREFERENCES_SELECTTHEME;Select theme PREFERENCES_SHOWBASICEXIF;Exif הראה מידע PREFERENCES_SHOWDATETIME;הראה תאריך ושעה PREFERENCES_SHTHRESHOLD;סף קיצוץ תחתון @@ -331,7 +330,6 @@ TP_CROP_GTRULETHIRDS;כלל השליש TP_CROP_GUIDETYPE;סוג מדריך TP_CROP_H;גובה TP_CROP_LABEL;גזור -TP_CROP_SELECTCROP;בחור גזירה TP_CROP_W;רוחב TP_CROP_X;x TP_CROP_Y;y @@ -982,13 +980,18 @@ TP_WBALANCE_TEMPERATURE;מידת חום !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1089,10 +1092,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1126,17 +1125,17 @@ TP_WBALANCE_TEMPERATURE;מידת חום !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1218,8 +1217,14 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1236,8 +1241,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1253,7 +1258,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1265,8 +1269,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1312,7 +1316,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel @@ -1335,12 +1338,10 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1353,7 +1354,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1409,7 +1409,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1473,11 +1473,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1488,6 +1484,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1507,8 +1504,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1520,14 +1515,13 @@ TP_WBALANCE_TEMPERATURE;מידת חום !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1547,11 +1541,9 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1565,16 +1557,25 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1607,6 +1608,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1824,10 +1827,16 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1870,6 +1879,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1902,7 +1912,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1963,10 +1973,10 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2004,7 +2014,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2280,6 +2290,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 173fb2a23..6b3e6ef4d 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -618,6 +618,7 @@ PARTIALPASTE_VIBRANCE;Vividezza PARTIALPASTE_VIGNETTING;Correzione Vignettatura PARTIALPASTE_WHITEBALANCE;Bilanciamento del bianco PREFERENCES_ADD;Somma +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Colore delle guide del Navigatore PREFERENCES_APPLNEXTSTARTUP;applicato al prossimo avvio PREFERENCES_AUTOMONPROFILE;Usa il profilo colore dello schermo principale del sistema operativo PREFERENCES_BATCH_PROCESSING;Sviluppo in serie @@ -630,9 +631,6 @@ PREFERENCES_BLACKBODY;Tungsteno PREFERENCES_CACHEMAXENTRIES;Numero massimo di voci in memoria PREFERENCES_CACHEOPTS;Opzioni della memoria PREFERENCES_CACHETHUMBHEIGHT;Massima altezza delle miniature -PREFERENCES_CIEART;Ottimizzazione CIECAM02 -PREFERENCES_CIEART_LABEL;Utilizza precisione singola anziché doppia -PREFERENCES_CIEART_TOOLTIP;Se abilitata, i calcoli CIECAM02 sono effettuati in formato a virgola mobile a precisione singola anziché doppia. Questo permette un piccolo incremento di velocità al costo di una trascurabile perdita di qualità. PREFERENCES_CLIPPINGIND;Indicazione di tosaggio PREFERENCES_CUSTPROFBUILD;Generatore profili personalizzati PREFERENCES_CUSTPROFBUILDHINT;File eseguibile (o script) richiamato quando è necessario generare un nuovo profilo per un'immagine.\nIl percorso del file di comunicazione (del tipo *.ini, detto "Keyfile") è aggiunto come parametro da linea di comando. Contiene diversi paramentri necessari agli script e ai dati Exif per generare un profilo di elaborazione.\n\nATTENZIONE:: Devi utilizzare le virgolette doppie quando necessario se utilizzi percorsi contenenti spazi. @@ -640,7 +638,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Formato tasti PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nome PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Percorso dell'eseguibile -PREFERENCES_CUTOVERLAYBRUSH;Colore/Trasparenza della maschera di ritaglio PREFERENCES_D50;5000K PREFERENCES_D55;5500K PREFERENCES_D60;6000K @@ -659,7 +656,6 @@ PREFERENCES_DIRSOFTWARE;Cartella d'installazione PREFERENCES_EDITORLAYOUT;Disposizione PREFERENCES_EXTERNALEDITOR;Programma di ritocco esterni PREFERENCES_FBROWSEROPTS;Opzioni del Navigatore e delle miniature -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barra di navigazione a singola riga (deseleziona nel caso di schermo a bassa risoluzione) PREFERENCES_FILEFORMAT;Formato file PREFERENCES_FLATFIELDFOUND;Trovati PREFERENCES_FLATFIELDSDIR;Cartella dei fotogrammi di campo (Flat Field) @@ -700,7 +696,6 @@ PREFERENCES_MENUOPTIONS;Opzioni del menù a discesa PREFERENCES_METADATA;Metadati PREFERENCES_MULTITAB;Modalità a Schede Multiple PREFERENCES_MULTITABDUALMON;Modalità a Schede Multiple (se disponibile sul secondo schermo) -PREFERENCES_NAVGUIDEBRUSH;Colore delle guide del Navigatore PREFERENCES_OUTDIR;Cartella di destinazione PREFERENCES_OUTDIRFOLDER;Salva nella cartella PREFERENCES_OUTDIRFOLDERHINT;Salva le immagini nella cartella scelta @@ -721,9 +716,7 @@ PREFERENCES_PROFILESAVECACHE;Salva il profilo di sviluppo nella memoria PREFERENCES_PROFILESAVEINPUT;Salva il profilo di sviluppo a fianco del file originario PREFERENCES_PROPERTY;Proprietà PREFERENCES_PSPATH;Cartella d'installazione di Adobe Photoshop -PREFERENCES_SELECTFONT;Seleziona il carattere PREFERENCES_SELECTLANG;Seleziona la lingua -PREFERENCES_SELECTTHEME;Seleziona il tema PREFERENCES_SET;Imposta PREFERENCES_SHOWBASICEXIF;Mostra dati Exif di base PREFERENCES_SHOWDATETIME;Mostra data e ora @@ -876,11 +869,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Rifletti orizzontalmente. TP_COARSETRAF_TOOLTIP_ROTLEFT;Ruota a sinistra.\nScorciatoie:\n[ - Modalità a Scheda Multipla,\nAlt-[ - Modalità a Scheda Singola. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Ruota a destra.\nScorciatoie:\n] - Modalità a Scheda Multipla,\nAlt-] - Modalità a Scheda Singola. TP_COARSETRAF_TOOLTIP_VFLIP;Rifletti verticalmente -TP_COLORAPP_ADAPTSCENE;Luminanza della scena -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Luminanza assoluta dell'ambiente della scena (cd/m²)\n1) Calcolata dai dati Exif:\nTempo - ISO - Diaframma - Compensazione dell'Esposizione.\n2) Calcolata dal punto di bianco del raw e dal cursore di Compensazione dell'Esposizione. -TP_COLORAPP_ADAPTVIEWING;Luminanza di visualizzazione (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Luminanza assoluta dell'ambiente di visualizzazione\n(normalmente 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Se questa casella è selezionata (raccomandato) RT calcola un valore ottimale dai dati Exif.\nPer impostare un valore manualmente, deseleziona la casella. TP_COLORAPP_ALGO;Algoritmo TP_COLORAPP_ALGO_ALL;Tutto TP_COLORAPP_ALGO_JC;Chiarezza + Croma (JC) @@ -910,8 +898,6 @@ TP_COLORAPP_CURVEEDITOR3;Curva Colore TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Regola Croma, Saturazione o Pienezza.\nL'Istogramma mostra la Cromaticità (Lab) prima di CIECAM02.\nSe "Mostra gli istogrammi di uscita CIECAM02 nelle curve" è abilitato, l'Istogramma mostra C, s e M dopo CIECAM02.\nC, s e M non sono mostrati direttamente nel pannello Istogramma.\nPer l'output finale fare riferimento al pannello Istogramma TP_COLORAPP_DATACIE;Mostra gli istogrammi di uscita CIECAM02 nelle curve TP_COLORAPP_DATACIE_TOOLTIP;Quando abilitato, gli istogrammi nelle curve CIECAM02 mostrano valori e intervalli approssimati di J o Q, e C, s o M dopo le regolazioni CIECAM02.\nQuesta selezione non ha effetto nel pannello Istogramma principale.\n\nQuando disabilitato, gli istogrammi nelle curve CIECAM02 mostrano i valori Lab, come sono prima delle regolazioni CIECAM02. -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Se abilitato (raccomandato), RT calcola un valore ottimale, che sarà utilizzato da CAT02, e anche per l'intero CIECAM02.\nDisabilitare per impostare il valore manualmente (sono raccomandati valori superiori a 65). -TP_COLORAPP_DEGREE_TOOLTIP;Quantità di Trasformazione di Adattamento Cromatico CIE 2002 TP_COLORAPP_GAMUT;Controllo Gamut (Lab) TP_COLORAPP_GAMUT_TOOLTIP;Consenti il controllo gamut nella modalità Lab TP_COLORAPP_HUE;Tinta (h) @@ -926,8 +912,6 @@ TP_COLORAPP_MODEL;Modello del Punto di Bianco TP_COLORAPP_MODEL_TOOLTIP;Modello del Punto di bianco.\n\nWB [RT] + [output]: Per la scena viene usato il Bilanciamento del Bianco di RT, CIECAM02 è impostato a D50, il bianco del dispositivo di uscita utilizza il valore impostato in Preferenze > Gestione Colore.\n\nWB [RT+CAT02] + [output]: Le impostazioni di Bilanciamento del Bianco di RT sono utilizzate da CAT02 e il bianco del dispositivo di uscita utilizza il valore impostato in Preferenze > Gestione Colore. TP_COLORAPP_RSTPRO;Protezione rossi e incarnato TP_COLORAPP_RSTPRO_TOOLTIP;Protezione dei toni rossi e dell'incarnato (cursori e curve) -TP_COLORAPP_SHARPCIE;--inutilizzato-- -TP_COLORAPP_SHARPCIE_TOOLTIP;--inutilizzato-- TP_COLORAPP_SURROUND;Ambiente TP_COLORAPP_SURROUND_AVER;Medio TP_COLORAPP_SURROUND_DARK;Scuro @@ -946,6 +930,7 @@ TP_COLORAPP_TCMODE_LIGHTNESS;Chiarezza TP_COLORAPP_TCMODE_SATUR;Saturazione TP_COLORAPP_TONECIE;Tone mapping con CIECAM02 TP_COLORAPP_TONECIE_TOOLTIP;Se questa opzione è disabilitata, il Tone Mapping è eseguito nello spazio Lab.\nSe l'opzione è abilitata, il Tone Mapping è fatto usando CIECAM02.\nLo strumento Tone Mapping (Lab/CIECAM02) deve essere abilitato affinché questa impostazione abbia effetto. +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminanza assoluta dell'ambiente di visualizzazione\n(normalmente 16cd/m²). TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] TP_COLORAPP_WBRT;WB [RT] + [output] TP_CROP_FIXRATIO;Rapporto fisso: @@ -959,7 +944,6 @@ TP_CROP_GUIDETYPE;Tipo di guida: TP_CROP_H;A TP_CROP_LABEL;Ritaglio TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP; Seleziona Area TP_CROP_W;L TP_CROP_X;X TP_CROP_Y;Y @@ -1130,9 +1114,6 @@ TP_LENSGEOM_AUTOCROP; Ritaglio automatico TP_LENSGEOM_FILL;Adattamento automatico TP_LENSGEOM_LABEL;Obiettivo/Geometria TP_LENSPROFILE_LABEL;Profilo di Correzione dell'Obiettivo -TP_LENSPROFILE_USECA;Correzione dell'Aberrazione Cromatica (AC) -TP_LENSPROFILE_USEDIST;Correzione della Distorsione -TP_LENSPROFILE_USEVIGN;Correzione della Vignettatura TP_NEUTRAL_TIP;Riporta i controlli dell'esposizione ai valori neutrali.\nVale per gli stessi controlli cui è applicato Livelli Automatici, indipendentemente dal fatto che Livelli Automatici sia abilitato. TP_PCVIGNETTE_FEATHER;Scia TP_PCVIGNETTE_FEATHER_TOOLTIP;Scia:\n0 = solo i bordi,\n50 = a metà strada con il centro,\n100 = al centro. @@ -1583,13 +1564,18 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1689,18 +1675,14 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. !OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -1725,7 +1707,12 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1735,8 +1722,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1749,6 +1736,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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 @@ -1783,15 +1771,13 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1813,20 +1799,20 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset !TP_CBDL_AFT;After Black-and-White !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_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORAPP_NEUTRAL;Reset !TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1840,16 +1826,25 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1878,6 +1873,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -1959,6 +1956,15 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1983,6 +1989,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) @@ -2004,7 +2011,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_RAW_DCB;DCB !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2054,10 +2061,10 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2095,7 +2102,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2305,6 +2312,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". !ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 8a2f90dfd..568d7c842 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -74,6 +74,10 @@ DYNPROFILEEDITOR_DELETE;削除 DYNPROFILEEDITOR_EDIT;編集 DYNPROFILEEDITOR_EDIT_RULE;ダイナミックプロファイルの規定を変更 DYNPROFILEEDITOR_ENTRY_TOOLTIP;既定の符号は鈍いので\n入力する際に"re:"という接頭語を付けます\n通常の表現を使います +DYNPROFILEEDITOR_IMGTYPE_ANY;任意 +DYNPROFILEEDITOR_IMGTYPE_HDR;HDR +DYNPROFILEEDITOR_IMGTYPE_PS;ピクセルシフト +DYNPROFILEEDITOR_IMGTYPE_STD;標準え DYNPROFILEEDITOR_MOVE_DOWN;下に移動 DYNPROFILEEDITOR_MOVE_UP;上に移動 DYNPROFILEEDITOR_NEW;新規 @@ -146,6 +150,8 @@ FILEBROWSER_AUTOFLATFIELD;オート・フラットフィールド FILEBROWSER_BROWSEPATHBUTTONHINT;クリックで選択したパスをブラウズ FILEBROWSER_BROWSEPATHHINT;参照するパスを入力します\nCtrl-O パスのテキストボックスにフォーカス\nEnter / Ctrl-Enterその場所をブラウズします\nEsc 変更をクリア\nShift-Escフォーカスを削除\nパスのショートカット:\n ~ - ユーザーのホームディレクトリ\n ! - ユーザーの画像ディレクトリ FILEBROWSER_CACHE;cache +FILEBROWSER_CACHECLEARFROMFULL;プロファイルを含めcache内をクリアにする +FILEBROWSER_CACHECLEARFROMPARTIAL;プロファイルを除き、cache内をクリアにする FILEBROWSER_CLEARPROFILE;プロファイルのクリア FILEBROWSER_COLORLABEL_TOOLTIP;カラー・ラベル\n\nドロップダウン・メニューからか、ショートカット:\nShift-Ctrl-1 レッド\nShift-Ctrl-2 イエロー\nShift-Ctrl-3 グリーン\nShift-Ctrl-4 ブルー\nShift-Ctrl-5 パープル FILEBROWSER_COPYPROFILE;プロファイルをコピー @@ -751,12 +757,26 @@ HISTORY_MSG_485;レンズ補正 HISTORY_MSG_486;レンズ補正 - カメラ HISTORY_MSG_487;レンズ補正 - レンズ HISTORY_MSG_488;ダイナミックレンジ圧縮 +HISTORY_MSG_489;DRC - 細部 HISTORY_MSG_490;DRC - 量 HISTORY_MSG_491;ホワイトバランス HISTORY_MSG_492;RGBカーブ HISTORY_MSG_493;L*a*b*調整 HISTORY_MSG_CLAMPOOG;色域外の色を切り取る HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - カラー補正 +HISTORY_MSG_COLORTONING_LABREGION_AB;CT - 色の補正 +HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - 色度のマスク +HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - 色相のマスク +HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - 明度 +HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - 輝度のマスク +HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - リスト +HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - 彩度 +HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - マスクの表示 +HISTORY_MSG_DEHAZE_DEPTH;霞除去 - 深度 +HISTORY_MSG_DEHAZE_ENABLED;霞除去 +HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;霞除去 - 深度マップの表示 +HISTORY_MSG_DEHAZE_STRENGTH;霞除去 - 強さ +HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;デュアルデモザイク - 自動しきい値 HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - コントラストのしきい値 HISTORY_MSG_HISTMATCHING;トーンカーブの自動調節 HISTORY_MSG_ICM_OUTPUT_PRIMARIES;出力 - プライマリ @@ -781,6 +801,7 @@ HISTORY_MSG_RAWCACORR_COLORSHIFT;Rawの色収差補正 - 色ずれを回避 HISTORY_MSG_RAW_BORDER;Rawの境界 HISTORY_MSG_RESIZE_ALLOWUPSCALING;リサイズ - アップスケーリングを可能にする HISTORY_MSG_SHARPENING_CONTRAST;シャープ化 - コントラストのしきい値 +HISTORY_MSG_SH_COLORSPACE;S/H - 色空間 HISTORY_MSG_SOFTLIGHT_ENABLED;ソフトライト HISTORY_MSG_SOFTLIGHT_STRENGTH;ソフトライト - 強さ HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - アンカー @@ -871,9 +892,6 @@ IPTCPANEL_TITLE;タイトル IPTCPANEL_TITLEHINT;画像を短く表す言葉や撮影者名、或いは画像のタイトルでもよい IPTCPANEL_TRANSREFERENCE;作業のID IPTCPANEL_TRANSREFERENCEHINT;作業工程の管理やトラッキングのための画像の数字或いは識別 -LENSPROFILE_CORRECTION_AUTOMATCH;自動でパラメータを補正する -LENSPROFILE_CORRECTION_LCPFILE;LCPファイル -LENSPROFILE_CORRECTION_MANUAL;手動でパラメータを補正する LENSPROFILE_LENS_WARNING;注意:レンズプロファイルに関する切り抜きの因数がカメラの因数より大きいと、誤った結果になるかもしれません MAIN_BUTTON_FULLSCREEN;フルスクリーン MAIN_BUTTON_ICCPROFCREATOR;ICCプロファイルクリエーター @@ -944,7 +962,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;フォーカス・マスク表示\nショ MAIN_TOOLTIP_PREVIEWG;グリーン チャンネル表示\nショートカット: g MAIN_TOOLTIP_PREVIEWL;輝度表示\nショートカット: v\n\n0.299*R + 0.587*G + 0.114*B MAIN_TOOLTIP_PREVIEWR;レッド チャンネル表示\nショートカット: r -MAIN_TOOLTIP_PREVIEWSHARPMASK;プレビューで見るシャープ化機能のコントラストマスク\nショートカット: なし\n\nこの機能が使えるのはシャープ化機能が有効で、画像が100%以上に拡大されている場合だけ +MAIN_TOOLTIP_PREVIEWSHARPMASK;プレビューで見るシャープ化機能のコントラストマスク\nショートカット: p\n\nこの機能が使えるのはシャープ化機能が有効で、画像が100%以上に拡大されている場合だけ MAIN_TOOLTIP_QINFO;画像の情報\nショートカット: i MAIN_TOOLTIP_SHOWHIDELP1;表示/非表示 左パネル\nショートカット: l MAIN_TOOLTIP_SHOWHIDERP1;表示/非表示 右パネル\nショートカット: Alt-l @@ -982,6 +1000,7 @@ PARTIALPASTE_CROP;切り抜き PARTIALPASTE_DARKFRAMEAUTOSELECT;ダークフレーム自動選択 PARTIALPASTE_DARKFRAMEFILE;ダークフレーム・ファイル PARTIALPASTE_DEFRINGE;フリンジ低減 +PARTIALPASTE_DEHAZE;霞除去 PARTIALPASTE_DETAILGROUP;ディテールの設定 PARTIALPASTE_DIALOGLABEL;処理プロファイルの部分ペースト PARTIALPASTE_DIRPYRDENOISE;ノイズ低減 @@ -1018,6 +1037,7 @@ PARTIALPASTE_PREPROCESS_LINEDENOISE;ラインノイズ フィルタ PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF ラインフィルタ PARTIALPASTE_PRSHARPENING;リサイズ後のシャープ化 PARTIALPASTE_RAWCACORR_AUTO;自動色収差補正 +PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA 色ずれを回避 PARTIALPASTE_RAWCACORR_CAREDBLUE;色収差 レッドとブルー PARTIALPASTE_RAWEXPOS_BLACK;黒レベル PARTIALPASTE_RAWEXPOS_LINEAR;raw ホワイトポイント リニア補正係数 @@ -1045,9 +1065,9 @@ PARTIALPASTE_VIBRANCE;自然な彩度 PARTIALPASTE_VIGNETTING;周辺光量補正 PARTIALPASTE_WHITEBALANCE;ホワイトバランス PREFERENCES_ADD;追加 +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;ナビゲーターのガイドカラー PREFERENCES_APPLNEXTSTARTUP;要再起動 PREFERENCES_AUTOMONPROFILE;OSのメインモニター・プロファイルを使用 -PREFERENCES_AUTOSAVE_TP_OPEN;プログラム終了の前に、機能パネルの開閉状態を自動的に保存する PREFERENCES_BATCH_PROCESSING;バッチ処理 PREFERENCES_BEHADDALL;すべて '追加' PREFERENCES_BEHADDALLHINT;すべてのパラメータを 追加モードにします\nバッチツールパネルで設定される調整値が、各画像の既定値に加算されます @@ -1055,6 +1075,11 @@ PREFERENCES_BEHAVIOR;ビヘイビア PREFERENCES_BEHSETALL;すべて '設定' PREFERENCES_BEHSETALLHINT;すべてのパラメータを 設定モードにします\nバッチツールパネルで設定される調整値が、各画像の既定値に取って代わり同一になります PREFERENCES_BLACKBODY;タングステン +PREFERENCES_CACHECLEAR;クリア +PREFERENCES_CACHECLEAR_ALL;cacheに入れられたファイルを全てクリア: +PREFERENCES_CACHECLEAR_ALLBUTPROFILES;cacheに入れた処理プロファイル以外をクリア: +PREFERENCES_CACHECLEAR_ONLYPROFILES;cacheに入れた処理プロファイルだけをクリア: +PREFERENCES_CACHECLEAR_SAFETY;casheに入れたファイルだけをクリア。元画像に付随した処理プロファイルはそのまま PREFERENCES_CACHEMAXENTRIES;キャッシュエントリーの最大数 PREFERENCES_CACHEOPTS;cache オプション PREFERENCES_CACHETHUMBHEIGHT;サムネイル縦の最大値 @@ -1080,7 +1105,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;キーフォーマット PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;名前 PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;タグID PREFERENCES_CUSTPROFBUILDPATH;実行ファイルのパス -PREFERENCES_CUTOVERLAYBRUSH;切り抜きマスクカラー 不透明度 PREFERENCES_D50;5000K PREFERENCES_D50_OLD;5000k PREFERENCES_D55;5500K @@ -1102,7 +1126,6 @@ PREFERENCES_EDITORCMDLINE;カスタムコマンドライン PREFERENCES_EDITORLAYOUT;編集 レイアウト PREFERENCES_EXTERNALEDITOR;外部エディタ PREFERENCES_FBROWSEROPTS;ファイルブラウザ/サムネイルのオプション -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;ファイルブラウザでの一行のツールバー (低解像度表示用に選択解除) PREFERENCES_FILEFORMAT;ファイル形式 PREFERENCES_FLATFIELDFOUND;検出 PREFERENCES_FLATFIELDSDIR;フラットフィールド・ディレクトリ @@ -1159,7 +1182,6 @@ PREFERENCES_MONPROFILE;デフォルトのモニタープロファイル PREFERENCES_MONPROFILE_WARNOSX;MacのOSの制約により、サポート出来るのはsRGBだけです PREFERENCES_MULTITAB;マルチ編集タブモード PREFERENCES_MULTITABDUALMON;独自のウィンドウモードによるマルチ編集タブ -PREFERENCES_NAVGUIDEBRUSH;ナビゲーターのガイドカラー PREFERENCES_NAVIGATIONFRAME;ナビゲーション PREFERENCES_OUTDIR;出力ディレクトリ PREFERENCES_OUTDIRFOLDER;フォルダに保存 @@ -1199,10 +1221,7 @@ PREFERENCES_PSPATH;Adobe Photoshop のインストール・ディレクトリ PREFERENCES_REMEMBERZOOMPAN;ズームレベルとパン速度を記憶する PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;現在の画像のズームレベルとパン速度を記憶し、新しく開く画像に適用\n\nこのオプションが使えるのは、編集画面のモードが“シングル編集”で、“プレビューのズームレベルが100%以下の場合に使うデモザイク”が“pp3に従う”と設定されている場合だけです。 PREFERENCES_SAVE_TP_OPEN_NOW;機能パネルの今の開閉状態を保存する -PREFERENCES_SELECTFONT;フォント選択 -PREFERENCES_SELECTFONT_COLPICKER;カラーピッカーのフォントを選択 PREFERENCES_SELECTLANG;言語選択 -PREFERENCES_SELECTTHEME;テーマの選択 PREFERENCES_SERIALIZE_TIFF_READ;TIFFファイルの読み込み設定 PREFERENCES_SERIALIZE_TIFF_READ_LABEL;TIFFファイルのシリアル化 PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;画像フォルダーが多数の非圧縮のTIFFファイルで閉められている場合、このオプションを有効にすることで、サムネイル画像生成の効率が上がります @@ -1226,7 +1245,6 @@ PREFERENCES_TAB_GENERAL;一般 PREFERENCES_TAB_IMPROC;画像処理 PREFERENCES_TAB_PERFORMANCE;パフォーマンス PREFERENCES_TAB_SOUND;サウンド -PREFERENCES_THEME;テーマ PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;埋め込まれているJPEGのプレビュー PREFERENCES_THUMBNAIL_INSPECTOR_MODE;表示する画像 PREFERENCES_THUMBNAIL_INSPECTOR_RAW;ニュートラルなrawレンダリング @@ -1389,11 +1407,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;左右反転 TP_COARSETRAF_TOOLTIP_ROTLEFT;90度左回転\nショートカット: [\n\nシングル・エディタ・タブのショートカット: Alt-[ TP_COARSETRAF_TOOLTIP_ROTRIGHT;90度右回転\nショートカット: ]\n\nシングル・エディタ・タブのショートカット: Alt-] TP_COARSETRAF_TOOLTIP_VFLIP;上下反転 -TP_COLORAPP_ADAPTSCENE;撮影輝度への適応 -TP_COLORAPP_ADAPTSCENE_TOOLTIP;撮影環境の絶対輝度(cd/m2)\n1)Exif情報から算出:\nシャッター速度、ISO、絞り、カメラの露出補正\n2)rawのホワイトポイントとRTの露光補正スライダー値から算出 -TP_COLORAPP_ADAPTVIEWING;観視輝度への適応 (cd/m2) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;観視環境の絶対輝度\n(通常 16cd/m2) -TP_COLORAPP_ADAP_AUTO_TOOLTIP;チェックボックッスが有効の場合(推奨)はRTがExif情報に基づいて最適値を計算します\n手動で行う場合はチェックボックスを無効にします TP_COLORAPP_ALGO;アルゴリズム TP_COLORAPP_ALGO_ALL;すべて TP_COLORAPP_ALGO_JC;明度 + 色度 (JC) @@ -1423,8 +1436,6 @@ TP_COLORAPP_CURVEEDITOR3;カラーカーブ TP_COLORAPP_CURVEEDITOR3_TOOLTIP;色度、彩度、鮮やかさのいずれかを調整します\n\nCIECAM02調整前の色度(L*a*b*)のヒストグラムを表示します\nチェックボックスの"カーブにCIECAM02出力のヒストグラムを表示" が有効の場合、CIECAM02調整後のC,sまたはMのヒストグラムを表示します\n\nC, sとMは、メインのヒストグラム・パネルには表示されません\n最終出力は、メインのヒストグラム・パネルを参照してください TP_COLORAPP_DATACIE;カーブにCIECAM02出力のヒストグラムを表示 TP_COLORAPP_DATACIE_TOOLTIP;有効の場合、CIECAM02カーブのヒストグラムは、JかQ、CIECAM02調整後のCかs、またはMの値/範囲の近似値を表示します\nこの選択はメイン・ヒストグラムパネルには影響を与えません\n\n無効の場合、CIECAM02カーブのヒストグラムは、CIECAM調整前のL*a*b*値を表示します -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;チェックボックスが有効の場合 (推奨)\nRTは、CAT02で使用され、更にCIECAM02全体で使用する最適値を算出します\n手動で値を設定するには、チェックボックスを無効にします (65以上の値を推奨) -TP_COLORAPP_DEGREE_TOOLTIP;CIE色順応変換2002(CAT02)の量 TP_COLORAPP_FREE;任意の色温度+グリーン + CAT02 + [出力] TP_COLORAPP_GAMUT;色域制御 (L*a*b*) TP_COLORAPP_GAMUT_TOOLTIP;L*a*b*モードの色域制御を許可 @@ -1442,8 +1453,6 @@ TP_COLORAPP_NEUTRAL;リセット TP_COLORAPP_NEUTRAL_TIP;全てのスライダーチェックボックスとカーブをデフォルトにリセットします TP_COLORAPP_RSTPRO;レッドと肌色トーンを保護 TP_COLORAPP_RSTPRO_TOOLTIP;レッドと肌色トーンを保護はスライダーとカーブの両方に影響します -TP_COLORAPP_SHARPCIE;Q/C で、シャープ化、ディテールレベルのコントラストとフリンジ低減 -TP_COLORAPP_SHARPCIE_TOOLTIP;有効にした場合、シャープ化、ディテールレベルのコントラストとフリンジ低減は、CIECAM02を使用します TP_COLORAPP_SURROUND;周囲環境 TP_COLORAPP_SURROUND_AVER;普通 TP_COLORAPP_SURROUND_DARK;暗い @@ -1463,11 +1472,9 @@ TP_COLORAPP_TCMODE_SATUR;彩度 TP_COLORAPP_TEMP_TOOLTIP;選択した光源に関し色偏差は常に1が使われます\n\n色温度=2856\nD50 色温度=5003\nD55 色温度=5503\nD65 色温度=6504\nD75 色温度=7504 TP_COLORAPP_TONECIE;CIECAM02 明るさ(Q)を使用してトーンマッピング TP_COLORAPP_TONECIE_TOOLTIP;このオプションが無効になっている場合、トーンマッピングはL*a*b*空間を使用します\nこのオプションが有効になっている場合、トーンマッピングは、CIECAM02を使用します\nトーンマッピング(L*a*b*/CIECAM02)ツールを有効にするには、この設定を有効にする必要があります +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;観視環境の絶対輝度\n(通常 16cd/m2) TP_COLORAPP_WBCAM;WB [RT+CAT02] + [出力] TP_COLORAPP_WBRT;WB [RT] + [出力] -TP_COLORAPP_YB;Yb% (平均輝度) -TP_COLORAPP_YBSCENE;Yb% (平均輝度) -TP_COLORAPP_YBSCENE_TOOLTIP;自動が有効になると、Ybは画像の輝度の中間値から計算されます TP_COLORTONING_AB;o C/L TP_COLORTONING_AUTOSAT;自動彩度 TP_COLORTONING_BALANCE;バランス @@ -1481,6 +1488,16 @@ TP_COLORTONING_LAB;L*a*b*モデルでブレンド TP_COLORTONING_LABEL;カラートーン調整 TP_COLORTONING_LABGRID;L*a*b*カラー補正グリッド TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 +TP_COLORTONING_LABREGIONS;L*a*b*の補正領域 +TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +TP_COLORTONING_LABREGION_CHROMATICITYMASK;色度 +TP_COLORTONING_LABREGION_HUEMASK;色相 +TP_COLORTONING_LABREGION_LIGHTNESS;明度 +TP_COLORTONING_LABREGION_LIGHTNESSMASK;明度 +TP_COLORTONING_LABREGION_LIST_TITLE;補正 +TP_COLORTONING_LABREGION_MASK;マスク +TP_COLORTONING_LABREGION_SATURATION;彩度 +TP_COLORTONING_LABREGION_SHOWMASK;マスクの表示 TP_COLORTONING_LUMA;明度 TP_COLORTONING_LUMAMODE;明度を維持 TP_COLORTONING_LUMAMODE_TOOLTIP;カラー(レッド、グリーン、シアン、ブルーなど)を変える際に、これを有効にすると、各ピクセルの明度は維持されます。 @@ -1520,7 +1537,6 @@ TP_CROP_GUIDETYPE;ガイドタイプ: TP_CROP_H;高さ TP_CROP_LABEL;切り抜き TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP; 選択範囲切り抜き TP_CROP_W;W 幅 TP_CROP_X;X TP_CROP_Y;Y @@ -1529,6 +1545,10 @@ TP_DARKFRAME_LABEL;ダークフレーム TP_DEFRINGE_LABEL;フリンジ低減 TP_DEFRINGE_RADIUS;半径 TP_DEFRINGE_THRESHOLD;しきい値 +TP_DEHAZE_DEPTH;深度 +TP_DEHAZE_LABEL;霞除去 +TP_DEHAZE_SHOW_DEPTH_MAP;深度マップの表示 +TP_DEHAZE_STRENGTH;強さ TP_DIRPYRDENOISE_CHROMINANCE_AMZ;自動(多分割方式) TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;自動(分割方式) TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;色ノイズ低減の効果を確認して下さい\n注意:設定値の計算はあくまで平均的なもので、かなり主観的でです @@ -1763,9 +1783,6 @@ TP_LENSGEOM_AUTOCROP;自動的に切り抜き選択 TP_LENSGEOM_FILL;オートフィル TP_LENSGEOM_LABEL;レンズ / ジオメトリ TP_LENSPROFILE_LABEL;レンズ補正 プロファイル -TP_LENSPROFILE_USECA;色収差補正 -TP_LENSPROFILE_USEDIST;歪曲収差補正 -TP_LENSPROFILE_USEVIGN;周辺光量補正 TP_LOCALCONTRAST_AMOUNT;量 TP_LOCALCONTRAST_DARKNESS;暗い部分のレベル TP_LOCALCONTRAST_LABEL;ローカルコントラスト @@ -1840,6 +1857,8 @@ TP_RAW_DMETHOD;方式 TP_RAW_DMETHOD_PROGRESSBAR;%1 デモザイク中... TP_RAW_DMETHOD_PROGRESSBAR_REFINE;デモザイク・リファイン中... TP_RAW_DMETHOD_TOOLTIP;注: IGVとLMMSEは高ISO画像に適しています +TP_RAW_DUALDEMOSAICAUTOCONTRAST;自動しきい値 +TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;チェックボックスを有効にすると(推奨), RawTherapeeは画像の滑らかな部分をベースに最適値を計算します。\n画像に滑らかな部分がない、或いはノイズが非常に多い画像の場合、最適値は0に設定されます。\n最適値を手動で設定する場合は、チェックボックスを無効にします(画像に次第で最適値は異なります)。 TP_RAW_DUALDEMOSAICCONTRAST;コントラストのしきい値 TP_RAW_EAHD;EAHD TP_RAW_FALSECOLOR;偽色抑制処理の回数 @@ -1902,7 +1921,7 @@ TP_RESIZE_HEIGHT;高さ TP_RESIZE_LABEL;リサイズ TP_RESIZE_LANCZOS;ランチョス TP_RESIZE_METHOD;方式: -TP_RESIZE_NEAREST;ニアリスト +TP_RESIZE_NEAREST;ニアレスト TP_RESIZE_SCALE;スケール TP_RESIZE_SPECIFY;条件指定: TP_RESIZE_W;幅: @@ -1910,7 +1929,6 @@ TP_RESIZE_WIDTH;幅 TP_RETINEX_CONTEDIT_HSL;ヒストグラムイコライザ HSL TP_RETINEX_CONTEDIT_LAB;ヒストグラムイコライザ L*a*b* TP_RETINEX_CONTEDIT_LH;色相イコライザ -TP_RETINEX_CONTEDIT_MAP;マスクイコライザ TP_RETINEX_CURVEEDITOR_CD;輝度=f(輝度) TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;輝度に応じた輝度の関数 L=f(L)\nハロとアーティファクトを減らすためにrawデータを補正します TP_RETINEX_CURVEEDITOR_LH;強さ=f(色相) @@ -1948,7 +1966,6 @@ TP_RETINEX_LABEL;レティネックス TP_RETINEX_LABEL_MASK;マスク TP_RETINEX_LABSPACE;L*a*b* TP_RETINEX_LOW;低 -TP_RETINEX_MAP;マスクの方法 TP_RETINEX_MAP_GAUS;ガウシアンマスク TP_RETINEX_MAP_MAPP;シャープマスク (一部ウェーブレット) TP_RETINEX_MAP_MAPT;シャープマスク (全てウェーブレット) @@ -2036,6 +2053,7 @@ TP_SOFTLIGHT_STRENGTH;強さ TP_TM_FATTAL_AMOUNT;量 TP_TM_FATTAL_ANCHOR;アンカー TP_TM_FATTAL_LABEL;ダイナミックレンジ圧縮 +TP_TM_FATTAL_THRESHOLD;細部 TP_VIBRANCE_AVOIDCOLORSHIFT;色ずれを回避 TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;肌色トーン @@ -2283,48 +2301,42 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!DYNPROFILEEDITOR_IMGTYPE_ANY;Any -!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR -!DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift -!DYNPROFILEEDITOR_IMGTYPE_STD;Standard -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!HISTORY_MSG_489;DRC - Detail -!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask -!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask -!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness -!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask -!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List -!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask -!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth -!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal -!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map -!HISTORY_MSG_DEHAZE_STRENGTH;Dehaze - Strength -!HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold -!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PREFERENCES_CACHECLEAR;Clear -!PREFERENCES_CACHECLEAR_ALL;Clear all cached files: -!PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: -!PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: -!PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions -!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 -!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C -!TP_COLORTONING_LABREGION_HUEMASK;H -!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness -!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L -!TP_COLORTONING_LABREGION_LIST_TITLE;Correction -!TP_COLORTONING_LABREGION_MASK;Mask -!TP_COLORTONING_LABREGION_SATURATION;Saturation -!TP_COLORTONING_LABREGION_SHOWMASK;Show mask -!TP_DEHAZE_DEPTH;Depth -!TP_DEHAZE_LABEL;Haze Removal -!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map -!TP_DEHAZE_STRENGTH;Strength -!TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). -!TP_TM_FATTAL_THRESHOLD;Detail +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power +!TP_COLORTONING_LABREGION_SLOPE;Slope +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. +!TP_RETINEX_CONTEDIT_MAP;Equalizer +!TP_RETINEX_MAP;Method +!TP_WBALANCE_PICKER;Pick diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index 22847390d..45d06fdd8 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -271,7 +271,6 @@ PREFERENCES_PROFILESAVECACHE;Saglabāt apstrādes profilu kešā PREFERENCES_PROFILESAVEINPUT;Saglabāt apstrādes profilu pie ievades faila PREFERENCES_PSPATH;Adobe Photoshop instalācijas direktorijs PREFERENCES_SELECTLANG;Izvēlies valodu -PREFERENCES_SELECTTHEME;Izvēlieties tēmu PREFERENCES_SHOWBASICEXIF;Rādīt Exif pamatdatus PREFERENCES_SHOWDATETIME;Rādīt datumu un laiku PREFERENCES_SHTHRESHOLD;Cirpto ēnu slieksnis @@ -331,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Trešdaļas TP_CROP_GUIDETYPE;Vadlīnijas: TP_CROP_H;A TP_CROP_LABEL;Kadrējums -TP_CROP_SELECTCROP; Norādīt kadrējumu TP_CROP_W;P TP_CROP_X;x TP_CROP_Y;y @@ -982,13 +980,18 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1089,10 +1092,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1126,17 +1125,17 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1218,8 +1217,14 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1236,8 +1241,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1253,7 +1258,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1265,8 +1269,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1312,7 +1316,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel @@ -1335,12 +1338,10 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1353,7 +1354,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1409,7 +1409,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1473,11 +1473,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1488,6 +1484,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1507,8 +1504,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1520,14 +1515,13 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1547,11 +1541,9 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1565,16 +1557,25 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1607,6 +1608,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1824,10 +1827,16 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1870,6 +1879,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1902,7 +1912,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1963,10 +1973,10 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2004,7 +2014,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2280,6 +2290,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 600877671..9a459d5be 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -482,7 +482,6 @@ PREFERENCES_CLIPPINGIND;Kiégett és bebukott részek jelzése PREFERENCES_CUSTPROFBUILD;Egyedi profil készítő PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial profile should be generated for an image.\nReceives command line params to allow a rules based .pp3 generation:\n[Path raw/JPG] [Path default profile] [f-no] [exposure in secs] [focal length in mm] [ISO] [Lens] [Camera] PREFERENCES_CUSTPROFBUILDPATH;Indítóállomány útvonala -PREFERENCES_CUTOVERLAYBRUSH;Vágás maszkjának színe/áttetszősége PREFERENCES_DARKFRAMEFOUND;Találat PREFERENCES_DARKFRAMESHOTS;kép PREFERENCES_DARKFRAMETEMPLATES;sablonok @@ -497,7 +496,6 @@ PREFERENCES_DIRSOFTWARE;Telepítés helye PREFERENCES_EDITORLAYOUT;Szerkesztési mód PREFERENCES_EXTERNALEDITOR;Külső képszerkesztő program PREFERENCES_FBROWSEROPTS;Állományböngésző beállításai -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Egysoros állományböngésző eszköztár (alacsony felbontás esetén hagyd üresen) PREFERENCES_FILEFORMAT;Állományformátum PREFERENCES_FLATFIELDFOUND;Találat PREFERENCES_FLATFIELDSDIR;Flat Fields könyvtár @@ -544,9 +542,7 @@ PREFERENCES_PROFILESAVECACHE;Feldolgozási paraméterek mentése a gyorsítótá PREFERENCES_PROFILESAVEINPUT;Feldolgozási paraméterek mentése a kép mellé PREFERENCES_PROPERTY;Property PREFERENCES_PSPATH;Adobe Photoshop telepítési könyvtára -PREFERENCES_SELECTFONT;Betűtípus kiválasztása PREFERENCES_SELECTLANG;Nyelv kiválasztása -PREFERENCES_SELECTTHEME;Kinézet kiválasztása PREFERENCES_SET;Beállítás PREFERENCES_SHOWBASICEXIF;Fontosabb EXIF információk megjelenítése PREFERENCES_SHOWDATETIME;Felvétel dátumának és idejének megjelenítése @@ -630,7 +626,6 @@ TP_CROP_GUIDETYPE;Segédvonal típusa: TP_CROP_H;M TP_CROP_LABEL;Kivágás TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP; Kijelölés egérrel TP_CROP_W;Sz TP_CROP_X;x TP_CROP_Y;y @@ -1254,13 +1249,18 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1361,10 +1361,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 @@ -1378,11 +1374,11 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1424,7 +1420,13 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALL;All to 'Set' @@ -1439,8 +1441,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1460,6 +1462,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_D65;6500K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLUOF2;Fluorescent F2 !PREFERENCES_FLUOF7;Fluorescent F7 !PREFERENCES_FLUOF11;Fluorescent F11 @@ -1490,7 +1493,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. @@ -1509,15 +1511,13 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1562,7 +1562,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1625,11 +1625,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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_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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1640,6 +1636,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1659,8 +1656,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1672,14 +1667,13 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1699,11 +1693,9 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1717,16 +1709,25 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1756,6 +1757,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -1917,10 +1920,16 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. !TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection !TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1954,6 +1963,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) @@ -1978,7 +1988,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2030,10 +2040,10 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2071,7 +2081,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2297,6 +2307,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_WAVELET_TON;Toning !TP_WBALANCE_EQBLUERED;Blue/Red equalizer !TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". !TP_WBALANCE_WATER1;UnderWater 1 diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 315868150..e9b05ab7f 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -903,6 +903,7 @@ PARTIALPASTE_VIGNETTING;Vignetteringscorrectie PARTIALPASTE_WAVELETGROUP;Wavelet verwerking PARTIALPASTE_WHITEBALANCE;Witbalans PREFERENCES_ADD;Toevoegen +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator randkleur PREFERENCES_APPLNEXTSTARTUP;herstart vereist PREFERENCES_AUTOMONPROFILE;Gebruik automatisch het standaard monitorprofiel \nvan het besturingsysteem PREFERENCES_BATCH_PROCESSING;Batch-verwerking @@ -915,10 +916,6 @@ PREFERENCES_BLACKBODY;Tungsten(wolfraam) PREFERENCES_CACHEMAXENTRIES;Maximaal aantal elementen in cache PREFERENCES_CACHEOPTS;Cache-opties PREFERENCES_CACHETHUMBHEIGHT;Maximale hoogte miniaturen -PREFERENCES_CIEART;CIECAM02 optimalisatie -PREFERENCES_CIEART_FRAME;CIECAM02-Specifieke instellingen -PREFERENCES_CIEART_LABEL;Gebruik float precisie in plaats van double -PREFERENCES_CIEART_TOOLTIP;Indien aangezet worden CIECAM02 berekening uitgevoerd in het single-precision floating-point formaat in plaats van double-precision. Dit levert een iets hogere verwerkingssnelheid ten koste van een verwaarloosbaar verlies aan kwaliteit PREFERENCES_CLIPPINGIND;Indicatie over-/onderbelichting PREFERENCES_CLUTSCACHE;HaldCLUT cache PREFERENCES_CLUTSCACHE_LABEL;Maximum aantal cached Cluts @@ -935,7 +932,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys formaat PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Naam PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Pad naar programma of script -PREFERENCES_CUTOVERLAYBRUSH;Kleur uitsnedemasker PREFERENCES_D50;5000K PREFERENCES_D55;5500K PREFERENCES_D60;6000K @@ -954,7 +950,6 @@ PREFERENCES_DIRSOFTWARE;Installatiemap PREFERENCES_EDITORLAYOUT;Bewerkingsvenster PREFERENCES_EXTERNALEDITOR;Externe editor PREFERENCES_FBROWSEROPTS;Opties bestandsnavigator -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Enkele rij navigator werkbalk (de-activeer voor lage resolutie) PREFERENCES_FILEFORMAT;Bestandstype PREFERENCES_FLATFIELDFOUND;Gevonden PREFERENCES_FLATFIELDSDIR;Vlakveldmap @@ -1009,7 +1004,6 @@ PREFERENCES_MONPROFILE;Standaard kleurprofiel PREFERENCES_MONPROFILE_WARNOSX;Als gevolg van MacOS beperkingen wordt alleen sRGB ondersteund. PREFERENCES_MULTITAB;Multi-tab: elke foto opent in nieuw tabvenster PREFERENCES_MULTITABDUALMON;Multi-tab, indien beschikbaar op tweede monitor -PREFERENCES_NAVGUIDEBRUSH;Navigator randkleur PREFERENCES_NAVIGATIONFRAME;Navigatie PREFERENCES_OUTDIR;Uitvoermap PREFERENCES_OUTDIRFOLDER;Sla op in map @@ -1044,13 +1038,10 @@ PREFERENCES_PRTPROFILE;Kleurprofiel PREFERENCES_PSPATH;Installatiemap Adobe Photoshop PREFERENCES_REMEMBERZOOMPAN;Onthoud zoom % en pan startpunt PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Onthoud het zoom % en pan startpunt van de huidige afbeelding als er een nieuwe afbeelding wordt geopend.\n\nDeze optie werkt alleen in "Single Editor Tab Mode" en wanneer "Demozaïekmethode van het voorbeeld <100% zoom" hetzelfde is als "Gelijk aan PP3". -PREFERENCES_SELECTFONT;Kies lettertype -PREFERENCES_SELECTFONT_COLPICKER;Font van de Kleurkiezer PREFERENCES_SELECTLANG;Selecteer taal -PREFERENCES_SELECTTHEME;Kies thema -PREFERENCES_SERIALIZE_TIFF_READ;Tiff Lees Instellingen -PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serieel lezen van tiff bestanden -PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Als een map veel ongecomprimeerde tiff bestanden bevat dan versnelt deze optie het genereren van de miniaturen. +PREFERENCES_SERIALIZE_TIFF_READ;TIFF Lees Instellingen +PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serieel lezen van TIFF bestanden +PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Als een map veel ongecomprimeerde TIFF bestanden bevat dan versnelt deze optie het genereren van de miniaturen. PREFERENCES_SET;Activeer PREFERENCES_SHOWBASICEXIF;Toon standaard Exif-info PREFERENCES_SHOWDATETIME;Toon datum en tijd @@ -1214,11 +1205,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Horizontaal spiegelen TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left.\n\nSneltoets:\n[ - Multi-tab Mode,\nAlt-[ - Enkel-tab Mode. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right.\n\nSneltoets:\n] - Multi-tab Mode,\nAlt-] - Enkel-tab Mode. TP_COARSETRAF_TOOLTIP_VFLIP;Verticaal spiegelen -TP_COLORAPP_ADAPTSCENE;Opnameomgeving luminositeit -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Absolute luminantie van de opnameomgeving (cd/m²).\n1) Berekend op basis van de Exif data:\nSluitertijd - ISO-waarde - Diafragma - Camera belichtingscompensatie.\n2) Berekend op basis van het raw witpunt en RT's Belichtingscompensatie -TP_COLORAPP_ADAPTVIEWING;Weergaveomgeving luminositeit (cd/m2) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Absolute luminantie van de weergaveomgeving \n(gebruikelijk 16cd/m²) -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Als het keuzevakje is aangezet (aanbevolen), dan berekent RT de optimale waarde op basis van de Exif data.\nOm de waarde handmatig in te stellen moet het keuzevakje worden uitgezet TP_COLORAPP_ALGO;Algoritme TP_COLORAPP_ALGO_ALL;Alle TP_COLORAPP_ALGO_JC;Lichtheid + Chroma (JC) @@ -1248,8 +1234,6 @@ TP_COLORAPP_CURVEEDITOR3;Chroma curve TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Wijzigt ofwel chroma, verzadiging of kleurrijkheid.\n Het Histogram toont chromaticiteit (Lab) voor CIECAM wijzigingen.\nHet Histogram toont C,s,M na toepassing van CIECAM indien het selectievakje 'Toon CIECAM uitvoer' is aangezet.\n(C,s,M) worden niet getoond in het Hoofd histogram paneel. \nRaadpleeg het Histogram paneel voor de definitieve uitvoer TP_COLORAPP_DATACIE;CIECAM02 uitvoer histogram in de curven TP_COLORAPP_DATACIE_TOOLTIP;Indien aangezet, tonen de histogrammen van de CIECAM02 curven bij benadering de waarden/reeksen voor J of Q, en C, s of M na de CIECAM02 aanpassingen.\nDit beïnvloed niet het hoofd histogram paneel.\n\nIndien uitgezet tonen de histogrammen van de CIECAM02 curven de Lab waarden zoals deze waren voor de CIECAM02 aanpassingen -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Als het keuzevakje is aangezet (aanbevolen), dan berekent RT een optimale waarde. Deze wordt gebruikt door CAT02 en door CIECAM02.\nOm de waarden handmatig in te stellen moet het keuzevakje worden uitgezet (waarden groter dan 65 worden aanbevolen) -TP_COLORAPP_DEGREE_TOOLTIP;Hoeveelheid van CIE Chromatic Adaptation Transform 2002 TP_COLORAPP_GAMUT;Gamut controle (Lab) TP_COLORAPP_GAMUT_TOOLTIP;Sta gamut controle toe in Lab mode TP_COLORAPP_HUE;Tint (h) @@ -1264,8 +1248,6 @@ TP_COLORAPP_MODEL;Witpunt Model TP_COLORAPP_MODEL_TOOLTIP;WB [RT] + [uitvoer]:\nRT's WB wordt gebruikt voor de opname, CIECAM02 wordt gezet op D50. Het uitvoerapparaat's wit gebruikt de instelling van Voorkeuren > Kleurbeheer\n\nWB [RT+CAT02] + [output]:\nRT's WB instellingen worden gebruikt door CAT02 en het uitvoerapparaat's wit gebruikt de waarde van de Voorkeuren. TP_COLORAPP_RSTPRO;Rode en Huidtinten bescherming TP_COLORAPP_RSTPRO_TOOLTIP;Rode en Huidtinten bescherming (schuifbalk en curven) -TP_COLORAPP_SHARPCIE;Verscherpen, Detailcontrast, Microcontrast & Randen met Q/C -TP_COLORAPP_SHARPCIE_TOOLTIP;Verscherpen, Detailcontrast, Microcontrast & Randen zullen CIECAM02 gebruiken wanneer dit is aangezet. TP_COLORAPP_SURROUND;Omgeving TP_COLORAPP_SURROUND_AVER;Gemmiddeld TP_COLORAPP_SURROUND_DARK;Donker @@ -1284,6 +1266,7 @@ TP_COLORAPP_TCMODE_LIGHTNESS;lichtheid TP_COLORAPP_TCMODE_SATUR;Verzadiging TP_COLORAPP_TONECIE;Tonemapping gebruik makend van CIECAM TP_COLORAPP_TONECIE_TOOLTIP;Indien uitgezet zal tonemapping plaats vinden in Lab.\nIndien aangezet zal tonemapping gebruik maken van CIECAM02.\nVoorwaarde is dat Tonemapping (Lab/CIECAM02) actief is. +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminantie van de weergaveomgeving \n(gebruikelijk 16cd/m²) TP_COLORAPP_WBCAM;WB [RT+CAT02] + [uitvoer] TP_COLORAPP_WBRT;WB [RT] + [uitvoer] TP_COLORTONING_AB;o C/L @@ -1336,7 +1319,6 @@ TP_CROP_GUIDETYPE;Hulplijnen: TP_CROP_H;Hoogte TP_CROP_LABEL;Bijsnijden TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Selecteer gebied TP_CROP_W;Breedte TP_CROP_X;X TP_CROP_Y;Y @@ -1575,9 +1557,6 @@ TP_LENSGEOM_AUTOCROP;Automatisch bijsnijden TP_LENSGEOM_FILL;Automatisch uitvullen TP_LENSGEOM_LABEL;Objectief / Geometrie TP_LENSPROFILE_LABEL;Lenscorrectie Profielen -TP_LENSPROFILE_USECA;CA correctie -TP_LENSPROFILE_USEDIST;Lensvervorming correctie -TP_LENSPROFILE_USEVIGN;Vignettering correctie TP_NEUTRAL;Terugzetten TP_NEUTRAL_TIP;Alle belichtingsinstellingen naar 0 TP_PCVIGNETTE_FEATHER;Straal @@ -1705,7 +1684,6 @@ TP_RESIZE_WIDTH;Breedte TP_RETINEX_CONTEDIT_HSL;Histogram balans HSL TP_RETINEX_CONTEDIT_LAB;Histogram balans L*a*b* TP_RETINEX_CONTEDIT_LH;Tint balans -TP_RETINEX_CONTEDIT_MAP;Masker mixer TP_RETINEX_CURVEEDITOR_CD;L=f(L) TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminantie volgens luminantie L=f(L)\nCorrigeert ruwe data om halo's and artefacte te verminderen. TP_RETINEX_CURVEEDITOR_LH;Sterkte=f(H) @@ -1740,7 +1718,6 @@ TP_RETINEX_LABEL;Retinex TP_RETINEX_LABEL_MASK;Masker TP_RETINEX_LABSPACE;L*a*b* TP_RETINEX_LOW;Laag -TP_RETINEX_MAP;Masker methode TP_RETINEX_MAP_GAUS;Gaussiaans masker TP_RETINEX_MAP_MAPP;Verscherp masker (wavelet gedeeltelijk) TP_RETINEX_MAP_MAPT;Verscherp masker (wavelet totaal) @@ -2117,13 +2094,18 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -2198,16 +2180,12 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... !ICCPROFCREATOR_SLOPE;Slope !ICCPROFCREATOR_TRC_PRESET;Tone response curve: -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. !OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -2220,14 +2198,19 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: !PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -2235,15 +2218,15 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_LANG;Language !PREFERENCES_PERFORMANCE_THREADS;Threads !PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file !PREFERENCES_PROFILESAVELOCATION;Processing profile saving location -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -2264,25 +2247,36 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORAPP_NEUTRAL;Reset !TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -2298,6 +2292,15 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -2315,6 +2318,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAW_2PASS;1-pass+fast !TP_RAW_4PASS;3-pass+fast @@ -2322,7 +2326,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_RAW_BORDER;Border !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony 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_PIXELSHIFTDMETHOD;Demosaic method for motion @@ -2334,9 +2338,11 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_RAW_RCD;RCD !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission !TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. +!TP_RETINEX_MAP;Method !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light @@ -2346,3 +2352,4 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_TM_FATTAL_LABEL;Dynamic Range Compression !TP_TM_FATTAL_THRESHOLD;Detail !TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted +!TP_WBALANCE_PICKER;Pick diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index 9ec4fc6e2..3db05ead0 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -271,7 +271,6 @@ PREFERENCES_PROFILESAVECACHE;Lagre prosesseringsparametre til cachen PREFERENCES_PROFILESAVEINPUT;Lagre prosesseringsparametre i innfilen PREFERENCES_PSPATH;Adobe Photoshop installasjonsfolder PREFERENCES_SELECTLANG;Velg språk -PREFERENCES_SELECTTHEME;Velg tema PREFERENCES_SHOWBASICEXIF;Vis utvidet Exif-informasjon PREFERENCES_SHOWDATETIME;Vis dato og tid PREFERENCES_SHTHRESHOLD;Terskelverdi for markerte skygger @@ -331,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Tredjedelsreglen TP_CROP_GUIDETYPE;Guidetype: TP_CROP_H;H TP_CROP_LABEL;Beskjæring -TP_CROP_SELECTCROP;Velg beskjæringsområde TP_CROP_W;B TP_CROP_X;x TP_CROP_Y;y @@ -981,13 +979,18 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1088,10 +1091,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1125,17 +1124,17 @@ TP_WBALANCE_TEMPERATURE;Temperatur !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1217,8 +1216,14 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1235,8 +1240,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1252,7 +1257,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1264,8 +1268,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1311,7 +1315,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel @@ -1334,12 +1337,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1352,7 +1353,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1408,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1472,11 +1472,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1487,6 +1483,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1506,8 +1503,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1519,14 +1514,13 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1546,11 +1540,9 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1564,16 +1556,25 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1606,6 +1607,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1823,10 +1826,16 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1869,6 +1878,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1901,7 +1911,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1962,10 +1972,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2003,7 +2013,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2279,6 +2289,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index ec60c307f..1026e9bd1 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -667,6 +667,7 @@ PARTIALPASTE_VIBRANCE;Jaskrawość PARTIALPASTE_VIGNETTING;Korekcja winietowania PARTIALPASTE_WHITEBALANCE;Balans bieli PREFERENCES_ADD;Dodaj +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora PREFERENCES_APPLNEXTSTARTUP;wymaga ponownego uruchomienia PREFERENCES_AUTOMONPROFILE;Automatycznie użyj systemowego profilu monitora PREFERENCES_BATCH_PROCESSING;Przetwarzanie wsadowe @@ -679,9 +680,6 @@ PREFERENCES_BLACKBODY;Wolfram PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisów w pamięci podręcznej PREFERENCES_CACHEOPTS;Opcje pamięci podręcznej PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokość miniatury -PREFERENCES_CIEART;CIECAM02 optymalizacja -PREFERENCES_CIEART_LABEL;Użyj precyzję zmiennoprzecinkową zamiast podwójną. -PREFERENCES_CIEART_TOOLTIP;Gdy umożliwione, kalkulacje CIECAM02 są wykonywane w notacji zmiennoprzecinkowej o pojedyńczej precyzji zamiast podwójnej. Skraca to czas egzekucji kosztem nieistotnej zmiany w jakości. PREFERENCES_CLIPPINGIND;Pokazywanie obciętych prześwietleń/cieni PREFERENCES_CLUTSDIR;Folder obrazów HaldCLUT PREFERENCES_CUSTPROFBUILD;Zewnętrzny kreator profilów przetwarzania @@ -690,7 +688,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Rodzaj kluczy PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nazwa PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Ścieżka pliku wykonywalnego -PREFERENCES_CUTOVERLAYBRUSH;Kolor/przezroczystość maski kadrowania PREFERENCES_D50;5000K PREFERENCES_D55;5500K PREFERENCES_D60;6000K @@ -709,7 +706,6 @@ PREFERENCES_DIRSOFTWARE;Katalog instalacyjny PREFERENCES_EDITORLAYOUT;Układ edytora PREFERENCES_EXTERNALEDITOR;Zewnętrzny edytor PREFERENCES_FBROWSEROPTS;Opcje przeglądarki plików -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Pojedynczy wiersz paska narzędzi (odznaczyć dla niskich rozdzielczości) PREFERENCES_FILEFORMAT;Format pliku PREFERENCES_FLATFIELDFOUND;Znaleziono PREFERENCES_FLATFIELDSDIR;Katalog z pustymi polami @@ -750,7 +746,6 @@ PREFERENCES_MENUOPTIONS;Opcje menu PREFERENCES_METADATA;Metadane PREFERENCES_MULTITAB;Tryb wielu zakładek PREFERENCES_MULTITABDUALMON;Tryb wielu zakładek (na drugim monitorze jeśli dostępny) -PREFERENCES_NAVGUIDEBRUSH;Kolor ramki Nawigatora PREFERENCES_OUTDIR;Katalog wyjściowy PREFERENCES_OUTDIRFOLDER;Zapisz do katalogu PREFERENCES_OUTDIRFOLDERHINT;Umieszcza zapisywane zdjęcia w wybranym katalogu @@ -771,9 +766,7 @@ PREFERENCES_PROFILESAVECACHE;Zapisz parametry przetwarzania w pamięci podręczn PREFERENCES_PROFILESAVEINPUT;Zapisz parametry przetwarzania obok pliku wejściowego PREFERENCES_PROPERTY;Własność PREFERENCES_PSPATH;Katalog w którym zainstalowany jest Adobe Photoshop -PREFERENCES_SELECTFONT;Wybierz czcionkę PREFERENCES_SELECTLANG;Wybierz język -PREFERENCES_SELECTTHEME;Wybierz temat PREFERENCES_SET;Ustaw PREFERENCES_SHOWBASICEXIF;Pokaż podstawowe dane Exif PREFERENCES_SHOWDATETIME;Pokaż datę i czas @@ -926,11 +919,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Odbij w poziomie TP_COARSETRAF_TOOLTIP_ROTLEFT;Obróć w lewo.\n\nSkróty:\n[ - Tryb wielu zakładek,\nAlt-[ - Tryb jednej zakładki. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Obróć w prawo.\n\nSkróty:\n] - Tryb wielu zakładek,\nAlt-] - Tryb jednej zakładki. TP_COARSETRAF_TOOLTIP_VFLIP;Odbij w pionie -TP_COLORAPP_ADAPTSCENE;Luminancji sceny -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Bezwzględna luminancja sceny (cd/m²).\n1)Obliczona za pomocą Exif:\nCzas naświetlania - ISO - Przysłona - Korekcja ekspozycji EV w aparacie.\n2)Obliczona również na podstawie punktu bieli raw oraz korekty ekspozycji w RawTherapee -TP_COLORAPP_ADAPTVIEWING;Luminancji widowni (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Bezwzględna luminancja widowni\n(zazwyczaj 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Jesli zaznaczone (polecamy), RawTherapee obliczy optymalną wartość na podstawie Exif.\nAby ustawic wartość ręcznie, należy wpierw odznaczyc pudło. TP_COLORAPP_ALGO;Algorytm TP_COLORAPP_ALGO_ALL;Wszystkie TP_COLORAPP_ALGO_JC;Światłość + Chroma (JC) @@ -960,8 +948,6 @@ TP_COLORAPP_CURVEEDITOR3;Krzywa koloru TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Ustawienie chromy, nasycenia bądź barwistości.\n\nPokazuje histogram chromatyczności (L*a*b*) przed CIECAM02.\nJeśli opcja "Pokaż histogramy wyjściowe CIECAM02 za krzywymi" jest włączona, pokazuje histogram C, s bądź M po CIECAM02.\n\nC, s oraz M nie są pokazywane w głównym histogramie.\nEfekt końcowy jest przedstawiony w głównym histogramie. TP_COLORAPP_DATACIE;Pokaż histogramy wyjściowe CIECAM02 za krzywymi TP_COLORAPP_DATACIE_TOOLTIP;Kiedy opcja jest włączona, histogramy za krzywymi CIECAM02 pokazują przybliżone wartości/zakresy J lub Q, oraz C, s lub M po korekcjach CIECAM02.\nTen wybór nie ma wpływu na główny histogram.\n\nKiedy opcja jest wyłączona, histogramy za krzywymi CIECAM02 pokazują wartości L*a*b* przed korekcjami CIECAM02. -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Jeśli opcja jest zaznaczona (zalecane), RawTherapee kalkuluje wartość optymalną, która jest potem użyta przez CAT02 oraz przez całość CIECAM02.\nAby ustawić wartość ręcznie, odznacz wpierw opcję (wartości powyżej 65 zalecane). -TP_COLORAPP_DEGREE_TOOLTIP;Siła CIE Chromatic Adaptation Transform 2002 TP_COLORAPP_GAMUT;Kontrola gamma (L*a*b*). TP_COLORAPP_GAMUT_TOOLTIP;Włącz kontrolę gamma w trybie L*a*b*. TP_COLORAPP_HUE;Odcień (hue, h) @@ -976,8 +962,6 @@ TP_COLORAPP_MODEL;Model PB TP_COLORAPP_MODEL_TOOLTIP;Model punktu bieli.\n\nBB [RT] + [wyjściowy]:\nBalans bieli RawTherapee jest użyty dla sceny, CIECAM02 jest ustawione na D50, i balans bieli urządzenia wyjściowego ustawiony jest w Ustawieniach > Zarządzanie Kolorami\n\nBB [RT+CAT02] + [wyjściowe]:\nUstawienia balansu bieli RawTherapee są używane przez CAT02, i balans bieli urządzenia wyjściowego jest ustawione w Ustawieniach > Zarządzanie Kolorami. TP_COLORAPP_RSTPRO;Ochrona odcieni skóry i czerwieni TP_COLORAPP_RSTPRO_TOOLTIP;Ochrona odcieni skóry i czerwieni (suwaki i krzywe) -TP_COLORAPP_SHARPCIE;- -TP_COLORAPP_SHARPCIE_TOOLTIP;- TP_COLORAPP_SURROUND;Otoczenie TP_COLORAPP_SURROUND_AVER;Średnie TP_COLORAPP_SURROUND_DARK;Ciemne @@ -996,6 +980,7 @@ TP_COLORAPP_TCMODE_LIGHTNESS;Światłość TP_COLORAPP_TCMODE_SATUR;Nasycenie TP_COLORAPP_TONECIE;Tone mapping za pomocą jasności CIECAM02 (Q) TP_COLORAPP_TONECIE_TOOLTIP;Jeśli ta opcja jest wyłączona, tone mapping odbywa się w przestrzeni kolorów L*a*b*, zaś jeśli jest włączona, w przestrzeni kolorów CIECAM02.\nNarzędzie Tone Mapping musi być włączone aby to utawienie działało. +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Bezwzględna luminancja widowni\n(zazwyczaj 16cd/m²). TP_COLORAPP_WBCAM;BB [RT+CAT02] + [wyjściowy] TP_COLORAPP_WBRT;BB [RT] + [wyjściowy] TP_COLORTONING_AB;o C/L @@ -1045,7 +1030,6 @@ TP_CROP_GUIDETYPE;Typ pomocy: TP_CROP_H;Wysokość TP_CROP_LABEL;Kadrowanie TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Wybierz kadr TP_CROP_W;Szerokość TP_CROP_X;X TP_CROP_Y;Y @@ -1236,9 +1220,6 @@ TP_LENSGEOM_AUTOCROP;Auto-kadrowanie TP_LENSGEOM_FILL;Auto-wypełnienie TP_LENSGEOM_LABEL;Obiektyw / Geometria TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP -TP_LENSPROFILE_USECA;Korekja aberacji chromatycznej -TP_LENSPROFILE_USEDIST;Korekcja dystorsji -TP_LENSPROFILE_USEVIGN;Korekcja winietowania TP_NEUTRAL_TIP;Zresetuj ustawienia do wartości neutralnych.\nDziała na tych samych suwakach na których funkcja "Wyrównaj poziomy" działa, niezależnie od tego czy funkcja ta była użyta czy nie. TP_PCVIGNETTE_FEATHER;Wtapianie TP_PCVIGNETTE_FEATHER_TOOLTIP;Wtapianie:\n0 = tylko brzegi,\n50 = w pół drogi do środka,\n100 = aż do środka. @@ -1665,13 +1646,18 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1771,18 +1757,14 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. !OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -1802,7 +1784,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1811,8 +1798,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1825,6 +1812,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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 @@ -1859,15 +1847,13 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1889,35 +1875,46 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset !TP_CBDL_AFT;After Black-and-White !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_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORAPP_NEUTRAL;Reset !TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -1980,6 +1977,15 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -2000,6 +2006,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) @@ -2013,7 +2020,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_DCB;DCB !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2060,10 +2067,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2101,7 +2108,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2311,5 +2318,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index a75a3c475..7f3271885 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -667,6 +667,7 @@ PARTIALPASTE_VIBRANCE;Jaskrawosc PARTIALPASTE_VIGNETTING;Korekcja winietowania PARTIALPASTE_WHITEBALANCE;Balans bieli PREFERENCES_ADD;Dodaj +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora PREFERENCES_APPLNEXTSTARTUP;wymaga ponownego uruchomienia PREFERENCES_AUTOMONPROFILE;Automatycznie uzyj systemowego profilu monitora PREFERENCES_BATCH_PROCESSING;Przetwarzanie wsadowe @@ -679,9 +680,6 @@ PREFERENCES_BLACKBODY;Wolfram PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisow w pamieci podrecznej PREFERENCES_CACHEOPTS;Opcje pamieci podrecznej PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokosc miniatury -PREFERENCES_CIEART;CIECAM02 optymalizacja -PREFERENCES_CIEART_LABEL;Uzyj precyzje zmiennoprzecinkowa zamiast podwojna. -PREFERENCES_CIEART_TOOLTIP;Gdy umozliwione, kalkulacje CIECAM02 sa wykonywane w notacji zmiennoprzecinkowej o pojedynczej precyzji zamiast podwojnej. Skraca to czas egzekucji kosztem nieistotnej zmiany w jakosci. PREFERENCES_CLIPPINGIND;Pokazywanie obcietych przeswietlen/cieni PREFERENCES_CLUTSDIR;Folder obrazow HaldCLUT PREFERENCES_CUSTPROFBUILD;Zewnetrzny kreator profilow przetwarzania @@ -690,7 +688,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Rodzaj kluczy PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nazwa PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Sciezka pliku wykonywalnego -PREFERENCES_CUTOVERLAYBRUSH;Kolor/przezroczystosc maski kadrowania PREFERENCES_D50;5000K PREFERENCES_D55;5500K PREFERENCES_D60;6000K @@ -709,7 +706,6 @@ PREFERENCES_DIRSOFTWARE;Katalog instalacyjny PREFERENCES_EDITORLAYOUT;Uklad edytora PREFERENCES_EXTERNALEDITOR;Zewnetrzny edytor PREFERENCES_FBROWSEROPTS;Opcje przegladarki plikow -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Pojedynczy wiersz paska narzedzi (odznaczyc dla niskich rozdzielczosci) PREFERENCES_FILEFORMAT;Format pliku PREFERENCES_FLATFIELDFOUND;Znaleziono PREFERENCES_FLATFIELDSDIR;Katalog z pustymi polami @@ -750,7 +746,6 @@ PREFERENCES_MENUOPTIONS;Opcje menu PREFERENCES_METADATA;Metadane PREFERENCES_MULTITAB;Tryb wielu zakladek PREFERENCES_MULTITABDUALMON;Tryb wielu zakladek (na drugim monitorze jesli dostepny) -PREFERENCES_NAVGUIDEBRUSH;Kolor ramki Nawigatora PREFERENCES_OUTDIR;Katalog wyjsciowy PREFERENCES_OUTDIRFOLDER;Zapisz do katalogu PREFERENCES_OUTDIRFOLDERHINT;Umieszcza zapisywane zdjecia w wybranym katalogu @@ -771,9 +766,7 @@ PREFERENCES_PROFILESAVECACHE;Zapisz parametry przetwarzania w pamieci podrecznej PREFERENCES_PROFILESAVEINPUT;Zapisz parametry przetwarzania obok pliku wejsciowego PREFERENCES_PROPERTY;Wlasnosc PREFERENCES_PSPATH;Katalog w ktorym zainstalowany jest Adobe Photoshop -PREFERENCES_SELECTFONT;Wybierz czcionke PREFERENCES_SELECTLANG;Wybierz jezyk -PREFERENCES_SELECTTHEME;Wybierz temat PREFERENCES_SET;Ustaw PREFERENCES_SHOWBASICEXIF;Pokaz podstawowe dane Exif PREFERENCES_SHOWDATETIME;Pokaz date i czas @@ -926,11 +919,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Odbij w poziomie TP_COARSETRAF_TOOLTIP_ROTLEFT;Obroc w lewo.\n\nSkroty:\n[ - Tryb wielu zakladek,\nAlt-[ - Tryb jednej zakladki. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Obroc w prawo.\n\nSkroty:\n] - Tryb wielu zakladek,\nAlt-] - Tryb jednej zakladki. TP_COARSETRAF_TOOLTIP_VFLIP;Odbij w pionie -TP_COLORAPP_ADAPTSCENE;Luminancji sceny -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Bezwzgledna luminancja sceny (cd/m²).\n1)Obliczona za pomoca Exif:\nCzas naswietlania - ISO - Przyslona - Korekcja ekspozycji EV w aparacie.\n2)Obliczona rowniez na podstawie punktu bieli raw oraz korekty ekspozycji w RawTherapee -TP_COLORAPP_ADAPTVIEWING;Luminancji widowni (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Bezwzgledna luminancja widowni\n(zazwyczaj 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Jesli zaznaczone (polecamy), RawTherapee obliczy optymalna wartosc na podstawie Exif.\nAby ustawic wartosc recznie, nalezy wpierw odznaczyc pudlo. TP_COLORAPP_ALGO;Algorytm TP_COLORAPP_ALGO_ALL;Wszystkie TP_COLORAPP_ALGO_JC;Swiatlosc + Chroma (JC) @@ -960,8 +948,6 @@ TP_COLORAPP_CURVEEDITOR3;Krzywa koloru TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Ustawienie chromy, nasycenia badz barwistosci.\n\nPokazuje histogram chromatycznosci (L*a*b*) przed CIECAM02.\nJesli opcja "Pokaz histogramy wyjsciowe CIECAM02 za krzywymi" jest wlaczona, pokazuje histogram C, s badz M po CIECAM02.\n\nC, s oraz M nie sa pokazywane w glownym histogramie.\nEfekt koncowy jest przedstawiony w glownym histogramie. TP_COLORAPP_DATACIE;Pokaz histogramy wyjsciowe CIECAM02 za krzywymi TP_COLORAPP_DATACIE_TOOLTIP;Kiedy opcja jest wlaczona, histogramy za krzywymi CIECAM02 pokazuja przyblizone wartosci/zakresy J lub Q, oraz C, s lub M po korekcjach CIECAM02.\nTen wybor nie ma wplywu na glowny histogram.\n\nKiedy opcja jest wylaczona, histogramy za krzywymi CIECAM02 pokazuja wartosci L*a*b* przed korekcjami CIECAM02. -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Jesli opcja jest zaznaczona (zalecane), RawTherapee kalkuluje wartosc optymalna, ktora jest potem uzyta przez CAT02 oraz przez calosc CIECAM02.\nAby ustawic wartosc recznie, odznacz wpierw opcje (wartosci powyzej 65 zalecane). -TP_COLORAPP_DEGREE_TOOLTIP;Sila CIE Chromatic Adaptation Transform 2002 TP_COLORAPP_GAMUT;Kontrola gamma (L*a*b*). TP_COLORAPP_GAMUT_TOOLTIP;Wlacz kontrole gamma w trybie L*a*b*. TP_COLORAPP_HUE;Odcien (hue, h) @@ -976,8 +962,6 @@ TP_COLORAPP_MODEL;Model PB TP_COLORAPP_MODEL_TOOLTIP;Model punktu bieli.\n\nBB [RT] + [wyjsciowy]:\nBalans bieli RawTherapee jest uzyty dla sceny, CIECAM02 jest ustawione na D50, i balans bieli urzadzenia wyjsciowego ustawiony jest w Ustawieniach > Zarzadzanie Kolorami\n\nBB [RT+CAT02] + [wyjsciowe]:\nUstawienia balansu bieli RawTherapee sa uzywane przez CAT02, i balans bieli urzadzenia wyjsciowego jest ustawione w Ustawieniach > Zarzadzanie Kolorami. TP_COLORAPP_RSTPRO;Ochrona odcieni skory i czerwieni TP_COLORAPP_RSTPRO_TOOLTIP;Ochrona odcieni skory i czerwieni (suwaki i krzywe) -TP_COLORAPP_SHARPCIE;- -TP_COLORAPP_SHARPCIE_TOOLTIP;- TP_COLORAPP_SURROUND;Otoczenie TP_COLORAPP_SURROUND_AVER;Srednie TP_COLORAPP_SURROUND_DARK;Ciemne @@ -996,6 +980,7 @@ TP_COLORAPP_TCMODE_LIGHTNESS;Swiatlosc TP_COLORAPP_TCMODE_SATUR;Nasycenie TP_COLORAPP_TONECIE;Tone mapping za pomoca jasnosci CIECAM02 (Q) TP_COLORAPP_TONECIE_TOOLTIP;Jesli ta opcja jest wylaczona, tone mapping odbywa sie w przestrzeni kolorow L*a*b*, zas jesli jest wlaczona, w przestrzeni kolorow CIECAM02.\nNarzedzie Tone Mapping musi byc wlaczone aby to utawienie dzialalo. +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Bezwzgledna luminancja widowni\n(zazwyczaj 16cd/m²). TP_COLORAPP_WBCAM;BB [RT+CAT02] + [wyjsciowy] TP_COLORAPP_WBRT;BB [RT] + [wyjsciowy] TP_COLORTONING_AB;o C/L @@ -1045,7 +1030,6 @@ TP_CROP_GUIDETYPE;Typ pomocy: TP_CROP_H;Wysokosc TP_CROP_LABEL;Kadrowanie TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Wybierz kadr TP_CROP_W;Szerokosc TP_CROP_X;X TP_CROP_Y;Y @@ -1236,9 +1220,6 @@ TP_LENSGEOM_AUTOCROP;Auto-kadrowanie TP_LENSGEOM_FILL;Auto-wypelnienie TP_LENSGEOM_LABEL;Obiektyw / Geometria TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP -TP_LENSPROFILE_USECA;Korekja aberacji chromatycznej -TP_LENSPROFILE_USEDIST;Korekcja dystorsji -TP_LENSPROFILE_USEVIGN;Korekcja winietowania TP_NEUTRAL_TIP;Zresetuj ustawienia do wartosci neutralnych.\nDziala na tych samych suwakach na ktorych funkcja "Wyrownaj poziomy" dziala, niezaleznie od tego czy funkcja ta byla uzyta czy nie. TP_PCVIGNETTE_FEATHER;Wtapianie TP_PCVIGNETTE_FEATHER_TOOLTIP;Wtapianie:\n0 = tylko brzegi,\n50 = w pol drogi do srodka,\n100 = az do srodka. @@ -1665,13 +1646,18 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1771,18 +1757,14 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. !OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -1802,7 +1784,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1811,8 +1798,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1825,6 +1812,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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 @@ -1859,15 +1847,13 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1889,35 +1875,46 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !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. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset !TP_CBDL_AFT;After Black-and-White !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_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORAPP_NEUTRAL;Reset !TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -1980,6 +1977,15 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -2000,6 +2006,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) @@ -2013,7 +2020,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_RAW_DCB;DCB !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2060,10 +2067,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2101,7 +2108,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2311,5 +2318,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index cb2c20e1a..b8d85ed59 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -835,9 +835,6 @@ IPTCPANEL_TITLE;Título IPTCPANEL_TITLEHINT;Digite um nome curto e legível para a imagem, pode ser o nome do arquivo. IPTCPANEL_TRANSREFERENCE;Job ID IPTCPANEL_TRANSREFERENCEHINT;Digite um número ou identificador necessário para controle ou rastreamento do fluxo de trabalho. -LENSPROFILE_CORRECTION_AUTOMATCH;Parâmetros de correção de correspondência automática -LENSPROFILE_CORRECTION_LCPFILE;Arquivo LCP -LENSPROFILE_CORRECTION_MANUAL;Parâmetros de correção manual LENSPROFILE_LENS_WARNING;Aviso: o fator de corte usado para o perfil da lente é maior que o fator de corte da câmera, os resultados podem estar errados. MAIN_BUTTON_FULLSCREEN;Tela cheia MAIN_BUTTON_ICCPROFCREATOR;Criador de Perfil ICC @@ -908,7 +905,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;Pré-visualize a Máscara de Foco.\nAtalho: MAIN_TOOLTIP_PREVIEWG;Pré-visualize o Canal verde.\nAtalho: g MAIN_TOOLTIP_PREVIEWL;Pré-visualize a Luminosidade.\nAtalho: v\n\n0.299*R + 0.587*G + 0.114*B MAIN_TOOLTIP_PREVIEWR;Pré-visualize o Canal vermelho.\nAtalho: r -MAIN_TOOLTIP_PREVIEWSHARPMASK;Pré-visualize a Máscara de Contraste de Nitidez.\nAtalho: Nenhum\n\nSó funciona quando a nitidez e o zoom estão ativados >= 100%. +MAIN_TOOLTIP_PREVIEWSHARPMASK;Pré-visualize a Máscara de Contraste de Nitidez.\nAtalho: p\n\nSó funciona quando a nitidez e o zoom estão ativados >= 100%. MAIN_TOOLTIP_QINFO;Informação rápida na imagem.\nAtalho: i MAIN_TOOLTIP_SHOWHIDELP1;Mostrar/Ocultar o painel esquerdo.\nShortcut: l MAIN_TOOLTIP_SHOWHIDERP1;Mostrar/Ocultar o painel direito.\nAtalho: Alt-l @@ -1009,9 +1006,9 @@ PARTIALPASTE_VIBRANCE;Vibração PARTIALPASTE_VIGNETTING;Correção de vinheta PARTIALPASTE_WHITEBALANCE;Balanço de branco PREFERENCES_ADD;Adicionar +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Cor do guia do navegador PREFERENCES_APPLNEXTSTARTUP;é necessário reiniciar PREFERENCES_AUTOMONPROFILE;Usar o perfil de cores do monitor principal do sistema operacional -PREFERENCES_AUTOSAVE_TP_OPEN;Salvar automaticamente ferramentas recolhidas/expandidas\nestado antes de sair PREFERENCES_BATCH_PROCESSING;Processamento em Lote PREFERENCES_BEHADDALL;Tudo para 'Adicionar' PREFERENCES_BEHADDALLHINT;Definir todos os parâmetros para o Adicionar modo.\nAjustes de parâmetros no painel de ferramentas de lote serão deltas para os valores armazenados. @@ -1044,7 +1041,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Formato de chaves PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nome PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;ID da Tag PREFERENCES_CUSTPROFBUILDPATH;Caminho executável -PREFERENCES_CUTOVERLAYBRUSH;Cor da máscara de corte/transparência PREFERENCES_D50;Configurações no menu principal PREFERENCES_D50_OLD;5000K PREFERENCES_D55;5500K @@ -1066,7 +1062,6 @@ PREFERENCES_EDITORCMDLINE;Linha de comando personalizada PREFERENCES_EDITORLAYOUT;Layout do Editor PREFERENCES_EXTERNALEDITOR;Editor Externo PREFERENCES_FBROWSEROPTS;Navegador de Arquivos / Opções de Miniaturas -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barra de ferramentas do navegador de arquivos de linha única\n(desmarque para exibição de baixa resolução) PREFERENCES_FILEFORMAT;Formato de arquivo PREFERENCES_FLATFIELDFOUND;Encontrado PREFERENCES_FLATFIELDSDIR;Diretório de campos planos @@ -1123,7 +1118,6 @@ PREFERENCES_MONPROFILE;Perfil de cor padrão PREFERENCES_MONPROFILE_WARNOSX;Devido às limitações do MacOS, apenas o sRGB é suportado. PREFERENCES_MULTITAB;Modo de Mútiplas Abas do Editor PREFERENCES_MULTITABDUALMON;Múltiplas Abas do Editor no Modo de Janela Própria -PREFERENCES_NAVGUIDEBRUSH;Cor do guia do navegador PREFERENCES_NAVIGATIONFRAME;Navegação PREFERENCES_OUTDIR;Diretório de Saída PREFERENCES_OUTDIRFOLDER;Salvar na pasta @@ -1161,13 +1155,10 @@ PREFERENCES_PSPATH;Diretório de instalação do Adobe Photoshop PREFERENCES_REMEMBERZOOMPAN;Lembre-se de zoom % e compensar pan PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Lembre-se do zoom % e de compensar o pan da imagem atual ao abrir uma nova imagem.\n\nEsta opção só funciona em "Modo da Aba do Editor Único" e quando "o método Demosaicing utilizado para a pré-visualização em <100% zoom" está definido como "Como no PP3". PREFERENCES_SAVE_TP_OPEN_NOW;Salvar ferramentas no estado recolhidas/expandididas agora -PREFERENCES_SELECTFONT;Selecione a fonte principal -PREFERENCES_SELECTFONT_COLPICKER;Selecione a fonte do Seletor de Cor PREFERENCES_SELECTLANG;Selecione linguagem -PREFERENCES_SELECTTHEME;Selecione tema -PREFERENCES_SERIALIZE_TIFF_READ;Configurações de leitura tiff -PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize a leitura de arquivos tiff -PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Ao trabalhar com pastas cheias de arquivos tiff não compactados, ativar essa opção pode aumentar o desempenho da geração de miniaturas. +PREFERENCES_SERIALIZE_TIFF_READ;Configurações de leitura TIFF +PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize a leitura de arquivos TIFF +PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Ao trabalhar com pastas cheias de arquivos TIFF não compactados, ativar essa opção pode aumentar o desempenho da geração de miniaturas. PREFERENCES_SET;Configuração PREFERENCES_SHOWBASICEXIF;Mostrar informações Exif básicas PREFERENCES_SHOWDATETIME;Mostrar data e hora @@ -1187,7 +1178,6 @@ PREFERENCES_TAB_DYNAMICPROFILE;Regras de Perfil Dinâmico PREFERENCES_TAB_GENERAL;Geral PREFERENCES_TAB_IMPROC;Processamento de Imagem PREFERENCES_TAB_SOUND;Sons -PREFERENCES_THEME;Tema PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Visualização JPEG incorporada PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Imagem para mostrar PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Renderização raw neutra @@ -1351,11 +1341,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Girar horizontalmente. TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotacione à esquerda.\n\nAtalhos:\n[ - Modo de Guias do Editor Múltiplo,\nAlt-[ - Modo de Guia do Editor Único. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotacione à direita.\n\nAtalhos:\n] - Modo de Guias do Editor Múltiplo,\nAlt-] - Modo de Guia do Editor Único. TP_COARSETRAF_TOOLTIP_VFLIP;Girar verticalmente. -TP_COLORAPP_ADAPTSCENE;Luminância absoluta da cena -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Luminância absoluta do ambiente da cena (cd/m²).\n1) Calculada a partir dos dados Exif:\nVelocidade do obturador - velocidade ISO - número F - correção de exposição da câmera.\n2) Calculado a partir do ponto branco raw e do controle deslizante de Compensação de Exposição do RT. -TP_COLORAPP_ADAPTVIEWING;Visualizando luminância absoluta (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Luminância absoluta do ambiente de visualização\n(usualmente 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Se a caixa de seleção estiver marcada (recommendado) RawTherapee calcula um valor ótimo a partir dos dados Exif.\nPara definir o valor manualmente, desmarque a caixa de seleção primeiro. TP_COLORAPP_ALGO;Algorimo TP_COLORAPP_ALGO_ALL;Tudo TP_COLORAPP_ALGO_JC;Claridade + Croma (JC) @@ -1385,8 +1370,6 @@ TP_COLORAPP_CURVEEDITOR3;Curva de cor TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Ajustar croma, saturação ou colorido.\n\nMostra o histograma da cromaticidade (L*a*b*) antes de CIECAM02.\nSe a caixa de seleção "Mostrar histogramas de saída do CIECAM02 em curvas" estiver ativada, mostra o histograma de C, s ou M depois de CIECAM02.\n\nC, s e M não são mostrados no painel principal do histograma.\nPara a saída final, consulte o painel principal do histograma. TP_COLORAPP_DATACIE;Histogramas de saída em curvas do CIECAM02 TP_COLORAPP_DATACIE_TOOLTIP;Quando ativado, os histogramas em curvas do CIECAM02 mostram valores/intervalos aproximados para J ou Q, e C, s ou M após os ajustes do CIECAM02.\nEsta seleção não afeta o painel principal do histograma.\n\nQuando desativado, os histogramas em curvas do CIECAM02 mostram L*a*b* valores antes dos ajustes do CIECAM02. -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Se a caixa de seleção estiver marcada (recomendado), RawTherapee calcula um valor ótimo, que será usado pelo CAT02, e também para todo o CIECAM02.\nPara definir o valor manualmente, primeiro desmarque a caixa de seleção (valores acima de 65 são recomendados). -TP_COLORAPP_DEGREE_TOOLTIP;Quantidade de Adaptação Cromática CIE Transformar 2002. TP_COLORAPP_FREE;Temp+verde livre + CAT02 + [saída] TP_COLORAPP_GAMUT;Controle Gamut (L*a*b*) TP_COLORAPP_GAMUT_TOOLTIP;Permitir controle gamut no modo L*a*b*. @@ -1404,8 +1387,6 @@ TP_COLORAPP_NEUTRAL;Restaurar TP_COLORAPP_NEUTRAL_TIP;Restaurar todas as caixas de seleção e curvas dos controles deslizantes para seus valores padrão TP_COLORAPP_RSTPRO;Proteção vermelho e de tons de pele TP_COLORAPP_RSTPRO_TOOLTIP;Vermelho & proteção de tons de pele afeta os controles deslizantes e as curvas. -TP_COLORAPP_SHARPCIE;--sem uso-- -TP_COLORAPP_SHARPCIE_TOOLTIP;--sem uso-- TP_COLORAPP_SURROUND;Borda TP_COLORAPP_SURROUND_AVER;Média TP_COLORAPP_SURROUND_DARK;Escuro @@ -1425,11 +1406,9 @@ TP_COLORAPP_TCMODE_SATUR;Saturação TP_COLORAPP_TEMP_TOOLTIP;Para selecionar um iluminante, defina sempre Matiz=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 TP_COLORAPP_TONECIE;Mapeamento de tom usando CIECAM02 TP_COLORAPP_TONECIE_TOOLTIP;Se esta opção estiver desativada, o mapeamento de tom é feito no espaço L*a*b*.\nSe esta opção estiver habilitada, o mapeamento de tom é feito usando CIECAM02.\nA ferramenta de Mapeamento de Tom deve estar ativada para que esta configuração tenha efeito. +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminância absoluta do ambiente de visualização\n(usualmente 16cd/m²). TP_COLORAPP_WBCAM;WB [RT+CAT02] + [saída] TP_COLORAPP_WBRT;WB [RT] + [saída] -TP_COLORAPP_YB;Yb% (média luminância) -TP_COLORAPP_YBSCENE;Yb% (média luminância) -TP_COLORAPP_YBSCENE_TOOLTIP;Se "auto" estiver ativado, Yb é calculado a partir do valor médio da luminância real da imagem TP_COLORTONING_AB;o C/L TP_COLORTONING_AUTOSAT;Automático TP_COLORTONING_BALANCE;Balanço @@ -1482,7 +1461,6 @@ TP_CROP_GUIDETYPE;Tipo de guia: TP_CROP_H;Altura TP_CROP_LABEL;Cortar TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Selecione para Cortar TP_CROP_W;Largura TP_CROP_X;X TP_CROP_Y;Y @@ -1729,9 +1707,6 @@ TP_LENSGEOM_AUTOCROP;Corte automático TP_LENSGEOM_FILL;Preenchimento automático TP_LENSGEOM_LABEL;Lente / Geometria TP_LENSPROFILE_LABEL;Correção de lente perfilada -TP_LENSPROFILE_USECA;Correção da aberração cromática -TP_LENSPROFILE_USEDIST;Correção de distorção -TP_LENSPROFILE_USEVIGN;Correção de vinheta TP_LOCALCONTRAST_AMOUNT;Montante TP_LOCALCONTRAST_DARKNESS;Nível de escuridão TP_LOCALCONTRAST_LABEL;Contraste Local @@ -1874,7 +1849,6 @@ TP_RESIZE_WIDTH;Largura TP_RETINEX_CONTEDIT_HSL;Equalizador de histograma HSL TP_RETINEX_CONTEDIT_LAB;Equalizador de histograma L*a*b* TP_RETINEX_CONTEDIT_LH;Equalizador de matiz -TP_RETINEX_CONTEDIT_MAP;Equalizador de máscara TP_RETINEX_CURVEEDITOR_CD;L=f(L) TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminância de acordo com a luminância L=f(L)\nCorrija dados raw para reduzir halos e artefatos. TP_RETINEX_CURVEEDITOR_LH;Intensidade=f(M) @@ -1911,7 +1885,6 @@ TP_RETINEX_LABEL;Retinex TP_RETINEX_LABEL_MASK;Máscara TP_RETINEX_LABSPACE;L*a*b* TP_RETINEX_LOW;Baixo -TP_RETINEX_MAP;Método de máscara TP_RETINEX_MAP_GAUS;Máscara gaussiana TP_RETINEX_MAP_MAPP;Máscara de nitidez (wavelet parcial) TP_RETINEX_MAP_MAPT;Máscara de nitidez (wavelet total) @@ -2255,13 +2228,18 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_489;DRC - Detail !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -2274,32 +2252,66 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description !PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: !PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_PERFORMANCE_THREADS;Threads !PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_TAB_PERFORMANCE;Performance !SAVEDLG_FILEFORMAT_FLOAT; floating-point -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map !TP_DEHAZE_STRENGTH;Strength +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. +!TP_RETINEX_MAP;Method !TP_TM_FATTAL_THRESHOLD;Detail +!TP_WBALANCE_PICKER;Pick diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 6769dd724..c930b43d8 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -538,9 +538,6 @@ IPTCPANEL_RESET;Сбросить IPTCPANEL_RESETHINT;Сбросить профиль на значения по умолчанию IPTCPANEL_SOURCE;Источник IPTCPANEL_TITLE;Название -LENSPROFILE_CORRECTION_AUTOMATCH;Автоподбор параметров коррекции -LENSPROFILE_CORRECTION_LCPFILE;Файл LCP -LENSPROFILE_CORRECTION_MANUAL;Ручные параметры коррекции LENSPROFILE_LENS_WARNING;Внимание: кроп-фактор используемый для анализа объектива больше чем кроп-фактор камеры, результаты могут быть не верны. MAIN_BUTTON_FULLSCREEN;Полный экран MAIN_BUTTON_NAVNEXT_TOOLTIP;Перейти к следующему изображению относительно открытого в редакторе\nГорячая клавиша: Shift+F4\n\nПерейти к следущему изображению относительно выбранного в файловом браузере\nгорячая клавиша F4 @@ -708,9 +705,6 @@ PREFERENCES_BLACKBODY;Лампа накаливания PREFERENCES_CACHEMAXENTRIES;Максимальное число элементов в кэше PREFERENCES_CACHEOPTS;Параметры кэширования PREFERENCES_CACHETHUMBHEIGHT;Максимальная высота эскиза -PREFERENCES_CIEART;Оптимизация CIECAM02 -PREFERENCES_CIEART_LABEL;Использовать числа с плавающей запятой вместо двойной точности -PREFERENCES_CIEART_TOOLTIP;Если включено, вычисления CIECAM02 будут выполняться в формате плавающей запятой с одинарной точностью вместо использования двойной точности. Это обеспечит небольшое увеличение скорости с несущественной потерей качества. PREFERENCES_CLIPPINGIND;Индикация пересветов/затемнений PREFERENCES_CURVEBBOXPOS;Позиция кнопок для копирования и вставки кривых PREFERENCES_CURVEBBOXPOS_ABOVE;Выше @@ -723,7 +717,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Формат ключей PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Имя PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Путь к исполняемому файлу -PREFERENCES_CUTOVERLAYBRUSH; Цвет/прозрачность маски обрезки PREFERENCES_D50;5000K PREFERENCES_D50_OLD;5000K PREFERENCES_D55;5500K @@ -743,7 +736,6 @@ PREFERENCES_DIRSOFTWARE;Каталог установки PREFERENCES_EDITORLAYOUT;Тип редактора PREFERENCES_EXTERNALEDITOR;Внешний редактор PREFERENCES_FBROWSEROPTS;Настройки -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Однорядная панель обозревателя файлов\n(отключите для экранов с низким разрешением) PREFERENCES_FILEFORMAT;Формат файлов PREFERENCES_FLATFIELDFOUND;Найдено PREFERENCES_FLATFIELDSDIR;Папка с файлами плоских полей @@ -808,9 +800,7 @@ PREFERENCES_PROFILESAVECACHE;Сохранять профиль обработк PREFERENCES_PROFILESAVEINPUT;Сохранять профиль обработки в одном каталоге с исходным файлом PREFERENCES_PROPERTY;Свойство PREFERENCES_PSPATH;Каталог установки Adobe Photoshop -PREFERENCES_SELECTFONT;Выбрать шрифт PREFERENCES_SELECTLANG;Выбрать язык -PREFERENCES_SELECTTHEME;Выбрать тему PREFERENCES_SET;Установить PREFERENCES_SHOWBASICEXIF;Показывать основные данные Exif PREFERENCES_SHOWDATETIME;Показывать дату и время @@ -829,7 +819,6 @@ PREFERENCES_TAB_DYNAMICPROFILE;Динамические профили PREFERENCES_TAB_GENERAL;Основное PREFERENCES_TAB_IMPROC;Обработка изображения PREFERENCES_TAB_SOUND;Звуки -PREFERENCES_THEME;Тема PREFERENCES_TP_LABEL;Панель инструментов: PREFERENCES_TP_VSCROLLBAR;Спрятать вертикальную полосу прокрутки PREFERENCES_USEBUNDLEDPROFILES;Использовать предустановленный профиль @@ -968,11 +957,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Горизонтальное зеркальное о TP_COARSETRAF_TOOLTIP_ROTLEFT;Повернуть влево\n\nГорячие клавиши:\n[ - режим множественных редакторов,\nAlt-[ - режим одного редактора TP_COARSETRAF_TOOLTIP_ROTRIGHT;Повернуть вправо\n\nГорячие клавиши:\n] - режим множественных редакторов,\nAlt-] - режим одного редактора TP_COARSETRAF_TOOLTIP_VFLIP;Вертикальное зеркальное отражение -TP_COLORAPP_ADAPTSCENE;Яркость обстановки -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Абсолютная освещённость места и объекта съёмки (кд/м²).\n1) Высчитывается из данных Exif:\nВыдержка − Значение ISO − Значение F − Внутрикамерная коррекция выдержки.\n2) Высчитывается из точки белого в raw и значения компенсации экспозиции RT. -TP_COLORAPP_ADAPTVIEWING;Яркость при просмотре (кд/м²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Абсолютная яркость при просмотре.\n(Обычно 16 кд/м²) -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Если галка отмечена (рекомендуется) RT расчитывает оптимальное значение из данных Exif.\nДля ручного редактирования необходимо предварительно снять галку. TP_COLORAPP_ALGO;Алгоритм TP_COLORAPP_ALGO_ALL;Все TP_COLORAPP_ALGO_JC;Светимость + Цвет (JC) @@ -1005,8 +989,7 @@ TP_COLORAPP_GAMUT;Контроль гаммы (L*a*b*) TP_COLORAPP_GAMUT_TOOLTIP;Позволяет контролировать гамму в режиме L*a*b*. TP_COLORAPP_HUE;Цвет (h) TP_COLORAPP_MODEL;Модель точки белого -TP_COLORAPP_SHARPCIE;--неиспользуемый-- -TP_COLORAPP_SHARPCIE_TOOLTIP;--неиспользуемый-- +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Абсолютная яркость при просмотре.\n(Обычно 16 кд/м²) TP_CROP_FIXRATIO;Пропорция: TP_CROP_GTDIAGONALS;Правило диагоналей TP_CROP_GTEPASSPORT;Биометрический паспорт @@ -1021,7 +1004,6 @@ TP_CROP_GUIDETYPE;Тип направляющей: TP_CROP_H;Высота TP_CROP_LABEL;Кадрирование TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Включить режим обрезки TP_CROP_W;Ширина TP_CROP_X;x TP_CROP_Y;y @@ -1222,9 +1204,6 @@ TP_LENSGEOM_AUTOCROP;Автокадрирование TP_LENSGEOM_FILL;Автозаполнение TP_LENSGEOM_LABEL;Геометрия TP_LENSPROFILE_LABEL;Профиль коррекции объектива -TP_LENSPROFILE_USECA;Корректировать ХА -TP_LENSPROFILE_USEDIST;Корректировать дисторсию -TP_LENSPROFILE_USEVIGN;Корректировать виньетирование TP_LOCALCONTRAST_AMOUNT;Величина TP_LOCALCONTRAST_DARKNESS;Тёмные тона TP_LOCALCONTRAST_LABEL;Локальный контраст @@ -1689,13 +1668,18 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !HISTORY_MSG_489;DRC - Detail !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries @@ -1783,8 +1767,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !PARTIALPASTE_COLORTONING;Color toning !PARTIALPASTE_DEHAZE;Haze removal @@ -1799,7 +1783,13 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1809,14 +1799,15 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original !PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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 @@ -1833,7 +1824,6 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. @@ -1848,11 +1838,10 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview @@ -1873,16 +1862,16 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !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. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset !TP_CBDL_AFT;After Black-and-White !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_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !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_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. !TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 @@ -1891,6 +1880,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !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_MEANLUMINANCE;Mean luminance (Yb%) !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 by the user, the 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 @@ -1917,9 +1907,6 @@ 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_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1933,16 +1920,25 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1968,6 +1964,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_COLORTONING_TWOBY;Special a* and b* !TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. !TP_COLORTONING_TWOSTD;Standard chroma +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zones !TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Try to evaluate chroma noise\nBe careful, this calculation is average, and is quite subjective ! !TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation. @@ -2019,6 +2017,15 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_PREPROCESS_LINEDENOISE_DIRECTION;Direction !TP_PREPROCESS_LINEDENOISE_DIRECTION_BOTH;Both !TP_PREPROCESS_LINEDENOISE_DIRECTION_HORIZONTAL;Horizontal @@ -2029,6 +2036,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) !TP_RAW_2PASS;1-pass+fast @@ -2038,7 +2046,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_RAW_BORDER;Border !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_IMAGENUM;Sub-image !TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony 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. @@ -2073,10 +2081,10 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Strength according to hue Strength=f(H)\nThis curve also acts on chroma when using the "Highlight" retinex method. !TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! !TP_RETINEX_EQUAL;Equalizer @@ -2110,7 +2118,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2310,5 +2318,6 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 080824fed..fe64675c8 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -600,9 +600,6 @@ PREFERENCES_BLACKBODY;Обична сијалица PREFERENCES_CACHEMAXENTRIES;Највећи број мест у остави PREFERENCES_CACHEOPTS;Подешавање оставе PREFERENCES_CACHETHUMBHEIGHT;Највећа висина приказа -PREFERENCES_CIEART;CIECAM02 оптимизација -PREFERENCES_CIEART_LABEL;Једнострука тачност уместо двоструке -PREFERENCES_CIEART_TOOLTIP;Уколико је омогућено, ради CIECAM02 рачунања са једноструком тачношћу уместо са двоструком. Ово даје мало повећање брзине уз неизоставан губитак на квалитету. PREFERENCES_CLIPPINGIND;Показивачи одсечених делова PREFERENCES_CUSTPROFBUILD;Изградња произвољног почетног профила слике PREFERENCES_CUSTPROFBUILDHINT;Извршна датотека (или скрипта) која се позива када изграђујете нови почетни профил за слику.nПрихвата параметре из командне линије ради прављења .pp3 датотеке на основу неких правила:n[Путања до RAW/JPG] [Путања подразумеваног профила] [Бленда] [Експозиција у s] [Жижна дужина mm] [ИСО] [Објектив] [Фото-апарат] @@ -610,7 +607,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Кључни формати PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Назив PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;БрОзнаке PREFERENCES_CUSTPROFBUILDPATH;Извршна путања -PREFERENCES_CUTOVERLAYBRUSH;Маска исецања боје/провидног PREFERENCES_D50;5000K PREFERENCES_D55;5500K PREFERENCES_D60;6000K @@ -629,7 +625,6 @@ PREFERENCES_DIRSOFTWARE;Директоријум са инсталацијом PREFERENCES_EDITORLAYOUT;Размештај програма PREFERENCES_EXTERNALEDITOR;Спољни уређивач PREFERENCES_FBROWSEROPTS;Опције разгледача датотеке -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Прикажи алатке у једном реду PREFERENCES_FILEFORMAT;Формат датотеке PREFERENCES_FLATFIELDFOUND;Нађено PREFERENCES_FLATFIELDSDIR;Директоријум за равна поља @@ -688,9 +683,7 @@ PREFERENCES_PROFILESAVECACHE;Сачувај параметре обраде у PREFERENCES_PROFILESAVEINPUT;Сачувај парамтре обраде поред улазне датотеке PREFERENCES_PROPERTY;Особина PREFERENCES_PSPATH;Директоријум са инсталираним Адобе Фотошопом -PREFERENCES_SELECTFONT;Изаберите фонт PREFERENCES_SELECTLANG;Језик -PREFERENCES_SELECTTHEME;Тема PREFERENCES_SET;Постави PREFERENCES_SHOWBASICEXIF;Прикажи основне Exif податке PREFERENCES_SHOWDATETIME;Прикажи датум и време @@ -841,11 +834,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Изврће слику хоризонтално TP_COARSETRAF_TOOLTIP_ROTLEFT;Окреће слику улево TP_COARSETRAF_TOOLTIP_ROTRIGHT;Окреће слику удесно TP_COARSETRAF_TOOLTIP_VFLIP;Изврће слику вертикално -TP_COLORAPP_ADAPTSCENE;Луминозност сцене -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Апосолутна луминозност окружења сцене (cd/m²).\n1) Рачуна се из Exif података:\nБрзина затварача - ИСО вредност - отвор бленде - корекција експозиције камере.\n2) Рачуна се из беле тачке сирове слике унутар дела програма за компензацију експозиције. -TP_COLORAPP_ADAPTVIEWING;Луминозност за преглед (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Апсолутна луминозност окружења за преглед\n(обично 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Уколико је штиклирано (препоручено), програм рачуна оптималне вредности на основу Exif података.\nЗа ручно постављање ових вредности, одштиклирајте ово поље. TP_COLORAPP_ALGO;Алгоритам TP_COLORAPP_ALGO_ALL;Све TP_COLORAPP_ALGO_JC;Светлина + Боја (JC) @@ -875,8 +863,6 @@ TP_COLORAPP_CURVEEDITOR3;Крива боја TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Подешава било хрому, засићеност или живост боја.\n\nПриказује хистограм хроматисе (Лаб) пре CIECAM02.\nУколико је омогућено „CIECAM02 излазни хистограм у кривуљама“, приказује хистограм за C, s или M након CIECAM02.\n\nC, s и M се не приказују у главној површи за хистограм.\nЗа конаачни изла погледајте главну површ хистограма. TP_COLORAPP_DATACIE;CIECAM02 излазни хистограм у кривуљама TP_COLORAPP_DATACIE_TOOLTIP;Када је омогућено, хистограми у CIECAM02 кривим приказују приближне вредности/опсеге за J или Q, и C, s или M након CIECAM02 подешавања.\nОвај избор не утиче на приказ у главној површи за хистограм.\n\nКада је искључено, хистограми у CIECAM02 кривим приказују Лаб вредности пре CIECAM02 подешавања. -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Уколико је штиклирано (препоручено), програм рачина оптималне вредности, које се затим користе за CAT02, а такође за читав CIECAM02.\nДа би поставили вредности ручне, одштиклирајте ово поље (препоручене су вредности изнад 65). -TP_COLORAPP_DEGREE_TOOLTIP;Количина преображаја CIE хроматске адаптације2002. TP_COLORAPP_GAMUT;Контрола гамута (Лаб) TP_COLORAPP_GAMUT_TOOLTIP;Омогућава контролу гамута у Лаб режиму. TP_COLORAPP_HUE;Нијанса (h) @@ -891,8 +877,6 @@ TP_COLORAPP_MODEL;WP модел TP_COLORAPP_MODEL_TOOLTIP;Модел беле-тачке.\n\nБаланс беле [RT] + [излаз]: баланс беле из програма се користи за кадар, CIECAM02 се поставља на D50, а баланс беле излазног уређаја се одређује из Подешавања > Управљање бојама.\n\nБаланс беле [RT+CAT02] + [излаз]: подешавања баланса беле из програма се користе од стране CAT02, а баланс беле излазног уређаја се одређује из Подешавања - Управљање бојама. TP_COLORAPP_RSTPRO;Заштита црвене и боје коже TP_COLORAPP_RSTPRO_TOOLTIP;Заштита црвене боје и боје коже (клизачи и криве). -TP_COLORAPP_SHARPCIE;--не користи се-- -TP_COLORAPP_SHARPCIE_TOOLTIP;--не користи се-- TP_COLORAPP_SURROUND;Окружено TP_COLORAPP_SURROUND_AVER;Просечно TP_COLORAPP_SURROUND_DARK;Тамно @@ -911,6 +895,7 @@ TP_COLORAPP_TCMODE_LIGHTNESS;Светлина TP_COLORAPP_TCMODE_SATUR;Засићеност TP_COLORAPP_TONECIE;Мапирање тонова у CIECAM02 TP_COLORAPP_TONECIE_TOOLTIP;Уколико је искључена ова опција, мапирање тонова се врши у Лаб окружењу.\nУколико је укључена, мапирање се врши помоћу CIECAM02.\nМорате користити алат за мапирање тонова како би ова опција била примењена. +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Апсолутна луминозност окружења за преглед\n(обично 16cd/m²). TP_COLORAPP_WBCAM;Баланс беле [RT+CAT02] + [излаз] TP_COLORAPP_WBRT;Баланс беле [RT] + [излаз] TP_CROP_FIXRATIO;Сразмерно: @@ -924,7 +909,6 @@ TP_CROP_GUIDETYPE;Вођицe: TP_CROP_H;В TP_CROP_LABEL;Исецање TP_CROP_PPI;ППИ= -TP_CROP_SELECTCROP; Изабери област TP_CROP_W;Ш TP_CROP_X;x TP_CROP_Y;y @@ -1086,9 +1070,6 @@ TP_LENSGEOM_AUTOCROP;Сам исеци TP_LENSGEOM_FILL;Сам попуни TP_LENSGEOM_LABEL;Објектив и геометрија TP_LENSPROFILE_LABEL;Профили за исправљање изобличења објектива -TP_LENSPROFILE_USECA;Исправљање хром. аберација -TP_LENSPROFILE_USEDIST;Исправљање изобличења -TP_LENSPROFILE_USEVIGN;Исправљање вињетарења TP_NEUTRAL;Неутрално TP_NEUTRAL_TIP;Враћа клизаче експозиције на неутралне вредности.\nПримењује се на исте контроле као у Ауто нивои, без обзира на то да ли сте користили Ауто нивое или не. TP_PCVIGNETTE_FEATHER;Умекшавање @@ -1559,13 +1540,18 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1665,17 +1651,13 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1711,7 +1693,13 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1721,8 +1709,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1735,6 +1723,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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 @@ -1753,7 +1742,6 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. @@ -1772,15 +1760,13 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1801,7 +1787,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. !THRESHOLDSELECTOR_BL;Bottom-left -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. !TP_BWMIX_FILTER_YELLOW;Yellow !TP_BWMIX_GAMMA;Gamma Correction @@ -1812,13 +1798,13 @@ 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_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORAPP_NEUTRAL;Reset !TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1832,16 +1818,25 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1870,6 +1865,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -1961,6 +1958,15 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1984,6 +1990,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) @@ -2005,7 +2012,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_RAW_DCB;DCB !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2055,10 +2062,10 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2096,7 +2103,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2306,6 +2313,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". !ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index b0d929858..9cffebc2f 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -600,9 +600,6 @@ PREFERENCES_BLACKBODY;Obična sijalica PREFERENCES_CACHEMAXENTRIES;Najveći broj mest u ostavi PREFERENCES_CACHEOPTS;Podešavanje ostave PREFERENCES_CACHETHUMBHEIGHT;Najveća visina prikaza -PREFERENCES_CIEART;CIECAM02 optimizacija -PREFERENCES_CIEART_LABEL;Jednostruka tačnost umesto dvostruke -PREFERENCES_CIEART_TOOLTIP;Ukoliko je omogućeno, radi CIECAM02 računanja sa jednostrukom tačnošću umesto sa dvostrukom. Ovo daje malo povećanje brzine uz neizostavan gubitak na kvalitetu. PREFERENCES_CLIPPINGIND;Pokazivači odsečenih delova PREFERENCES_CUSTPROFBUILD;Izgradnja proizvoljnog početnog profila slike PREFERENCES_CUSTPROFBUILDHINT;Izvršna datoteka (ili skripta) koja se poziva kada izgrađujete novi početni profil za sliku.nPrihvata parametre iz komandne linije radi pravljenja .pp3 datoteke na osnovu nekih pravila:n[Putanja do RAW/JPG] [Putanja podrazumevanog profila] [Blenda] [Ekspozicija u s] [Žižna dužina mm] [ISO] [Objektiv] [Foto-aparat] @@ -610,7 +607,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Ključni formati PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Naziv PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;BrOznake PREFERENCES_CUSTPROFBUILDPATH;Izvršna putanja -PREFERENCES_CUTOVERLAYBRUSH;Maska isecanja boje/providnog PREFERENCES_D50;5000K PREFERENCES_D55;5500K PREFERENCES_D60;6000K @@ -629,7 +625,6 @@ PREFERENCES_DIRSOFTWARE;Direktorijum sa instalacijom PREFERENCES_EDITORLAYOUT;Razmeštaj programa PREFERENCES_EXTERNALEDITOR;Spoljni uređivač PREFERENCES_FBROWSEROPTS;Opcije razgledača datoteke -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Prikaži alatke u jednom redu PREFERENCES_FILEFORMAT;Format datoteke PREFERENCES_FLATFIELDFOUND;Nađeno PREFERENCES_FLATFIELDSDIR;Direktorijum za ravna polja @@ -688,9 +683,7 @@ PREFERENCES_PROFILESAVECACHE;Sačuvaj parametre obrade u ostavu PREFERENCES_PROFILESAVEINPUT;Sačuvaj paramtre obrade pored ulazne datoteke PREFERENCES_PROPERTY;Osobina PREFERENCES_PSPATH;Direktorijum sa instaliranim Adobe Fotošopom -PREFERENCES_SELECTFONT;Izaberite font PREFERENCES_SELECTLANG;Jezik -PREFERENCES_SELECTTHEME;Tema PREFERENCES_SET;Postavi PREFERENCES_SHOWBASICEXIF;Prikaži osnovne Exif podatke PREFERENCES_SHOWDATETIME;Prikaži datum i vreme @@ -841,11 +834,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Izvrće sliku horizontalno TP_COARSETRAF_TOOLTIP_ROTLEFT;Okreće sliku ulevo TP_COARSETRAF_TOOLTIP_ROTRIGHT;Okreće sliku udesno TP_COARSETRAF_TOOLTIP_VFLIP;Izvrće sliku vertikalno -TP_COLORAPP_ADAPTSCENE;Luminoznost scene -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Aposolutna luminoznost okruženja scene (cd/m²).\n1) Računa se iz Exif podataka:\nBrzina zatvarača - ISO vrednost - otvor blende - korekcija ekspozicije kamere.\n2) Računa se iz bele tačke sirove slike unutar dela programa za kompenzaciju ekspozicije. -TP_COLORAPP_ADAPTVIEWING;Luminoznost za pregled (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Apsolutna luminoznost okruženja za pregled\n(obično 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Ukoliko je štiklirano (preporučeno), program računa optimalne vrednosti na osnovu Exif podataka.\nZa ručno postavljanje ovih vrednosti, odštiklirajte ovo polje. TP_COLORAPP_ALGO;Algoritam TP_COLORAPP_ALGO_ALL;Sve TP_COLORAPP_ALGO_JC;Svetlina + Boja (JC) @@ -875,8 +863,6 @@ TP_COLORAPP_CURVEEDITOR3;Kriva boja TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Podešava bilo hromu, zasićenost ili živost boja.\n\nPrikazuje histogram hromatise (Lab) pre CIECAM02.\nUkoliko je omogućeno „CIECAM02 izlazni histogram u krivuljama“, prikazuje histogram za C, s ili M nakon CIECAM02.\n\nC, s i M se ne prikazuju u glavnoj površi za histogram.\nZa konaačni izla pogledajte glavnu površ histograma. TP_COLORAPP_DATACIE;CIECAM02 izlazni histogram u krivuljama TP_COLORAPP_DATACIE_TOOLTIP;Kada je omogućeno, histogrami u CIECAM02 krivim prikazuju približne vrednosti/opsege za J ili Q, i C, s ili M nakon CIECAM02 podešavanja.\nOvaj izbor ne utiče na prikaz u glavnoj površi za histogram.\n\nKada je isključeno, histogrami u CIECAM02 krivim prikazuju Lab vrednosti pre CIECAM02 podešavanja. -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Ukoliko je štiklirano (preporučeno), program račina optimalne vrednosti, koje se zatim koriste za CAT02, a takođe za čitav CIECAM02.\nDa bi postavili vrednosti ručne, odštiklirajte ovo polje (preporučene su vrednosti iznad 65). -TP_COLORAPP_DEGREE_TOOLTIP;Količina preobražaja CIE hromatske adaptacije2002. TP_COLORAPP_GAMUT;Kontrola gamuta (Lab) TP_COLORAPP_GAMUT_TOOLTIP;Omogućava kontrolu gamuta u Lab režimu. TP_COLORAPP_HUE;Nijansa (h) @@ -891,8 +877,6 @@ TP_COLORAPP_MODEL;WP model TP_COLORAPP_MODEL_TOOLTIP;Model bele-tačke.\n\nBalans bele [RT] + [izlaz]: balans bele iz programa se koristi za kadar, CIECAM02 se postavlja na D50, a balans bele izlaznog uređaja se određuje iz Podešavanja > Upravljanje bojama.\n\nBalans bele [RT+CAT02] + [izlaz]: podešavanja balansa bele iz programa se koriste od strane CAT02, a balans bele izlaznog uređaja se određuje iz Podešavanja - Upravljanje bojama. TP_COLORAPP_RSTPRO;Zaštita crvene i boje kože TP_COLORAPP_RSTPRO_TOOLTIP;Zaštita crvene boje i boje kože (klizači i krive). -TP_COLORAPP_SHARPCIE;--ne koristi se-- -TP_COLORAPP_SHARPCIE_TOOLTIP;--ne koristi se-- TP_COLORAPP_SURROUND;Okruženo TP_COLORAPP_SURROUND_AVER;Prosečno TP_COLORAPP_SURROUND_DARK;Tamno @@ -911,6 +895,7 @@ TP_COLORAPP_TCMODE_LIGHTNESS;Svetlina TP_COLORAPP_TCMODE_SATUR;Zasićenost TP_COLORAPP_TONECIE;Mapiranje tonova u CIECAM02 TP_COLORAPP_TONECIE_TOOLTIP;Ukoliko je isključena ova opcija, mapiranje tonova se vrši u Lab okruženju.\nUkoliko je uključena, mapiranje se vrši pomoću CIECAM02.\nMorate koristiti alat za mapiranje tonova kako bi ova opcija bila primenjena. +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Apsolutna luminoznost okruženja za pregled\n(obično 16cd/m²). TP_COLORAPP_WBCAM;Balans bele [RT+CAT02] + [izlaz] TP_COLORAPP_WBRT;Balans bele [RT] + [izlaz] TP_CROP_FIXRATIO;Srazmerno: @@ -924,7 +909,6 @@ TP_CROP_GUIDETYPE;Vođice: TP_CROP_H;V TP_CROP_LABEL;Isecanje TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP; Izaberi oblast TP_CROP_W;Š TP_CROP_X;x TP_CROP_Y;y @@ -1086,9 +1070,6 @@ TP_LENSGEOM_AUTOCROP;Sam iseci TP_LENSGEOM_FILL;Sam popuni TP_LENSGEOM_LABEL;Objektiv i geometrija TP_LENSPROFILE_LABEL;Profili za ispravljanje izobličenja objektiva -TP_LENSPROFILE_USECA;Ispravljanje hrom. aberacija -TP_LENSPROFILE_USEDIST;Ispravljanje izobličenja -TP_LENSPROFILE_USEVIGN;Ispravljanje vinjetarenja TP_NEUTRAL;Neutralno TP_NEUTRAL_TIP;Vraća klizače ekspozicije na neutralne vrednosti.\nPrimenjuje se na iste kontrole kao u Auto nivoi, bez obzira na to da li ste koristili Auto nivoe ili ne. TP_PCVIGNETTE_FEATHER;Umekšavanje @@ -1559,13 +1540,18 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1665,17 +1651,13 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1711,7 +1693,13 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1721,8 +1709,8 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1735,6 +1723,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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 @@ -1753,7 +1742,6 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. @@ -1772,15 +1760,13 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1801,7 +1787,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. !THRESHOLDSELECTOR_BL;Bottom-left -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. !TP_BWMIX_FILTER_YELLOW;Yellow !TP_BWMIX_GAMMA;Gamma Correction @@ -1812,13 +1798,13 @@ 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_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORAPP_NEUTRAL;Reset !TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1832,16 +1818,25 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1870,6 +1865,8 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -1961,6 +1958,15 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1984,6 +1990,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) @@ -2005,7 +2012,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_RAW_DCB;DCB !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2055,10 +2062,10 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2096,7 +2103,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2306,6 +2313,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". !ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index 3f8854ae8..09c4d83db 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -318,9 +318,7 @@ PREFERENCES_PROFILESAVECACHE;Uložiť parametre spracovania do cache PREFERENCES_PROFILESAVEINPUT;Uložiť parametre spracovania k vstupnému súboru PREFERENCES_PROPERTY;Vlastnosť PREFERENCES_PSPATH;Inštalačný adresár Adobe Photoshop -PREFERENCES_SELECTFONT;Vybrať písmo PREFERENCES_SELECTLANG;Vybrať si jazyk -PREFERENCES_SELECTTHEME;Vybrať vzhľad PREFERENCES_SET;Nastaviť PREFERENCES_SHOWBASICEXIF;Zobrazovať základné EXIF informácie PREFERENCES_SHOWDATETIME;Ukázovať dátum a čas @@ -386,7 +384,6 @@ TP_CROP_GTRULETHIRDS;Pravidlo tretín TP_CROP_GUIDETYPE;Type vodidiel: TP_CROP_H;V TP_CROP_LABEL;Orezanie -TP_CROP_SELECTCROP; Vyberte Orez TP_CROP_W;Š TP_CROP_X;x TP_CROP_Y;y @@ -1044,13 +1041,18 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1151,10 +1153,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 @@ -1182,17 +1180,17 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1270,8 +1268,14 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALL;All to 'Set' @@ -1286,8 +1290,8 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1303,7 +1307,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1315,7 +1318,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1360,7 +1363,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files @@ -1381,11 +1383,10 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs @@ -1396,7 +1397,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1448,7 +1448,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1512,11 +1512,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1527,6 +1523,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1546,8 +1543,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1559,14 +1554,13 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1586,11 +1580,9 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1604,16 +1596,25 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1646,6 +1647,8 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1844,10 +1847,16 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. !TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection !TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1884,6 +1893,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1914,7 +1924,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1972,10 +1982,10 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_RESIZE_FITBOX;Bounding Box !TP_RESIZE_FULLIMAGE;Full Image !TP_RESIZE_LANCZOS;Lanczos -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2013,7 +2023,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2289,6 +2299,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index e304366b7..9e05dc05b 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -271,7 +271,6 @@ PREFERENCES_PROFILESAVECACHE;Tallenna käsittelyparametrit välimuistiin PREFERENCES_PROFILESAVEINPUT;Tallenna käsittelyparametrit oheistiedostoon PREFERENCES_PSPATH;Adobe Photoshop:n asennushakemisto PREFERENCES_SELECTLANG;Valitse kieli -PREFERENCES_SELECTTHEME;Valitse teema PREFERENCES_SHOWBASICEXIF;Perus EXIF-tiedot PREFERENCES_SHOWDATETIME;Päivämäärä ja aika PREFERENCES_SHTHRESHOLD;Kynnysarvo tummille alueille @@ -332,7 +331,6 @@ TP_CROP_GTRULETHIRDS;Kolmijako TP_CROP_GUIDETYPE;Sommittelumalli: TP_CROP_H;Kork. TP_CROP_LABEL;Rajaus -TP_CROP_SELECTCROP;Valitse alue TP_CROP_W;Lev. TP_CROP_X; x TP_CROP_Y; y @@ -983,13 +981,18 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1090,10 +1093,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1127,17 +1126,17 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1219,8 +1218,14 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1237,8 +1242,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1254,7 +1259,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1266,8 +1270,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1313,7 +1317,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel @@ -1336,12 +1339,10 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1354,7 +1355,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1409,7 +1409,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1473,11 +1473,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1488,6 +1484,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1507,8 +1504,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1520,14 +1515,13 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1547,11 +1541,9 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1565,16 +1557,25 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1607,6 +1608,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1824,10 +1827,16 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1870,6 +1879,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1902,7 +1912,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1963,10 +1973,10 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2004,7 +2014,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2280,6 +2290,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 3c56bbcd1..a063f0516 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -808,6 +808,7 @@ PARTIALPASTE_VIGNETTING;Reducera vinjettering PARTIALPASTE_WAVELETGROUP;Wavelet-nivåer PARTIALPASTE_WHITEBALANCE;Vitbalans PREFERENCES_ADD;Lägg till +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Översiktsvyns guidefärg PREFERENCES_APPLNEXTSTARTUP;Kräver omstart av RawTherapee PREFERENCES_AUTOMONPROFILE;Använd operativsystemets skärmfärgprofil PREFERENCES_BATCH_PROCESSING;Batchbehandling @@ -820,10 +821,6 @@ PREFERENCES_BLACKBODY;Glödlampa PREFERENCES_CACHEMAXENTRIES;Maximalt antal cachefiler PREFERENCES_CACHEOPTS;Cacheinställningar PREFERENCES_CACHETHUMBHEIGHT;Maximal höjd på miniatyrbilderna -PREFERENCES_CIEART;CIECAM02-optimering -PREFERENCES_CIEART_FRAME;CIECAM02-Specifika inställningar -PREFERENCES_CIEART_LABEL;Använd flyttalsprecision istället för dubbel -PREFERENCES_CIEART_TOOLTIP;Om aktiverat, så kommer alla CIECAM02-beräkningar att utföras med enkel precision i flyttalsformatet istället för med dubbel precision. Detta ger en liten sänkning av beräkningstiden, till ett pris av en försumbar kvalitetsförsämring. PREFERENCES_CLIPPINGIND;Klippindikering PREFERENCES_CLUTSCACHE;HaldCLUT cache PREFERENCES_CLUTSCACHE_LABEL;Maximalt antal cachade CLUTs @@ -839,7 +836,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Format för nycklar PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Namn PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Exekverbar sökväg -PREFERENCES_CUTOVERLAYBRUSH;Bakgrundsfärg vid beskärning PREFERENCES_D50;5000K PREFERENCES_D55;5500K PREFERENCES_D60;6000K @@ -858,7 +854,6 @@ PREFERENCES_DIRSOFTWARE;Installationskatalog PREFERENCES_EDITORLAYOUT;Layout för redigeringsvyn PREFERENCES_EXTERNALEDITOR;Externt bildredigeringsprogram PREFERENCES_FBROWSEROPTS;Inställningar för filvyn/miniatyrbilderna -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Filvyns verktygsrad som en rad (avmarkera för lågupplösta skärmar) PREFERENCES_FILEFORMAT;Filformat PREFERENCES_FLATFIELDFOUND;Hittade PREFERENCES_FLATFIELDSDIR;Plattfältskatalog @@ -908,7 +903,6 @@ PREFERENCES_MENUOPTIONS;Menyval för högerklick PREFERENCES_METADATA;Metadata PREFERENCES_MULTITAB;Öppna bilderna i olika flikar PREFERENCES_MULTITABDUALMON;Visa bild på andra skärmen, om möjligt, i flerfliksläge -PREFERENCES_NAVGUIDEBRUSH;Översiktsvyns guidefärg PREFERENCES_NAVIGATIONFRAME;Navigering PREFERENCES_OUTDIR;Utmatningskatalog PREFERENCES_OUTDIRFOLDER;Spara till katalog @@ -940,11 +934,8 @@ PREFERENCES_PROPERTY;Egenskaper PREFERENCES_PSPATH;Adobe Photoshops installationskatalog PREFERENCES_REMEMBERZOOMPAN;Kom ihåg förstoringsprocent och panorering PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Kom ihåg förstoringsgraden i % och panoreringen för den aktuella bilden när du öppnar en ny bild.\n\nDet här valet fungerar bara i Enkelfliksläget och när "Demosaicing-metod som ska användas för förstoringsgrader <100 %" är satt til "Som i PP3". -PREFERENCES_SELECTFONT;Välj typsnitt -PREFERENCES_SELECTFONT_COLPICKER;Välj typsnitt för färgpipetten PREFERENCES_SELECTLANG;Välj språk -PREFERENCES_SELECTTHEME;Välj tema -PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Seriell läsning av tiff-filer +PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Seriell läsning av TIFF-filer PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;När man arbetar med bilder i en katalog full med okomprimerade till-filer, så kan prestanda för att generera miniatyrbilder ökas genom att aktivera detta val. PREFERENCES_SET;Ange PREFERENCES_SHOWBASICEXIF;Visa grundlig Exif-information @@ -1105,11 +1096,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Vänd horisontellt TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotera åt vänster.\nKortkommando: [ TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotera åt höger.\nKortkommando: ] TP_COARSETRAF_TOOLTIP_VFLIP;Vänd vertikalt -TP_COLORAPP_ADAPTSCENE;Luminans hos vyn -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Absolut luminans hos vyn (cd/m²).\n1) Beräknas från exif-informationen:\nSlutartid - ISO-tal - Bländartal - exponeringskompensation gjord av kameran.\n2) Beräknas från vitpunkten hos råbilden och RT:s reglage för exponeringskompensation -TP_COLORAPP_ADAPTVIEWING;Betrakningsluminans (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Absolut luminans hos betrakningsomgivningen\n(vanligtvis 16cd/m²) -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Om checkboxen är aktiverad (rekommenderas) beräknar RT ett optimalt värde från exif-informationen.\nFör att sätta ett värde manuellt, avaktivera funktionen först TP_COLORAPP_ALGO;Algoritm TP_COLORAPP_ALGO_ALL;Alla TP_COLORAPP_ALGO_JC;Ljushet + kroma (JC) @@ -1139,8 +1125,6 @@ TP_COLORAPP_CURVEEDITOR3;Färgkurva TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Justera antingen kroma, mättnad eller colorfulness.\n\nVisar histogrammet hos kromaciteten (Lab) före CIECAM02.\nOm checkboxen "Show CIECAM02 output histograms in curves" är aktiverad, visas histogrammet för C, s eller M efter CIECAM02.\n\nC, s och M visas ej i histogrammet i huvudpanelen.\n\nFör slutligt resultat, se huvudpanelens histogram TP_COLORAPP_DATACIE;Resultat av CIECAM02-histogram i kurvor TP_COLORAPP_DATACIE_TOOLTIP;När detta är aktiverat, visar CIECAM02-histogram ungefärliga värden/intervall för J eller Q, och C, s eller M efter justeringar i CIECAM02.\nDet här valet påverkar inte huvudhistogrammet.\n\nNär detta är avaktiverat, visar histogrammet för CIECAM02-kurvor Lab-värden innan justeringar av CIECAM02 -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Om den här checkboxen är aktiverad (rekommenderas), beräknar RT ett optimalt värde som sedan dels används av CAT02 och dels för hela CIECAM02.\nFör att ange ett värde manuellt, avaktivera checkboxen först (värden över 65 rekommenderas) -TP_COLORAPP_DEGREE_TOOLTIP;Mängd CIE kromatisk anpassning 2002 TP_COLORAPP_GAMUT;Kontroll av tonomfång (Lab) TP_COLORAPP_GAMUT_TOOLTIP;Tillåt kontroll av tonomfång i Lab-läge TP_COLORAPP_HUE;Nyans(h) @@ -1155,8 +1139,6 @@ TP_COLORAPP_MODEL;Vitpunktsmodell TP_COLORAPP_MODEL_TOOLTIP;Vitpunktsmodell\n\nWB [RT] + [output]:\nRT:s vitbalans används för bilden, CIECAM02 sätts till D50, utmatningsenhetens vitbalans sätts i Inställningar > Färghantering\n\nWB [RT+CAT02] + [output]:\nRT:s vitbalansinställningar används av CAT02 och utmatningsenhetens vitbalans sätts i Inställningar TP_COLORAPP_RSTPRO;Bevara röda färger och hudtoner TP_COLORAPP_RSTPRO_TOOLTIP;Bevara röda färger och hudtoner (reglage och kurvor) -TP_COLORAPP_SHARPCIE;Skärpa, Kontrast genom detaljnivåer, Mikrokontrast och Fyll ut överstrålning med kvalitetskontroll -TP_COLORAPP_SHARPCIE_TOOLTIP;Skärpa, Kontrast genom detaljnivåer, Mikrokontrast och Fyll ut överstrålning kommer att använda CIECAM02 om den är aktiverad TP_COLORAPP_SURROUND;Omgivning TP_COLORAPP_SURROUND_AVER;Medel TP_COLORAPP_SURROUND_DARK;Mörk @@ -1175,6 +1157,7 @@ TP_COLORAPP_TCMODE_LIGHTNESS;Ljushet TP_COLORAPP_TCMODE_SATUR;Mättnad TP_COLORAPP_TONECIE;Tonmappning som använder CIECAM02 ljushet (Q) TP_COLORAPP_TONECIE_TOOLTIP;Om det här valet ej är aktiverat, görs tonmappningen i Lab.\nOm det här valet är aktiverat, görs tonmappningen mha CIECAM02.\nTonmappningsverktyget måste vara aktiverad för att den här inställningen ska ha någon effekt +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolut luminans hos betrakningsomgivningen\n(vanligtvis 16cd/m²) TP_COLORAPP_WBCAM;Vitbalans [RT+CAT02] + [utmatning] TP_COLORAPP_WBRT;Vitbalans [RT] + [utmatning] TP_COLORTONING_AB;o C/L @@ -1223,7 +1206,6 @@ TP_CROP_GUIDETYPE;Guidetyp: TP_CROP_H;Höjd TP_CROP_LABEL;Beskär TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Välj beskärningsområde TP_CROP_W;Bredd TP_CROP_X;x TP_CROP_Y;y @@ -1440,9 +1422,6 @@ TP_LENSGEOM_AUTOCROP;Autobeskärning TP_LENSGEOM_FILL;Fyll automatiskt TP_LENSGEOM_LABEL;Geometrisk- och distorsionskorrigering TP_LENSPROFILE_LABEL;Objektivkorrigeringsprofil -TP_LENSPROFILE_USECA;Korrigera för kromatiska abberationer -TP_LENSPROFILE_USEDIST;Korrigera distorsion -TP_LENSPROFILE_USEVIGN;Korrigera vinjettering TP_NEUTRAL;Återställ TP_NEUTRAL_TIP;Återställ exponeringsreglagen till neutrala värden.\nGäller för samma reglage som autonivåer, oavsett om du använder autonivåer eller ej TP_PCVIGNETTE_FEATHER;Fjäder @@ -1920,13 +1899,18 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -2026,16 +2010,12 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. !OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -2053,15 +2033,20 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: !PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -2069,6 +2054,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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 @@ -2083,11 +2069,10 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PREFERENCES_PROFILESAVELOCATION;Processing profile saving location !PREFERENCES_PRTINTENT;Rendering intent !PREFERENCES_PRTPROFILE;Color profile -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -2110,29 +2095,40 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset !TP_CBDL_METHOD;Process located +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORAPP_NEUTRAL;Reset !TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !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. !TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DEHAZE_DEPTH;Depth !TP_DEHAZE_LABEL;Haze Removal !TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map @@ -2168,6 +2164,15 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -2185,6 +2190,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) !TP_RAW_2PASS;1-pass+fast @@ -2197,7 +2203,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_RAW_DCB;DCB !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2242,7 +2248,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! !TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. @@ -2250,7 +2256,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_RETINEX_GAMMA_TOOLTIP;Restore tones by applying gamma before and after Retinex. Different from Retinex curves or others curves (Lab, Exposure, etc.). !TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm.\nMay require you to re-adjust "Neighboring pixels" and to increase the "White-point correction" in the Raw tab -> Raw White Points tool. !TP_RETINEX_LABEL_MASK;Mask -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2311,5 +2317,6 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements. !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TON;Toning +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index 812f70f4b..36e5033c4 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -271,7 +271,6 @@ PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File PREFERENCES_PSPATH;Adobe Photoshop installation directory PREFERENCES_SELECTLANG;Dil seç -PREFERENCES_SELECTTHEME;Select theme PREFERENCES_SHOWBASICEXIF;Temel exif bilgisini göster PREFERENCES_SHOWDATETIME;Tarih ve saati göster PREFERENCES_SHTHRESHOLD;Kırpılmış karaltılar için eşik @@ -332,7 +331,6 @@ TP_CROP_GTRULETHIRDS;Üçler kuralı TP_CROP_GUIDETYPE;Kılavuz türü: TP_CROP_H;Y TP_CROP_LABEL;Kırp -TP_CROP_SELECTCROP; Kırpma alanı seç TP_CROP_W;G TP_CROP_X;x TP_CROP_Y;y @@ -982,13 +980,18 @@ TP_WBALANCE_TEMPERATURE;Isı !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask !HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth !HISTORY_MSG_DEHAZE_ENABLED;Haze Removal !HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1089,10 +1092,6 @@ TP_WBALANCE_TEMPERATURE;Isı !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_FULLSCREEN;Fullscreen !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -1126,17 +1125,17 @@ TP_WBALANCE_TEMPERATURE;Isı !MAIN_TAB_RAW;Raw !MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r !MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -!MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b +!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. +!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g +!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1218,8 +1217,14 @@ TP_WBALANCE_TEMPERATURE;Isı !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1236,8 +1241,8 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1253,7 +1258,6 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency !PREFERENCES_D50;Settings in main menu !PREFERENCES_D50_OLD;5000K !PREFERENCES_D55;5500K @@ -1265,8 +1269,8 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +!PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1312,7 +1316,6 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel @@ -1335,12 +1338,10 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT;Select main font -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1353,7 +1354,6 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1408,7 +1408,7 @@ TP_WBALANCE_TEMPERATURE;Isı !THRESHOLDSELECTOR_T;Top !THRESHOLDSELECTOR_TL;Top-left !THRESHOLDSELECTOR_TR;Top-right -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. !TP_BWMIX_ALGO;Algorithm OYCPM !TP_BWMIX_ALGO_LI;Linear !TP_BWMIX_ALGO_SP;Special effects @@ -1472,11 +1472,7 @@ TP_WBALANCE_TEMPERATURE;Isı !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_CHROMATABERR_LABEL;Chromatic Aberration -!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_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1487,6 +1483,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. !TP_COLORAPP_BRIGHT;Brightness (Q) !TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_CHROMA;Chroma (C) !TP_COLORAPP_CHROMA_M;Colorfulness (M) !TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1506,8 +1503,6 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1519,14 +1514,13 @@ TP_WBALANCE_TEMPERATURE;Isı !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_MEANLUMINANCE;Mean luminance (Yb%) !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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SHARPCIE;--unused-- -!TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_AVER;Average !TP_COLORAPP_SURROUND_DARK;Dark @@ -1546,11 +1540,9 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance !TP_COLORTONING_AB;o C/L !TP_COLORTONING_AUTOSAT;Automatic !TP_COLORTONING_BALANCE;Balance @@ -1564,16 +1556,25 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_COLORTONING_LABEL;Color Toning !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;L*a*b* correction regions +!TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L !TP_COLORTONING_LABREGION_LIST_TITLE;Correction !TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power !TP_COLORTONING_LABREGION_SATURATION;Saturation !TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_COLORTONING_LUMA;Luminance !TP_COLORTONING_LUMAMODE;Preserve luminance !TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1606,6 +1607,8 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI= +!TP_CROP_RESETCROP;Reset +!TP_CROP_SELECTCROP;Select !TP_DARKFRAME_AUTOSELECT;Auto-selection !TP_DARKFRAME_LABEL;Dark-Frame !TP_DEFRINGE_LABEL;Defringe @@ -1823,10 +1826,16 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1869,6 +1878,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red @@ -1901,7 +1911,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1962,10 +1972,10 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2003,7 +2013,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2279,6 +2289,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 !TP_WBALANCE_LED_HEADER;LED !TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_SHADE;Shade !TP_WBALANCE_SOLUX35;Solux 3500K !TP_WBALANCE_SOLUX41;Solux 4100K diff --git a/rtdata/languages/default b/rtdata/languages/default index 02ded5378..10c8ed730 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -733,13 +733,18 @@ HISTORY_MSG_493;L*a*b* Adjustments HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask +HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask +HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth HISTORY_MSG_DEHAZE_ENABLED;Haze Removal HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -860,10 +865,6 @@ IPTCPANEL_TITLE;Title IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. IPTCPANEL_TRANSREFERENCE;Job ID IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -LENSPROFILE_CORRECTION_LCPFILE;LCP File -LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. MAIN_BUTTON_FULLSCREEN;Fullscreen MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 @@ -933,7 +934,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. MAIN_TOOLTIP_QINFO;Quick info on the image.\nShortcut: i MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l @@ -1036,9 +1037,15 @@ PARTIALPASTE_VIBRANCE;Vibrance PARTIALPASTE_VIGNETTING;Vignetting correction PARTIALPASTE_WHITEBALANCE;White balance PREFERENCES_ADD;Add +PREFERENCES_APPEARANCE;Appearance +PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +PREFERENCES_APPEARANCE_MAINFONT;Main font +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +PREFERENCES_APPEARANCE_THEME;Theme PREFERENCES_APPLNEXTSTARTUP;restart required PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit PREFERENCES_BATCH_PROCESSING;Batch Processing PREFERENCES_BEHADDALL;All to 'Add' PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1059,8 +1066,8 @@ PREFERENCES_CLUTSCACHE;HaldCLUT Cache PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs PREFERENCES_CLUTSDIR;HaldCLUT directory PREFERENCES_CMMBPC;Black point compensation -PREFERENCES_CROP;Crop editing -PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area when double clicking in the preview image +PREFERENCES_CROP;Crop Editing +PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop PREFERENCES_CROP_GUIDES_FRAME;Frame PREFERENCES_CROP_GUIDES_FULL;Original @@ -1076,7 +1083,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Executable path -PREFERENCES_CUTOVERLAYBRUSH;Crop mask color/transparency PREFERENCES_D50;Settings in main menu PREFERENCES_D50_OLD;5000K PREFERENCES_D55;5500K @@ -1095,10 +1101,10 @@ PREFERENCES_DIROTHER;Other PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup... PREFERENCES_DIRSOFTWARE;Installation directory PREFERENCES_EDITORCMDLINE;Custom command line -PREFERENCES_EDITORLAYOUT;Editor Layout +PREFERENCES_EDITORLAYOUT;Editor layout PREFERENCES_EXTERNALEDITOR;External Editor PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) +PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser PREFERENCES_FILEFORMAT;File format PREFERENCES_FLATFIELDFOUND;Found PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1155,7 +1161,6 @@ PREFERENCES_MONPROFILE;Default color profile PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. PREFERENCES_MULTITAB;Multiple Editor Tabs Mode PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -PREFERENCES_NAVGUIDEBRUSH;Navigator guide color PREFERENCES_NAVIGATIONFRAME;Navigation PREFERENCES_OUTDIR;Output Directory PREFERENCES_OUTDIRFOLDER;Save to folder @@ -1194,14 +1199,11 @@ PREFERENCES_PRTPROFILE;Color profile PREFERENCES_PSPATH;Adobe Photoshop installation directory PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -PREFERENCES_SELECTFONT;Select main font -PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font +PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now PREFERENCES_SELECTLANG;Select language -PREFERENCES_SELECTTHEME;Select theme -PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. PREFERENCES_SET;Set PREFERENCES_SHOWBASICEXIF;Show basic Exif info PREFERENCES_SHOWDATETIME;Show date and time @@ -1222,7 +1224,6 @@ PREFERENCES_TAB_GENERAL;General PREFERENCES_TAB_IMPROC;Image Processing PREFERENCES_TAB_PERFORMANCE;Performance PREFERENCES_TAB_SOUND;Sounds -PREFERENCES_THEME;Theme PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1307,7 +1308,7 @@ THRESHOLDSELECTOR_T;Top THRESHOLDSELECTOR_TL;Top-left THRESHOLDSELECTOR_TR;Top-right TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: shift+right-click.\n- Revert to hand tool: right-click. -TOOLBAR_TOOLTIP_CROP;Crop selection.\nShortcut: c\nMove the crop area using Shift+mouse drag. +TOOLBAR_TOOLTIP_CROP;Crop selection.\nShortcut: c\nMove the crop using Shift+mouse drag. TOOLBAR_TOOLTIP_HAND;Hand tool.\nShortcut: h TOOLBAR_TOOLTIP_STRAIGHTEN;Straighten / fine rotation.\nShortcut: s\n\nIndicate the vertical or horizontal by drawing a guide line over the image preview. Angle of rotation will be shown next to the guide line. Center of rotation is the geometrical center of the image. TOOLBAR_TOOLTIP_WB;Spot white balance.\nShortcut: w @@ -1385,11 +1386,7 @@ 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 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_ABSOLUTELUMINANCE;Absolute luminance TP_COLORAPP_ALGO;Algorithm TP_COLORAPP_ALGO_ALL;All TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1400,6 +1397,7 @@ TP_COLORAPP_BADPIXSL;Hot/bad pixel filter TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. TP_COLORAPP_BRIGHT;Brightness (Q) TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. +TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. TP_COLORAPP_CHROMA;Chroma (C) TP_COLORAPP_CHROMA_M;Colorfulness (M) TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. @@ -1419,8 +1417,6 @@ TP_COLORAPP_CURVEEDITOR3;Color curve TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\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_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. @@ -1432,14 +1428,13 @@ TP_COLORAPP_LABEL_SCENE;Scene Conditions 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_MEANLUMINANCE;Mean luminance (Yb%) 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.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the 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 & skin-tones protection affects both sliders and curves. -TP_COLORAPP_SHARPCIE;--unused-- -TP_COLORAPP_SHARPCIE_TOOLTIP;--unused-- TP_COLORAPP_SURROUND;Surround TP_COLORAPP_SURROUND_AVER;Average TP_COLORAPP_SURROUND_DARK;Dark @@ -1459,11 +1454,9 @@ TP_COLORAPP_TCMODE_SATUR;Saturation TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] TP_COLORAPP_WBRT;WB [RT] + [output] -TP_COLORAPP_YB;Yb% (mean luminance) -TP_COLORAPP_YBSCENE;Yb% (mean luminance) -TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance TP_COLORTONING_AB;o C/L TP_COLORTONING_AUTOSAT;Automatic TP_COLORTONING_BALANCE;Balance @@ -1477,16 +1470,25 @@ TP_COLORTONING_LAB;L*a*b* blending TP_COLORTONING_LABEL;Color Toning TP_COLORTONING_LABGRID;L*a*b* color correction grid TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -TP_COLORTONING_LABREGIONS;L*a*b* correction regions +TP_COLORTONING_LABREGIONS;Color correction regions TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +TP_COLORTONING_LABREGION_CHANNEL;Channel +TP_COLORTONING_LABREGION_CHANNEL_ALL;All +TP_COLORTONING_LABREGION_CHANNEL_B;Blue +TP_COLORTONING_LABREGION_CHANNEL_G;Green +TP_COLORTONING_LABREGION_CHANNEL_R;Red TP_COLORTONING_LABREGION_CHROMATICITYMASK;C TP_COLORTONING_LABREGION_HUEMASK;H TP_COLORTONING_LABREGION_LIGHTNESS;Lightness TP_COLORTONING_LABREGION_LIGHTNESSMASK;L TP_COLORTONING_LABREGION_LIST_TITLE;Correction TP_COLORTONING_LABREGION_MASK;Mask +TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +TP_COLORTONING_LABREGION_OFFSET;Offset +TP_COLORTONING_LABREGION_POWER;Power TP_COLORTONING_LABREGION_SATURATION;Saturation TP_COLORTONING_LABREGION_SHOWMASK;Show mask +TP_COLORTONING_LABREGION_SLOPE;Slope TP_COLORTONING_LUMA;Luminance TP_COLORTONING_LUMAMODE;Preserve luminance TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. @@ -1526,10 +1528,11 @@ TP_CROP_GUIDETYPE;Guide type: TP_CROP_H;Height TP_CROP_LABEL;Crop TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Select Crop +TP_CROP_RESETCROP;Reset +TP_CROP_SELECTCROP;Select TP_CROP_W;Width -TP_CROP_X;X -TP_CROP_Y;Y +TP_CROP_X;Left +TP_CROP_Y;Top TP_DARKFRAME_AUTOSELECT;Auto-selection TP_DARKFRAME_LABEL;Dark-Frame TP_DEFRINGE_LABEL;Defringe @@ -1772,10 +1775,16 @@ TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. TP_LENSGEOM_AUTOCROP;Auto-Crop TP_LENSGEOM_FILL;Auto-fill TP_LENSGEOM_LABEL;Lens / Geometry +TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +TP_LENSPROFILE_CORRECTION_MANUAL;Manually TP_LENSPROFILE_LABEL;Profiled Lens Correction -TP_LENSPROFILE_USECA;Chromatic aberration correction -TP_LENSPROFILE_USEDIST;Distortion correction -TP_LENSPROFILE_USEVIGN;Vignetting correction +TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +TP_LENSPROFILE_USE_CA;Chromatic aberration +TP_LENSPROFILE_USE_GEOMETRIC;Geometric +TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +TP_LENSPROFILE_USE_VIGNETTING;Vignetting TP_LOCALCONTRAST_AMOUNT;Amount TP_LOCALCONTRAST_DARKNESS;Darkness level TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1818,7 +1827,7 @@ TP_PRSHARPENING_LABEL;Post-Resize Sharpening TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. TP_RAWCACORR_AUTO;Auto-correction TP_RAWCACORR_AUTOIT;Iterations -TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, means it often does not correct all Chromatic Aberration.\nTo correct the remaining Chromatic Aberration, you can use up to 5 iterations of automatic Chromatic Aberration correction.\nEach iteration will reduce the remaining Chromatic Aberration from the last iteration at the cost of additional processing time. +TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift TP_RAWCACORR_CABLUE;Blue TP_RAWCACORR_CARED;Red @@ -1852,7 +1861,7 @@ TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the check-box is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the check-box first (reasonable values depend on the image). +TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold TP_RAW_EAHD;EAHD TP_RAW_FALSECOLOR;False color suppression steps @@ -1920,10 +1929,10 @@ TP_RESIZE_SCALE;Scale TP_RESIZE_SPECIFY;Specify: TP_RESIZE_W;Width: TP_RESIZE_WIDTH;Width -TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -TP_RETINEX_CONTEDIT_LH;Hue equalizer -TP_RETINEX_CONTEDIT_MAP;Mask equalizer +TP_RETINEX_CONTEDIT_HSL;HSL histogram +TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +TP_RETINEX_CONTEDIT_LH;Hue +TP_RETINEX_CONTEDIT_MAP;Equalizer TP_RETINEX_CURVEEDITOR_CD;L=f(L) TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -1961,7 +1970,7 @@ TP_RETINEX_LABEL;Retinex TP_RETINEX_LABEL_MASK;Mask TP_RETINEX_LABSPACE;L*a*b* TP_RETINEX_LOW;Low -TP_RETINEX_MAP;Mask method +TP_RETINEX_MAP;Method TP_RETINEX_MAP_GAUS;Gaussian mask TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2271,6 +2280,7 @@ TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 TP_WBALANCE_LED_HEADER;LED TP_WBALANCE_LED_LSI;LSI Lumelex 2040 TP_WBALANCE_METHOD;Method +TP_WBALANCE_PICKER;Pick TP_WBALANCE_SHADE;Shade TP_WBALANCE_SIZE;Size: TP_WBALANCE_SOLUX35;Solux 3500K diff --git a/rtdata/themes/RawTherapee-GTK3-20_.css b/rtdata/themes/RawTherapee-GTK3-20_.css index 84ea1c3a3..20478367f 100644 --- a/rtdata/themes/RawTherapee-GTK3-20_.css +++ b/rtdata/themes/RawTherapee-GTK3-20_.css @@ -1037,4 +1037,8 @@ progressbar.vertical trough, progressbar.vertical progress { min-width: 10px; } -/* */ +/* Add padding to grid cells */ + +.grid-spacing > * { + margin: 2px; +} diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index 3bc6e0bdc..d4565829a 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-2018 TooWaBoo - Version 2.86 + Version 2.98 RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -96,7 +96,7 @@ } #ToolPanelNotebook { - min-width: 24em; + min-width: 25em; } #HistoryPanel { min-width: 17.5em; @@ -164,7 +164,9 @@ undershoot { } label { - margin: 0 0.166666666666666666em; + padding: 0.083333333333333333em 0; + margin: 0.19em; + min-height: 1.333333333333333333em; } /*** Frames ************************************************************************************/ @@ -179,11 +181,6 @@ frame { border-radius: 0; } -#BatchQueueButtonsMainContainer frame, -#MyExpander frame, -dialog frame { - margin: 0.166666666666666666em 0.5em; -} /* affects selection list*/ entry > window > frame { margin: 0; @@ -193,24 +190,36 @@ entry > window > frame { margin: -5px 0 0; } -frame > border { - padding: 0; - border-radius: 0; - border: none; - background-color: transparent; +#RightNotebook > stack > scrolledwindow frame, +#BatchQueueButtonsMainContainer frame, +#MyExpander frame, +dialog frame { margin: 0; - min-height: 0; - min-width: 0; + padding: 0.19em 0.75em; } - +#RightNotebook > stack > scrolledwindow frame > border, #BatchQueueButtonsMainContainer > frame > border, #MyExpander frame > border, dialog frame > border { - padding: 0.416666666666666666em; + padding: 0 0.333333333333333333em 0.333333333333333333em; border-radius: 0; border: 0.083333333333333333em solid @border-color; background-color: transparent; - margin: 0 -0.5em; + margin: 0 -0.583333333333333333em; +} +frame > label { + margin: 0; + padding: 0.416666666666666666em 0; + color: @headline-frame; +} +frame > checkbutton label{ + color: @headline-frame; +} +#RightNotebook > stack > scrolledwindow frame > label:not(.dummy), +#BatchQueueButtonsMainContainer frame > label:not(.dummy), +#ToolPanelNotebook frame > label:not(.dummy), +dialog frame > label:not(.dummy) { + padding: 0.25em 0.5em; } #PrefNotebook box > frame > border { @@ -221,12 +230,6 @@ dialog frame > border { border: 0.083333333333333333em solid @bg-dark-grey; } -#BatchQueueButtonsMainContainer frame > label, -#ToolPanelNotebook frame > label, -dialog frame > label { - margin: 0; - padding: 0.166666666666666666em 0.5em; -} #BatchQueueButtonsMainContainer frame > border { margin-bottom: 0.833333333333333333em; } @@ -234,14 +237,6 @@ dialog frame > label { padding-left: 0.916666666666666666em; } -frame > label { - margin: 0; - padding: 0.416666666666666666em 0; - color: @headline-frame; -} -frame > checkbutton label{ - color: @headline-frame; -} /*** end ***************************************************************************************/ /*** Lists & Views *****************************************************************************/ @@ -330,11 +325,8 @@ fontchooser scrolledwindow, padding-bottom: 0.25em; background-color: @bg-dark-grey; } -#Navigator box label { - padding: 0.166666666666666666em 0; -} -#Navigator > label:nth-child(2) { - margin-top: 0.5em; +#Navigator label { + padding: 0; } /*** end ***************************************************************************************/ @@ -397,7 +389,7 @@ filechooser placessidebar list row { min-height: calc(1.416666666666666666em + 8px); } filechooser placessidebar list row label{ - margin: 0 0 0 0.58333333333333333em; + margin: 0 0 0 0.583333333333333333em; } filechooser list row:hover { background-color: @bg-list-hover; @@ -473,7 +465,7 @@ separator, background-color: transparent; } grid separator.horizontal, box separator.horizontal { - margin: 0.333333333333333333em 0.166666666666666666em; + margin: 0.25em 0.19em; padding: 0; } grid separator.vertical, box separator.vertical { @@ -546,20 +538,25 @@ menu separator { } .scrollableToolbar separator.vertical { - background-color: shade(@bg-light-grey,.75); - margin: 0.166666666666666666em; + background-color: shade(@bg-light-grey, .72); + margin: 0.19em; } #MyExpander separator.horizontal { background-color: @view-grid-border; - margin: 0.333333333333333333em 0.166666666666666666em; + margin: 0.25em 0.19em; } #MyFileChooserButton separator { background-color: transparent; } #PlacesPaned .view.separator { - color: @border-color; + color: @view-grid-border; +} + +#MetaPanelNotebook separator { + background-color: @border-color; + margin: 0.19em 0; } /*** end****************************************************************************************/ @@ -697,7 +694,7 @@ scrollbar:not(.overlay-indicator):hover { /*** Scale**************************************************************************************/ scale { padding: 0; - min-height: 1.833333333333333333em; + min-height: 1.833333333333333333em; margin: 0 -0.333333333333333333em; } @@ -746,6 +743,7 @@ scale.fine-tune trough highlight { padding: 0.5em 0.5em 0 0; border-radius: 0.5em; } + scale:disabled slider, scale:disabled trough highlight { background-color: shade(@bg-grey,.83); @@ -820,6 +818,7 @@ progressbar.vertical trough.empty { progressbar trough.empty progress { border-color: transparent; background-image: none; + box-shadow: none; } /*** end ***************************************************************************************/ @@ -920,15 +919,30 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { min-height: 5em; } -#ToolPanelNotebook > header tabs { - margin-bottom: 0.333333333333333333em; +#ToolPanelNotebook { + background-color: @bg-dark-grey; } -#ToolPanelNotebook > header tab > box > image{ +#ToolPanelNotebook > header { + border-bottom: 0.083333333333333333em solid @view-grid-border; + margin-left: 0.083333333333333333em; + margin-right: 0.083333333333333333em; + padding: 0 0.19em; +} +#ToolPanelNotebook > header tabs { + margin: 0 0 0.25em; +} +#ToolPanelNotebook > header tab { + padding: 0; +} +#ToolPanelNotebook > header tab image{ min-height: 2em; min-width: 2em; - padding-top: 0.25em; - padding-bottom: 0.333333333333333333em; - margin: 0; + margin: 0.19em 0.25em 0.333333333333333333em; + padding: 0; +} +#ToolPanelNotebook > stack { + background-color: @bg-dark-grey; + padding: 0.5em 0; } #RightNotebook > header { @@ -952,11 +966,6 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { #PrefNotebook > header { margin: -0.666666666666666666em -0.666666666666666666em 0.333333333333333333em; } -#PrefNotebook > header tab label, -#AboutNotebook > header tab label { - padding-top: 0.25em; - padding-bottom: 0.25em; -} #PrefNotebook > stack { margin: 0 -0.666666666666666666em; } @@ -983,8 +992,9 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { background-color: @bg-dark-grey; padding-left: 0.333333333333333333em; } -#MetaPanelNotebook > header tab label{ - margin: 0.083333333333333333em 0.083333333333333333em 0.166666666666666666em; +#MetaPanelNotebook > stack { + background-color: @bg-dark-grey; + padding: 0 0 0.5em 0; } #MetaPanelNotebook > stack > box { @@ -993,7 +1003,7 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { border-radius: 0; border-top-style: none; padding: 0 0.333333333333333333em 0.25em; - margin: 0 0.5em -0.5em; + margin:0 0.5em -0.5em; } #MetaPanelNotebook > stack > box:nth-child(1) > scrolledwindow { margin: 0 0 0.333333333333333333em; @@ -1004,10 +1014,6 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { padding: 0 0 0 1.083333333333333333em; } -#MetaPanelNotebook separator { - background-color: @border-color; - margin: 0.166666666666666666em 0; -} #MetaPanelNotebook entry { padding: 0 0.333333333333333333em; background-color: @bg-dark-grey; @@ -1025,8 +1031,10 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { background-color: transparent; } -#MetaPanelNotebook label { - padding: 0.083333333333333333em 0 0; +#MetaPanelNotebook stack label { + margin-top: 0; + margin-bottom: 0; + padding: 0; } /*** end ***************************************************************************************/ @@ -1048,7 +1056,13 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { } #ToolBarPanelFileBrowser { - margin: 0.416666666666666666em 0; + margin: 0 0 0.416666666666666666em 0; + min-height: 0; + min-width: 0; + padding: 0; +} +#FileBrowserQueryToolbar { + margin: 0 0 0.416666666666666666em 0; min-height: 0; min-width: 0; padding: 0; @@ -1076,9 +1090,13 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { border-left: 0.083333333333333333em solid @bg-dark-grey; } +/* !!! Must be same height as "Small Lock Button" */ #BeforeAfterContainer label { - min-height: 2.666666666666666666em; padding: 0 0.5em; + min-height: 2em; + min-width: 2em; + margin: 0.25em 0; + border: 0.083333333333333333em solid transparent; } #EditorToolbarTop { @@ -1100,15 +1118,10 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { /*** end ***************************************************************************************/ /*** Toolbox ***********************************************************************************/ -#ToolPanelNotebook stack { - background-color: @bg-dark-grey; - padding: 0 0 0.5em 0; -} - #MyExpander image { min-width: 1.333333333333333333em; - min-height: 1.333333333333333333em; - margin: 0 0.166666666666666666em; + min-height: 0; + margin: -1px 0.19em; } /*Curve spinbutton background */ @@ -1135,8 +1148,9 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { margin: 0.083333333333333333em 0 0.166666666666666666em 0; } -#ToolPanelNotebook scrolledwindow viewport.frame { +#ToolPanelNotebook > stack > scrolledwindow > viewport.frame { padding: 0 0.5em; + margin-top: -0.5em; } #MyExpander { @@ -1148,7 +1162,7 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { border: none; border-radius: 0; margin: 0; - padding: 0.416666666666666666em; + padding: 0.5em 0.333333333333333333em; } /* Sub-tool (MyExpander) */ @@ -1156,8 +1170,8 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { background-color: transparent; border: 0.083333333333333333em solid @border-color; border-radius: 0; - margin: 0; - padding: 0.416666666666666666em; + margin: 0 0.19em; + padding: 0.333333333333333333em; } #MyExpanderTitle > box { @@ -1168,7 +1182,7 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { #MyExpanderTitle label { color: @headline-big; padding: 0; - margin: 0.083333333333333333em 0.25em 0 0.5em; + margin: 0.083333333333333333em 0.25em 0 0.166666666666666666em; } #MyExpanderTitle:hover label { @@ -1210,7 +1224,7 @@ menuitem { menu arrow { min-width: 1.333333333333333333em; - margin: 0 -0.166666666666666666em; + margin: 0 -0.19em; padding: 0; margin: 0 -0.25em 0 0; } @@ -1225,9 +1239,9 @@ menuitem:hover > * { menu image:not(.dummy), #MyExpander menu image:not(.dummy) { min-height: 2em; - min-width: 1.333333333333333333em; + min-width: 1.5em; padding: 0; - margin: 0 0 0 -1.583333333333333333em; + margin: 0 0 0 -1.333333333333333333em; } /*** Selection popup list (used in filechooser) ***/ @@ -1281,11 +1295,10 @@ popover.background modelbutton:hover { switch { min-height: 2.333333333333333333em; min-width: 11em; - margin: 0 0.166666666666666666em; + margin: 0 0.19em; padding: 0; border-radius: 0.2em; background-image: none; - box-shadow: inset 0.083333333333333333em 0.083333333333333333em rgba(0, 0, 0, 0.08), 0 0.083333333333333333em rgba(242, 242, 242, 0.1); border: 0.083333333333333333em solid @bg-entry-border; background-color: @bg-scale-entry; margin-bottom: 0.5em; @@ -1329,8 +1342,8 @@ switch:disabled:not(:checked) { button, #BeforeAfterContainer button { min-height: 1.666666666666666666em; - min-width: 1.666666666666666666em; - margin: 0.166666666666666666em; + min-width: 1.666666666666666666em;/*x*/ + margin: 0.19em; border-radius: 0.2em; border: 0.083333333333333333em solid @bg-button-border; background-color: transparent; @@ -1346,32 +1359,83 @@ button.flat { button.flat:hover, button:hover, -#BeforeAfterContainer button:hover { +#BeforeAfterContainer button:hover, +#FileBrowserQueryToolbar entry + button.flat:hover, +#FileBrowserIconToolbar entry + button.flat:hover { border-color: @bg-button-border; box-shadow: inset 0 0.083333333333333333em rgba(242, 242, 242, 0.1); background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); background-color: @bg-button-hover; } +.curve-mainbox .curve-buttonbox button.flat:hover, +#ToolPanelNotebook > stack > box > box button:hover, #MainNotebook > header tab #CloseButton:hover, #MainNotebook > header > grid > button:hover { background-color: alpha(@bg-grey, 0.6); border-color: shade(@bg-dark-grey, 0.6); + box-shadow: inset 0 0.1em rgba(242, 242, 242, 0.12); } button.flat:active, button.flat:checked, button:active, button:checked, -#BeforeAfterContainer button:checked { +#BeforeAfterContainer button:checked, +#FileBrowserQueryToolbar entry + button.flat:active, +#FileBrowserIconToolbar entry + button.flat:active { border-color: @bg-button-border; - box-shadow: inset 0 0.083333333333333333em rgba(242, 242, 242, 0.08); + box-shadow: inset 0 0.1em rgba(242, 242, 242, 0.08); background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); background-color: @bg-button-active; } +.curve-mainbox .curve-buttonbox button.flat:active, +.curve-mainbox .curve-buttonbox button.flat:checked, +#ToolPanelNotebook > stack > box > box button:active, #MainNotebook > header tab #CloseButton:active, #MainNotebook > header > grid > button:active { background-color: alpha(@bg-light-grey, 0.8); border-color: shade(@bg-dark-grey, 0.6); + box-shadow: inset 0 0.1em rgba(242, 242, 242, 0.15); +} + +/* Combobox */ +button.combo { + padding: 0 0 0 0.25em; +} +combobox entry.combo + button.combo { + min-width: 1em; + margin-left: 0; + padding: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left: none; +} +#WB-Size-Helper button.combo { + min-width: 0; + margin: 0; +} +#WB-Size-Helper { + min-width: 3.5em; + margin: 0.19em; +} + +combobox arrow { + margin-right: 0.083333333333333333em; +} + +combobox entry.combo + button.combo arrow { + margin-right: 0; +} + +#PlacesPaned button.combo { + margin: 0; +} +#PlacesPaned combobox { + margin-bottom: calc(0.416666666666666666em - 8px); +} + +#ProfilePanel combobox { + margin-right: -2px; } /* Misc */ @@ -1385,18 +1449,12 @@ button image:not(.dummy), #MyFileChooserButton label { margin: 0 0 0 0.416666666666666666em; } -#MyFileChooserButton image { - padding: 0 0.416666666666666666em 0 0; +#MyFileChooserButton image:not(.dummy):last-child { + margin: 0 0.416666666666666666em 0 0; + min-width: 1.333333333333333333em; opacity: 0.85; } -button.combo { - padding: 0 0 0 0.25em; -} -combobox arrow { - margin-right: 0.083333333333333333em; -} -#MetaPanelNotebook button + button:last-child, -#MetaPanelNotebook scrolledwindow ~ combobox entry + button:not(.dummy) { +#MetaPanelNotebook button + button:last-child { margin-right: 0; } #MetaPanelNotebook scrolledwindow + grid > button:first-child, @@ -1407,23 +1465,9 @@ combobox arrow { #MetaPanelNotebook scrolledwindow + grid + grid > button:last-child { margin-right: 0; } -combobox entry + button:not(.dummy) arrow { - margin-right: 0; -} -combobox entry + button:not(.dummy) { - min-width: 1em; - margin-left: 0; - padding: 0 ; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - border-left: none; -} -#PlacesPaned button.combo { - margin: 0; -} -#PlacesPaned combobox { - margin-bottom: calc(0.416666666666666666em - 8px); +#ProfilePanel > grid { + margin-bottom: calc(0.416666666666666666em -2px); } /* Reset button */ @@ -1431,15 +1475,25 @@ scale + button.flat, spinbutton + button.flat, scale + image + image + button.flat { min-height: 1.333333333333333333em; + margin-top:0.095em; + margin-bottom: 0.095em; } -/*Color chooser & buttons */ +/* Color chooser & buttons */ button.color { - min-height: 1.166666666666666666em; - min-width: 2.75em; - padding: 0.25em; + min-width: 3.25em; + box-shadow: none; + background-image: none; + background-color: transparent; } -button.color colorswatch, + +button.color colorswatch { + min-height: 0; + min-width: 0; + margin: 1px; + border-radius: 0.2em; +} + colorchooser colorswatch { border: 1px solid @bg-button-border; } @@ -1447,6 +1501,13 @@ colorchooser colorswatch#add-color-button:first-child { border-radius: 5.5px 0 0 5.5px; } +/* Font chooser button */ +button.font label{ + min-height: 0; + min-width: 0; + margin: 0 0.19em; +} + /* Save, Cancel, OK ... buttons */ dialog .dialog-action-area button { min-height: 2.166666666666666666em; @@ -1471,16 +1532,15 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #IopsPanel button, #ProfilePanel button, #MainNotebook > header > grid > button, -#MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child/* Graduated filter big button */, -#MyExpander button.independent.image-button,/* Picker button */ -#MyExpander .drawingarea + grid > button.flat,/* Curve buttons */ +#MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child, /* Graduated filter big button */ +.curve-mainbox .curve-buttonbox button.flat, #BatchQueueButtonsMainContainer + grid + box button, -#RightNotebook > stack > scrolledwindow:last-child button.image-button,/* Fast Export */ +#RightNotebook > stack > scrolledwindow:last-child button.image-button, /* Fast Export */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { min-height: 2.5em; min-width: 2.5em; - margin: 0 0.166666666666666666em; + margin: 0 0.19em; } #ToolBarPanelFileBrowser > button:first-child, #EditorTopPanel > button:first-child, @@ -1497,25 +1557,12 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #BatchQueueButtonsMainContainer + grid + box button { margin-right: 0; } -#MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child/* Graduated filter button */, -#MyExpander button.independent.image-button,/* Picker button */ -#MyExpander .drawingarea + grid > button.flat,/* Curve buttons */ +#MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child, /* Graduated filter button */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { - margin: 0.166666666666666666em; + margin: 0.19em; } -#MyExpander button.independent.image-button + label + combobox button { - margin-top: 0.5em; - margin-bottom: 0.5em; -} - -#ProfilePanel combobox { - margin-right: -2px; -} -#ProfilePanel > grid { - margin-bottom: calc(0.416666666666666666em -2px); -} #EditorTopPanel button.narrowbutton { min-width: 0.833333333333333333em; padding: 0 0.166666666666666666em; @@ -1524,7 +1571,7 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { /* Image close button */ #MainNotebook > header tab #CloseButton { padding: 0; - margin: 0.333333333333333333em 0 0.416666666666666666em 0.166666666666666666em; + margin: 0.333333333333333333em 0 0.416666666666666666em 0.19em; min-width: 1.5em; min-height: 0; } @@ -1543,7 +1590,7 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { margin: 0.083333333333333333em 0 -0.166666666666666666em; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { - margin: -0.166666666666666666em; + margin: -0.19em; min-width: 1.333333333333333333em; min-height: 1.333333333333333333em; } @@ -1595,11 +1642,11 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { /* Search & Query buttons */ #FileBrowserQueryToolbar entry + button.flat, #FileBrowserIconToolbar entry + button.flat { - min-height: 1.666666666666666666em; - min-width: 1.666666666666666666em; + min-height: 1.666666666666666666em;/*x*/ + min-width: 1.666666666666666666em;/*x*/ margin: 0; border-radius: 0 0.2em 0.2em 0; - box-shadow: inset 0 0.083333333333333333em rgba(0, 0, 0, 0.08), 0 0.083333333333333333em rgba(242, 242, 242, 0.1); + box-shadow: inset 0 0.1em rgba(0, 0, 0, 0.1), inset -0.1em -0.1em rgba(230, 230, 230, 0.09); border: 0.083333333333333333em solid @bg-entry-border; background-color: @bg-scale-entry; padding: 0; @@ -1609,14 +1656,10 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { border-left: none; padding-left: 0.083333333333333333em; } -#FileBrowserQueryToolbar entry, -#FileBrowserIconToolbar entry { - min-height: 1.666666666666666666em; - min-width: 0; - margin: 0; - padding: 0 0.333333333333333333em; - border-right: none; - border-radius: 0.2em 0 0 0.2em; +#FileBrowserIconToolbar box > entry + button.flat { + margin-top: 0.416666666666666666em; + margin-bottom: 0.416666666666666666em; + min-height: 0; } /* Small Lock Button */ @@ -1648,7 +1691,7 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { border: 0.083333333333333333em solid @bg-dark-grey; border-radius: 0; box-shadow: none; - min-height: 1.833333333333333333em; + min-height: 1.666666666666666666em;/*x*/ } #Snapshots button:hover, @@ -1669,7 +1712,7 @@ background-color: shade(@bg-list-hover, 1.15); box-shadow: none; min-height: 2em; min-width: 1.333333333333333333em; - padding: 0 0.166666666666666666em; + padding: 0 0.19em; margin: 0; } #pathbarbox button { @@ -1681,12 +1724,9 @@ window treeview > header image { min-width: 1.333333333333333333em; } -.view button.text-button label { - margin: 0; -} window .view button { border: none; - border-bottom: 0.083333333333333333em solid @border-color; + border-bottom: 0.083333333333333333em solid @view-grid-border; } dialog .view button { border: 0.083333333333333333em solid @border-color; @@ -1765,15 +1805,11 @@ popover button.text-button:active { /*** end ***************************************************************************************/ /*** Checkbox & Radio **************************************************************************/ -checkbutton { - padding: 0; - margin: 0.083333333333333333em 0.166666666666666666em; - min-height: 1.666666666666666666em; -} +checkbutton, radiobutton { padding: 0.083333333333333333em 0; - margin: 0.166666666666666666em; - min-height: 1.666666666666666666em; + margin: 0.19em; + min-height: 1.666666666666666666em;/*x*/ } check, @@ -1803,7 +1839,7 @@ radio:disabled { radiobutton label, checkbutton label { - margin: 0 0.416666666666666666em; + margin: 0 0.583333333333333333em 0 0.416666666666666666em; padding: 0; } @@ -1812,46 +1848,54 @@ frame > checkbutton check{ } #PartialPaste checkbutton { - min-height: 1.166666666666666666em; - margin-top: calc(0.416666666666666666em - 4px); - margin-bottom: calc(0.416666666666666666em - 4px) + padding: 0; + margin: 0.19em 0 0 0.583333333333333333em; } #PartialPaste checkbutton:not(#PartialPasteHeader) { - margin-left: 1.166666666666666666em; -} -#PartialPasteHeader { - margin-left: 0.5em; - padding-top: calc(0.666666666666666666em - 5px) + margin: 0 0 0 1.166666666666666666em; } /*** end ***************************************************************************************/ /*** Entry & Spinbutton ************************************************************************/ #MyExpander entry, -entry { - margin: 0.166666666666666666em; +entry, +spinbutton { + margin: 0.19em; padding: 0 0.333333333333333333em; - min-height: 1.666666666666666666em; + min-height: 1.666666666666666666em;/*x*/ min-width: 0; border-radius: 0.2em; - box-shadow: inset 0.083333333333333333em 0.083333333333333333em rgba(0, 0, 0, 0.08), 0 0.083333333333333333em rgba(242, 242, 242, 0.1); + box-shadow: inset 0.1em 0.1em rgba(0, 0, 0, 0.1), inset -0.1em -0.1em rgba(230, 230, 230, 0.09); border: 0.083333333333333333em solid @bg-entry-border; background-color: @bg-scale-entry; } - -spinbutton { - margin: 0.166666666666666666em; - padding: 0; - min-height: 1.666666666666666666em; +#FileBrowserQueryToolbar entry, +#FileBrowserIconToolbar entry { + min-height: 1.666666666666666666em;/*x*/ min-width: 0; - border-radius: 0.2em; - background-color: @bg-scale-entry; - border: 0.083333333333333333em solid @bg-entry-border; - box-shadow: inset 0.083333333333333333em 0.083333333333333333em rgba(0, 0, 0, 0.08), 0 0.083333333333333333em rgba(242, 242, 242, 0.1); + margin: 0; + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + box-shadow: inset 0.1em 0.1em rgba(0, 0, 0, 0.1), inset 0 -0.1em rgba(230, 230, 230, 0.09); +} + +#FileBrowserIconToolbar box > entry { + margin-top: 0.416666666666666666em; + margin-bottom: 0.416666666666666666em; + margin-left: 0.19em; + min-height: 0; +} +#FileBrowserQueryToolbar box + box > label + entry { + margin-left: 0.19em; +} +spinbutton { + padding: 0; } #MyExpander spinbutton { - margin: 0.16666666666666666666em; + margin: 0.19em; padding: 0; min-height: 1.333333333333333333em; min-width: 0; @@ -1860,21 +1904,25 @@ spinbutton { background-color: @bg-tb-spinbutton; border: 0.083333333333333333em solid @bg-button-border; color: @text-tbEntry; - box-shadow: inset 0.083333333333333333em 0.083333333333333333em rgba(0, 0, 0, .12), 0 0.083333333333333333em rgba(255, 255, 255, 0.12); + box-shadow: inset 0.1em 0.1em rgba(0, 0, 0, .1), inset -0.1em -0.1em rgba(250, 250, 250, .08); } /* Needed for Reset & and Auto button height*/ -#MyExpander checkbutton + label + spinbutton, #MyExpander button + label + spinbutton { margin-top: 0.333333333333333333em; margin-bottom: 0.333333333333333333em; } +#MyExpander checkbutton + label + spinbutton { + margin-top: 0.416666666666666666em; + margin-bottom: 0.416666666666666666em; +} +/**/ #MyExpander spinbutton button, spinbutton button { padding: 0; margin: 0; min-height: 1.333333333333333333em; - min-width: 1.5em; + min-width: 1.666666666666666666em; background-image: none; background-color: transparent; border: none; @@ -1950,6 +1998,49 @@ entry:focus > selection { /*** end ***************************************************************************************/ +/* Curves **************************************************************************************/ +.curve-mainbox { + margin: 0.19em; + border: 0.083333333333333333em solid @border-color; +} +.curve-mainbox .curve-curvebox { + margin: 0; + padding: 0.416666666666666666em; + background-color: @bg-dark-grey; +} +.curve-mainbox .curve-spinbuttonbox { + margin: 0; + padding: 0.25em; + border-top: 0.083333333333333333em solid @border-color; + background-color: @bg-dark-grey; +} +.curve-mainbox .curve-sliderbox { + margin: 0; + padding: 0.25em; + background-color: @bg-grey; + border-top: 0.083333333333333333em solid @border-color; +} +.curve-mainbox .curve-buttonbox { + padding: 0.25em; + background-color: @bg-dark-grey; +} +.curve-mainbox.left .curve-buttonbox { + border-right: 0.083333333333333333em solid @border-color; +} +.curve-mainbox.right .curve-buttonbox { + border-left: 0.083333333333333333em solid @border-color; +} +.curve-mainbox.top .curve-buttonbox { + border-bottom: 0.083333333333333333em solid @border-color; +} +.curve-mainbox.bottom .curve-buttonbox { + border-top: 0.083333333333333333em solid @border-color; +} +.curve-mainbox .curve-buttonbox button.flat { + margin: 0.095em; +} +/*** end ***************************************************************************************/ + /*** Window Layout *****************************************************************************/ :not(.popup):not(tooltip) > decoration { background-color: @winHeaderbar; diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 8ced521d3..1a3b80036 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -1748,7 +1748,7 @@ BENCHFUN } - for (int i = 0; i < denoiseNestedLevels * numthreads; ++i) { + for (size_t i = 0; i < blox_array_size; ++i) { if (LbloxArray[i]) { fftwf_free(LbloxArray[i]); } diff --git a/rtengine/boxblur.h b/rtengine/boxblur.h index 71452ceae..d686ad43e 100644 --- a/rtengine/boxblur.h +++ b/rtengine/boxblur.h @@ -19,6 +19,7 @@ #ifndef _BOXBLUR_H_ #define _BOXBLUR_H_ +#include #include #include #include diff --git a/rtengine/camconst.json b/rtengine/camconst.json index eb4174577..2113c5532 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1589,6 +1589,13 @@ Camera constants: "pdaf_pattern" : [0, 12], "pdaf_offset" : 29 }, + + { // Quality C, only colour matrix and PDAF lines info + "make_model" : "Nikon Z 6", + "dcraw_matrix" : [8210, -2534, -683, -5355, 13338, 2212, -1143, 1929, 6464], // Adobe DNG Converter 11.1 Beta ColorMatrix2 + "pdaf_pattern" : [0, 12], + "pdaf_offset" : 32 + }, { // Quality B, 16Mp and 64Mp raw frames "make_model": "OLYMPUS E-M5MarkII", diff --git a/rtengine/ciecam02.cc b/rtengine/ciecam02.cc index c5e172478..86b67e000 100644 --- a/rtengine/ciecam02.cc +++ b/rtengine/ciecam02.cc @@ -191,26 +191,26 @@ float Ciecam02::calculate_fl_from_la_ciecam02float ( float la ) return (0.2f * k * la5) + (0.1f * (1.0f - k) * (1.0f - k) * std::cbrt (la5)); } -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 ) { 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 ); +// gamu = 1; + xyz_to_cat02float ( r, g, b, x, y, z); 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); - 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); - } +// 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); +// } rpa = nonlinear_adaptationfloat ( rp, fl ); gpa = nonlinear_adaptationfloat ( gp, fl ); @@ -219,22 +219,22 @@ float Ciecam02::achromatic_response_to_whitefloat ( float x, float y, float z, f return ((2.0f * rpa) + gpa + ((1.0f / 20.0f) * bpa) - 0.305f) * nbb; } -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) { - gamu = 1; - - if (gamu == 0) { - r = ( 0.7328f * x) + (0.4296f * y) - (0.1624f * z); - g = (-0.7036f * x) + (1.6975f * y) + (0.0061f * z); - b = ( 0.0030f * x) + (0.0136f * y) + (0.9834f * z); - } else if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk - //r = ( 0.7328 * x) + (0.4296 * y) - (0.1624 * z); - //g = (-0.7036 * x) + (1.6975 * y) + (0.0061 * z); - //b = ( 0.0000 * x) + (0.0000 * y) + (1.0000 * z); - r = ( 1.007245f * x) + (0.011136f * y) - (0.018381f * z); //Changjun Li - g = (-0.318061f * x) + (1.314589f * y) + (0.003471f * z); - b = ( 0.0000f * x) + (0.0000f * y) + (1.0000f * z); - } +// gamu = 1; +// +// if (gamu == 0) { +// r = ( 0.7328f * x) + (0.4296f * y) - (0.1624f * z); +// g = (-0.7036f * x) + (1.6975f * y) + (0.0061f * z); +// b = ( 0.0030f * x) + (0.0136f * y) + (0.9834f * z); +// } else if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk + //r = ( 0.7328 * x) + (0.4296 * y) - (0.1624 * z); + //g = (-0.7036 * x) + (1.6975 * y) + (0.0061 * z); + //b = ( 0.0000 * x) + (0.0000 * y) + (1.0000 * z); + r = ( 1.007245f * x) + (0.011136f * y) - (0.018381f * z); //Changjun Li + g = (-0.318061f * x) + (1.314589f * y) + (0.003471f * z); + b = ( 0.0000f * x) + (0.0000f * y) + (1.0000f * z); +// } } #ifdef __SSE2__ void Ciecam02::xyz_to_cat02float ( vfloat &r, vfloat &g, vfloat &b, vfloat x, vfloat y, vfloat z ) @@ -246,22 +246,22 @@ void Ciecam02::xyz_to_cat02float ( vfloat &r, vfloat &g, vfloat &b, vfloat x, vf } #endif -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) { - gamu = 1; - - if (gamu == 0) { - x = ( 1.096124f * r) - (0.278869f * g) + (0.182745f * b); - y = ( 0.454369f * r) + (0.473533f * g) + (0.072098f * b); - z = (-0.009628f * r) - (0.005698f * g) + (1.015326f * b); - } else if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk - //x = ( 1.0978566 * r) - (0.277843 * g) + (0.179987 * b); - //y = ( 0.455053 * r) + (0.473938 * g) + (0.0710096* b); - //z = ( 0.000000 * r) - (0.000000 * g) + (1.000000 * b); - x = ( 0.99015849f * r) - (0.00838772f * g) + (0.018229217f * b); //Changjun Li - y = ( 0.239565979f * r) + (0.758664642f * g) + (0.001770137f * b); - z = ( 0.000000f * r) - (0.000000f * g) + (1.000000f * b); - } +// gamu = 1; +// +// if (gamu == 0) { +// x = ( 1.096124f * r) - (0.278869f * g) + (0.182745f * b); +// y = ( 0.454369f * r) + (0.473533f * g) + (0.072098f * b); +// z = (-0.009628f * r) - (0.005698f * g) + (1.015326f * b); +// } else if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk + //x = ( 1.0978566 * r) - (0.277843 * g) + (0.179987 * b); + //y = ( 0.455053 * r) + (0.473938 * g) + (0.0710096* b); + //z = ( 0.000000 * r) - (0.000000 * g) + (1.000000 * b); + x = ( 0.99015849f * r) - (0.00838772f * g) + (0.018229217f * b); //Changjun Li + y = ( 0.239565979f * r) + (0.758664642f * g) + (0.001770137f * b); + z = ( 0.000000f * r) - (0.000000f * g) + (1.000000f * b); +// } } #ifdef __SSE2__ void Ciecam02::cat02_to_xyzfloat ( vfloat &x, vfloat &y, vfloat &z, vfloat r, vfloat g, vfloat b ) @@ -288,19 +288,19 @@ void Ciecam02::hpe_to_xyzfloat ( vfloat &x, vfloat &y, vfloat &z, vfloat r, vflo } #endif -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) { - gamu = 1; - - if (gamu == 0) { - rh = ( 0.7409792f * r) + (0.2180250f * g) + (0.0410058f * b); - gh = ( 0.2853532f * r) + (0.6242014f * g) + (0.0904454f * b); - bh = (-0.0096280f * r) - (0.0056980f * g) + (1.0153260f * b); - } else if (gamu == 1) { //Changjun Li - rh = ( 0.550930835f * r) + (0.519435987f * g) - ( 0.070356303f * b); - gh = ( 0.055954056f * r) + (0.89973132f * g) + (0.044315524f * b); - bh = (0.0f * r) - (0.0f * g) + (1.0f * b); - } +// gamu = 1; +// +// if (gamu == 0) { +// rh = ( 0.7409792f * r) + (0.2180250f * g) + (0.0410058f * b); +// gh = ( 0.2853532f * r) + (0.6242014f * g) + (0.0904454f * b); +// bh = (-0.0096280f * r) - (0.0056980f * g) + (1.0153260f * b); +// } else if (gamu == 1) { //Changjun Li + rh = ( 0.550930835f * r) + (0.519435987f * g) - ( 0.070356303f * b); + gh = ( 0.055954056f * r) + (0.89973132f * g) + (0.044315524f * b); + bh = (0.0f * r) - (0.0f * g) + (1.0f * b); +// } } #ifdef __SSE2__ @@ -407,7 +407,7 @@ void Ciecam02::calculate_abfloat ( vfloat &aa, vfloat &bb, vfloat h, vfloat e, v #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, +void Ciecam02::initcam1float (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; @@ -421,7 +421,7 @@ void Ciecam02::initcam1float (float gamu, float yb, float pilotd, float f, float 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 ); + aw = achromatic_response_to_whitefloat ( xw, yw, zw, d, fl, nbb); wh = ( 4.0f / c ) * ( aw + 4.0f ) * pow_F ( fl, 0.25f ); pfl = pow_F ( fl, 0.25f ); #ifdef _DEBUG @@ -433,7 +433,7 @@ void Ciecam02::initcam1float (float gamu, float yb, float pilotd, float f, float #endif } -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, +void Ciecam02::initcam2float (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; @@ -448,7 +448,7 @@ void Ciecam02::initcam2float (float gamu, float yb, float pilotd, float f, float 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 ); + aw = achromatic_response_to_whitefloat ( xw, yw, zw, d, fl, nbb); #ifdef _DEBUG if (settings->verbose) { @@ -460,7 +460,7 @@ void Ciecam02::initcam2float (float gamu, float yb, float pilotd, float f, float 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) + float c, float nc, float pow1, float nbb, float ncb, float pfl, float cz, float d) { float r, g, b; @@ -471,20 +471,20 @@ void Ciecam02::xyz2jchqms_ciecam02float ( float &J, float &C, float &h, float &Q float a, ca, cb; 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 ); +// gamu = 1; + xyz_to_cat02float ( r, g, b, x, y, z); + xyz_to_cat02float ( rw, gw, bw, xw, yw, zw); 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); - 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); - } +// 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); +// } rpa = nonlinear_adaptationfloat ( rp, fl ); gpa = nonlinear_adaptationfloat ( gp, fl ); @@ -501,9 +501,9 @@ 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 - } +// if (gamu == 1) { + a = MAXR (a, 0.0f); //gamut correction M.H.Brill S.Susstrunk +// } J = pow_F ( a / aw, c * cz * 0.5f); @@ -590,20 +590,20 @@ void Ciecam02::xyz2jch_ciecam02float ( float &J, float &C, float &h, float aw, f float a, ca, cb; 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 ); +// int gamu = 1; + xyz_to_cat02float ( r, g, b, x, y, z); + xyz_to_cat02float ( rw, gw, bw, xw, yw, zw); 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); - 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); - } +// 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); +// } #ifdef __SSE2__ vfloat pv = _mm_setr_ps(rp, gp, bp, 1.f); @@ -629,9 +629,9 @@ void Ciecam02::xyz2jch_ciecam02float ( float &J, float &C, float &h, float aw, f 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 - } +// if (gamu == 1) { + a = MAXR (a, 0.0f); //gamut correction M.H.Brill S.Susstrunk +// } J = pow_F ( a / aw, c * cz * 0.5f); @@ -646,7 +646,7 @@ void Ciecam02::xyz2jch_ciecam02float ( float &J, float &C, float &h, float aw, f void Ciecam02::jch2xyz_ciecam02float ( float &x, float &y, float &z, float J, float C, float h, float xw, float yw, float zw, - float c, float nc, int gamu, float pow1, float nbb, float ncb, float fl, float cz, float d, float aw) + float c, float nc, float pow1, float nbb, float ncb, float fl, float cz, float d, float aw) { float r, g, b; float rc, gc, bc; @@ -655,8 +655,8 @@ void Ciecam02::jch2xyz_ciecam02float ( float &x, float &y, float &z, float J, fl float rw, gw, bw; float a, ca, cb; float e, t; - gamu = 1; - xyz_to_cat02float(rw, gw, bw, xw, yw, zw, gamu); +// gamu = 1; + xyz_to_cat02float(rw, gw, bw, xw, yw, zw); e = ((961.53846f) * nc * ncb) * (xcosf(h * rtengine::RT_PI_F_180 + 2.0f) + 3.8f); #ifdef __SSE2__ @@ -686,13 +686,13 @@ void Ciecam02::jch2xyz_ciecam02float ( float &x, float &y, float &z, float J, fl bp = inverse_nonlinear_adaptationfloat(bpa, fl); #endif hpe_to_xyzfloat(x, y, z, rp, gp, bp); - xyz_to_cat02float(rc, gc, bc, x, y, z, gamu); + xyz_to_cat02float(rc, gc, bc, x, y, z); 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); } #ifdef __SSE2__ diff --git a/rtengine/ciecam02.h b/rtengine/ciecam02.h index d55b1a405..68763b965 100644 --- a/rtengine/ciecam02.h +++ b/rtengine/ciecam02.h @@ -30,9 +30,9 @@ class Ciecam02 private: static float d_factorfloat ( float f, float la ); static float calculate_fl_from_la_ciecam02float ( float la ); - static float achromatic_response_to_whitefloat ( float x, float y, float z, float d, float fl, float nbb, int gamu ); - static void xyz_to_cat02float ( float &r, float &g, float &b, float x, float y, float z, int gamu ); - static void cat02_to_hpefloat ( float &rh, float &gh, float &bh, float r, float g, float b, int gamu ); + static float achromatic_response_to_whitefloat ( float x, float y, float z, float d, float fl, float nbb); + static void xyz_to_cat02float ( float &r, float &g, float &b, float x, float y, float z); + static void cat02_to_hpefloat ( float &rh, float &gh, float &bh, float r, float g, float b); #ifdef __SSE2__ static void xyz_to_cat02float ( vfloat &r, vfloat &g, vfloat &b, vfloat x, vfloat y, vfloat z ); @@ -46,7 +46,7 @@ private: 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 ); + static void cat02_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b); #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 ); @@ -66,7 +66,7 @@ public: static void jch2xyz_ciecam02float ( float &x, float &y, float &z, float J, float C, float h, float xw, float yw, float zw, - float c, float nc, int gamu, float n, float nbb, float ncb, float fl, float cz, float d, float aw ); + float c, float nc, 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, @@ -76,10 +76,10 @@ public: /** * Forward transform from XYZ to CIECAM02 JCh. */ - 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, + static void initcam1float (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 pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, + static void initcam2float (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 xyz2jch_ciecam02float ( float &J, float &C, float &h, @@ -92,7 +92,7 @@ public: 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 ); + float c, float nc, float n, float nbb, float ncb, float pfl, float cz, float d ); #ifdef __SSE2__ static void xyz2jchqms_ciecam02float ( vfloat &J, vfloat &C, vfloat &h, diff --git a/rtengine/cplx_wavelet_dec.cc b/rtengine/cplx_wavelet_dec.cc index eafadaa54..a43a7b8b6 100644 --- a/rtengine/cplx_wavelet_dec.cc +++ b/rtengine/cplx_wavelet_dec.cc @@ -39,5 +39,5 @@ wavelet_decomposition::~wavelet_decomposition() } } -}; +} diff --git a/rtengine/cplx_wavelet_dec.h b/rtengine/cplx_wavelet_dec.h index 45e829322..ccecef819 100644 --- a/rtengine/cplx_wavelet_dec.h +++ b/rtengine/cplx_wavelet_dec.h @@ -266,6 +266,6 @@ void wavelet_decomposition::reconstruct(E * dst, const float blend) coeff0 = nullptr; } -}; +} #endif diff --git a/rtengine/cplx_wavelet_filter_coeffs.h b/rtengine/cplx_wavelet_filter_coeffs.h index ff22c9812..bd333d4b9 100644 --- a/rtengine/cplx_wavelet_filter_coeffs.h +++ b/rtengine/cplx_wavelet_filter_coeffs.h @@ -50,5 +50,5 @@ const float Daub4_anal16[2][16] ALIGNED16 = {//Daub 14 }; // if necessary ?? we can add D20 !! -}; +} diff --git a/rtengine/cplx_wavelet_level.h b/rtengine/cplx_wavelet_level.h index 9996ec2af..cab0d8e3e 100644 --- a/rtengine/cplx_wavelet_level.h +++ b/rtengine/cplx_wavelet_level.h @@ -758,6 +758,6 @@ template template void wavelet_level::reconstruct_lev } } #endif -}; +} #endif diff --git a/rtengine/curves.cc b/rtengine/curves.cc index 9e3c6527e..ecd38d4aa 100644 --- a/rtengine/curves.cc +++ b/rtengine/curves.cc @@ -1025,7 +1025,7 @@ void ColorAppearance::Set(const Curve &pCurve) } // -RetinextransmissionCurve::RetinextransmissionCurve() {}; +RetinextransmissionCurve::RetinextransmissionCurve() {} void RetinextransmissionCurve::Reset() { @@ -1058,7 +1058,7 @@ void RetinextransmissionCurve::Set(const std::vector &curvePoints) } -RetinexgaintransmissionCurve::RetinexgaintransmissionCurve() {}; +RetinexgaintransmissionCurve::RetinexgaintransmissionCurve() {} void RetinexgaintransmissionCurve::Reset() { @@ -1168,7 +1168,7 @@ void OpacityCurve::Set(const std::vector &curvePoints, bool &opautili) } -WavCurve::WavCurve() : sum(0.f) {}; +WavCurve::WavCurve() : sum(0.f) {} void WavCurve::Reset() { @@ -1211,7 +1211,7 @@ void WavCurve::Set(const std::vector &curvePoints) } -WavOpacityCurveRG::WavOpacityCurveRG() {}; +WavOpacityCurveRG::WavOpacityCurveRG() {} void WavOpacityCurveRG::Reset() { @@ -1244,7 +1244,7 @@ void WavOpacityCurveRG::Set(const std::vector &curvePoints) } -WavOpacityCurveBY::WavOpacityCurveBY() {}; +WavOpacityCurveBY::WavOpacityCurveBY() {} void WavOpacityCurveBY::Reset() { @@ -1276,7 +1276,7 @@ void WavOpacityCurveBY::Set(const std::vector &curvePoints) } } -WavOpacityCurveW::WavOpacityCurveW() {}; +WavOpacityCurveW::WavOpacityCurveW() {} void WavOpacityCurveW::Reset() { @@ -1308,7 +1308,7 @@ void WavOpacityCurveW::Set(const std::vector &curvePoints) } } -WavOpacityCurveWL::WavOpacityCurveWL() {}; +WavOpacityCurveWL::WavOpacityCurveWL() {} void WavOpacityCurveWL::Reset() { @@ -1341,7 +1341,7 @@ void WavOpacityCurveWL::Set(const std::vector &curvePoints) } -NoiseCurve::NoiseCurve() : sum(0.f) {}; +NoiseCurve::NoiseCurve() : sum(0.f) {} void NoiseCurve::Reset() { @@ -2040,7 +2040,7 @@ void PerceptualToneCurve::BatchApply(const size_t start, const size_t end, float Ciecam02::jch2xyz_ciecam02float( x, y, z, J, C, h, xw, yw, zw, - c, nc, 1, pow1, nbb, ncb, fl, cz, d, aw ); + c, nc, pow1, nbb, ncb, fl, cz, d, aw ); if (!isfinite(x) || !isfinite(y) || !isfinite(z)) { // can happen for colours on the rim of being outside gamut, that worked without chroma scaling but not with. Then we return only the curve's result. @@ -2123,7 +2123,7 @@ void PerceptualToneCurve::BatchApply(const size_t start, const size_t end, float } float PerceptualToneCurve::cf_range[2]; float PerceptualToneCurve::cf[1000]; -float PerceptualToneCurve::f, PerceptualToneCurve::c, PerceptualToneCurve::nc, PerceptualToneCurve::yb, PerceptualToneCurve::la, PerceptualToneCurve::xw, PerceptualToneCurve::yw, PerceptualToneCurve::zw, PerceptualToneCurve::gamut; +float PerceptualToneCurve::f, PerceptualToneCurve::c, PerceptualToneCurve::nc, PerceptualToneCurve::yb, PerceptualToneCurve::la, PerceptualToneCurve::xw, PerceptualToneCurve::yw, PerceptualToneCurve::zw; float PerceptualToneCurve::n, PerceptualToneCurve::d, PerceptualToneCurve::nbb, PerceptualToneCurve::ncb, PerceptualToneCurve::cz, PerceptualToneCurve::aw, PerceptualToneCurve::wh, PerceptualToneCurve::pfl, PerceptualToneCurve::fl, PerceptualToneCurve::pow1; void PerceptualToneCurve::init() @@ -2139,7 +2139,7 @@ void PerceptualToneCurve::init() c = 0.69f; nc = 1.00f; - Ciecam02::initcam1float(gamut, yb, 1.f, f, la, xw, yw, zw, n, d, nbb, ncb, + Ciecam02::initcam1float(yb, 1.f, f, la, xw, yw, zw, n, d, nbb, ncb, cz, aw, wh, pfl, fl, c); pow1 = pow_F( 1.64f - pow_F( 0.29f, n ), 0.73f ); diff --git a/rtengine/curves.h b/rtengine/curves.h index f1b402dd3..fe93bcde5 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -455,11 +455,11 @@ protected: public: DiagonalCurve (const std::vector& points, int ppn = CURVES_MIN_POLY_POINTS); - virtual ~DiagonalCurve (); + ~DiagonalCurve () override; - double getVal (double t) const; - void getVal (const std::vector& t, std::vector& res) const; - bool isIdentity () const + double getVal (double t) const override; + void getVal (const std::vector& t, std::vector& res) const override; + bool isIdentity () const override { return kind == DCT_Empty; }; @@ -480,12 +480,12 @@ private: public: FlatCurve (const std::vector& points, bool isPeriodic = true, int ppn = CURVES_MIN_POLY_POINTS); - virtual ~FlatCurve (); + ~FlatCurve () override; - double getVal (double t) const; - void getVal (const std::vector& t, std::vector& res) const; + double getVal (double t) const override; + void getVal (const std::vector& t, std::vector& res) const override; bool setIdentityValue (double iVal); - bool isIdentity () const + bool isIdentity () const override { return kind == FCT_Empty; }; @@ -920,7 +920,7 @@ private: static float cf_range[2]; static float cf[1000]; // for ciecam02 - static float f, c, nc, yb, la, xw, yw, zw, gamut; + static float f, c, nc, yb, la, xw, yw, zw; static float n, d, nbb, ncb, cz, aw, wh, pfl, fl, pow1; static void cubic_spline(const float x[], const float y[], const int len, const float out_x[], float out_y[], const int out_len); diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 79c0e59f6..7d4ec4376 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -34,6 +34,10 @@ //#define BENCHMARK #include "StopWatch.h" +#include +#include + + /* dcraw.c -- Dave Coffin's raw photo decoder Copyright 1997-2018 by Dave Coffin, dcoffin a cybercom o net @@ -1147,11 +1151,11 @@ void CLASS lossless_dnglj92_load_raw() } else { dataOffset[0] = ifp->pos; } - uint8_t *data = (uint8_t*)malloc(ifp->size); + const int data_length = ifp->size; + const std::unique_ptr data(new uint8_t[data_length]); fseek(ifp, 0, SEEK_SET); // read whole file - int data_length = ifp->size; - fread(data, 1, data_length, ifp); + fread(data.get(), 1, data_length, ifp); lj92 lj; int newwidth, newheight, newbps; lj92_open(&lj, &data[dataOffset[0]], data_length, &newwidth, &newheight, &newbps); @@ -1159,7 +1163,6 @@ void CLASS lossless_dnglj92_load_raw() if (newwidth * newheight * tileCount != raw_width * raw_height) { // not a lj92 file fseek(ifp, save, SEEK_SET); - free(data); lossless_dng_load_raw(); return; } @@ -1173,17 +1176,15 @@ void CLASS lossless_dnglj92_load_raw() int newwidth, newheight, newbps; lj92_open(&lj, &data[dataOffset[t]], data_length, &newwidth, &newheight, &newbps); - uint16_t *target = (uint16_t*)malloc(newwidth * newheight * sizeof *target); - lj92_decode(lj, target, tile_width, 0, lincurve, 0x1000); + const std::unique_ptr target(new uint16_t[newwidth * newheight]); + lj92_decode(lj, target.get(), tile_width, 0, lincurve, 0x1000); for (int y = 0; y < height; ++y) { for(int x = 0; x < tile_width; ++x) { RAW(y, x + tcol) = target[y * tile_width + x]; } } lj92_close(lj); - free(target); } - free(data); } void CLASS lossless_dng_load_raw() @@ -1232,23 +1233,46 @@ void CLASS lossless_dng_load_raw() } } +static uint32_t DNG_HalfToFloat(uint16_t halfValue); + void CLASS packed_dng_load_raw() { ushort *pixel, *rp; int row, col; + int isfloat = (tiff_nifds == 1 && tiff_ifd[0].sample_format == 3 && (tiff_bps == 16 || tiff_bps == 32)); + if (isfloat) { + float_raw_image = new float[raw_width * raw_height]; + } pixel = (ushort *) calloc (raw_width, tiff_samples*sizeof *pixel); merror (pixel, "packed_dng_load_raw()"); for (row=0; row < raw_height; row++) { - if (tiff_bps == 16) + if (tiff_bps == 16) { read_shorts (pixel, raw_width * tiff_samples); - else { + if (isfloat) { + uint32_t *dst = reinterpret_cast(&float_raw_image[row*raw_width]); + for (col = 0; col < raw_width; col++) { + uint32_t f = DNG_HalfToFloat(pixel[col]); + dst[col] = f; + } + } + } else if (isfloat) { + if (fread(&float_raw_image[row*raw_width], sizeof(float), raw_width, ifp) != raw_width) { + derror(); + } + if ((order == 0x4949) == (ntohs(0x1234) == 0x1234)) { + char *d = reinterpret_cast(float_raw_image); + rtengine::swab(d, d, sizeof(float)*raw_width); + } + } else { getbits(-1); for (col=0; col < raw_width * tiff_samples; col++) pixel[col] = getbits(tiff_bps); } - for (rp=pixel, col=0; col < raw_width; col++) - adobe_copy_pixel (row, col, &rp); + if (!isfloat) { + for (rp=pixel, col=0; col < raw_width; col++) + adobe_copy_pixel (row, col, &rp); + } } free (pixel); } @@ -1306,10 +1330,10 @@ void CLASS nikon_load_raw() if (ver0 == 0x46) tree = 2; if (tiff_bps == 14) tree += 3; read_shorts (vpred[0], 4); - max = 1 << tiff_bps & 0x7fff; + max = 1 << (tiff_bps - (ver0 == 0x44 && ver1 == 0x40 ? 2 : 0)) & 0x7fff; if ((csize = get2()) > 1) step = max / (csize-1); - if (ver0 == 0x44 && ver1 == 0x20 && step > 0) { + if (ver0 == 0x44 && (ver1 == 0x20 || ver1 == 0x40) && step > 0) { for (int i=0; i < csize; i++) curve[i*step] = get2(); for (int i=0; i < max; i++) @@ -2565,6 +2589,7 @@ void CLASS packed_load_raw() bwide = raw_width * tiff_bps / 8; bwide += bwide & load_flags >> 9; + bwide += row_padding; rbits = bwide * 8 - raw_width * tiff_bps; if (load_flags & 1) bwide = bwide * 16 / 15; bite = 8 + (load_flags & 56); @@ -6043,7 +6068,7 @@ int CLASS parse_tiff_ifd (int base) char software[64], *cbuf, *cp; uchar cfa_pat[16], cfa_pc[] = { 0,1,2,3 }, tab[256]; double cc[2][4][4]; - double cm[2][4][3] = {NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN}; + double cm[2][4][3] = {{{NAN,NAN,NAN},{NAN,NAN,NAN},{NAN,NAN,NAN},{NAN,NAN,NAN}},{{NAN,NAN,NAN},{NAN,NAN,NAN},{NAN,NAN,NAN},{NAN,NAN,NAN}}}; double cam_xyz[4][3], num; double ab[]={ 1,1,1,1 }, asn[] = { 0,0,0,0 }, xyz[] = { 1,1,1 }; unsigned sony_curve[] = { 0,0,0,0,0,4095 }; @@ -6175,6 +6200,7 @@ int CLASS parse_tiff_ifd (int base) break; case 305: case 11: /* Software */ fgets (software, 64, ifp); + RT_software = software; if (!strncmp(software,"Adobe",5) || !strncmp(software,"dcraw",5) || !strncmp(software,"UFRaw",5) || @@ -6443,6 +6469,7 @@ guess_cfa_pc: case 61450: cblack[4] = cblack[5] = MIN(sqrt(len),64); case 50714: /* BlackLevel */ + RT_blacklevel_from_constant = ThreeValBool::F; if(cblack[4] * cblack[5] == 0) { int dblack[] = { 0,0,0,0 }; black = getreal(type); @@ -6463,9 +6490,11 @@ guess_cfa_pc: for (num=i=0; i < (len & 0xffff); i++) num += getreal(type); black += num/len + 0.5; + RT_blacklevel_from_constant = ThreeValBool::F; break; case 50717: /* WhiteLevel */ maximum = getint(type); + RT_whitelevel_from_constant = ThreeValBool::F; break; case 50718: /* DefaultScale */ pixel_aspect = getreal(type); @@ -6494,6 +6523,14 @@ guess_cfa_pc: xyz[2] = 1 - xyz[0] - xyz[1]; FORC3 xyz[c] /= d65_white[c]; break; + case 50730: /* BaselineExposure */ + if (dng_version) { + double be = getreal(type); + if (!std::isnan(be)) { + RT_baseline_exposure = be; + } + } + break; case 50740: /* DNGPrivateData */ if (dng_version) break; parse_minolta (j = get4()+base); @@ -6603,8 +6640,6 @@ guess_cfa_pc: if (!use_cm) FORCC pre_mul[c] /= cc[cm_D65][c][c]; - RT_from_adobe_dng_converter = !strncmp(software, "Adobe DNG Converter", 19); - return 0; } @@ -6762,8 +6797,13 @@ void CLASS apply_tiff() load_raw = &CLASS packed_load_raw; } else if ((raw_width * 2 * tiff_bps / 16 + 8) * raw_height == tiff_ifd[raw].bytes) { // 14 bit uncompressed from Nikon Z7, still wrong - // each line has 8 padding byte. To inform 'packed_load_raw' about his padding, we have to set load_flags = padding << 9 - load_flags = 8 << 9; + // each line has 8 padding byte. + row_padding = 8; + load_raw = &CLASS packed_load_raw; + } else if ((raw_width * 2 * tiff_bps / 16 + 12) * raw_height == tiff_ifd[raw].bytes) { + // 14 bit uncompressed from Nikon Z6, still wrong + // each line has 12 padding byte. + row_padding = 12; load_raw = &CLASS packed_load_raw; } else load_raw = &CLASS nikon_load_raw; break; @@ -8662,11 +8702,31 @@ void CLASS adobe_coeff (const char *make, const char *model) int i, j; sprintf (name, "%s %s", make, model); + + + // -- RT -------------------------------------------------------------------- + const bool is_pentax_dng = dng_version && !strncmp(RT_software.c_str(), "PENTAX", 6); + // indicate that DCRAW wants these from constants (rather than having loaded these from RAW file + // note: this is simplified so far, in some cases dcraw calls this when it has say the black level + // from file, but then we will not provide any black level in the tables. This case is mainly just + // to avoid loading table values if we have loaded a DNG conversion of a raw file (which already + // have constants stored in the file). + if (RT_whitelevel_from_constant == ThreeValBool::X || is_pentax_dng) { + RT_whitelevel_from_constant = ThreeValBool::T; + } + if (RT_blacklevel_from_constant == ThreeValBool::X || is_pentax_dng) { + RT_blacklevel_from_constant = ThreeValBool::T; + } + if (RT_matrix_from_constant == ThreeValBool::X) { + RT_matrix_from_constant = ThreeValBool::T; + } + // -- RT -------------------------------------------------------------------- + for (i=0; i < sizeof table / sizeof *table; i++) if (!strncmp (name, table[i].prefix, strlen(table[i].prefix))) { - if (table[i].black) black = (ushort) table[i].black; - if (table[i].maximum) maximum = (ushort) table[i].maximum; - if (table[i].trans[0]) { + if (RT_blacklevel_from_constant == ThreeValBool::T && table[i].black) black = (ushort) table[i].black; + if (RT_whitelevel_from_constant == ThreeValBool::T && table[i].maximum) maximum = (ushort) table[i].maximum; + if (RT_matrix_from_constant == ThreeValBool::T && table[i].trans[0]) { for (raw_color = j=0; j < 12; j++) ((double *)cam_xyz)[j] = table[i].trans[j] / 10000.0; cam_xyz_coeff (rgb_cam, cam_xyz); @@ -10104,14 +10164,16 @@ bw: colors = 1; dng_skip: if ((use_camera_matrix & (use_camera_wb || dng_version)) && cmatrix[0][0] > 0.125 - && !RT_from_adobe_dng_converter /* RT -- do not use the embedded - * matrices for DNGs coming from the - * Adobe DNG Converter, to ensure - * consistency of WB values between - * DNG-converted and original raw - * files. See #4129 */) { + && strncmp(RT_software.c_str(), "Adobe DNG Converter", 19) != 0 + /* RT -- do not use the embedded + * matrices for DNGs coming from the + * Adobe DNG Converter, to ensure + * consistency of WB values between + * DNG-converted and original raw + * files. See #4129 */) { memcpy (rgb_cam, cmatrix, sizeof cmatrix); - raw_color = 0; +// raw_color = 0; + RT_matrix_from_constant = ThreeValBool::F; } if(!strncmp(make, "Panasonic", 9) && !strncmp(model, "DMC-LX100",9)) adobe_coeff (make, model); @@ -10145,7 +10207,14 @@ dng_skip: if (raw_width < width ) raw_width = width; } if (!tiff_bps) tiff_bps = 12; - if (!maximum) maximum = ((uint64_t)1 << tiff_bps) - 1; // use uint64_t to avoid overflow if tiff_bps == 32 + if (!maximum) { + if (tiff_nifds == 1 && tiff_ifd[0].sample_format == 3) { + // float DNG, default white level is 1.0 + maximum = 1; + } else { + maximum = ((uint64_t)1 << tiff_bps) - 1; // use uint64_t to avoid overflow if tiff_bps == 32 + } + } if (!load_raw || height < 22 || width < 22 || tiff_samples > 6 || colors > 4) is_raw = 0; @@ -10228,8 +10297,8 @@ notraw: /* RT: DNG Float */ -#include -#include +// #include +// #include static void decodeFPDeltaRow(Bytef * src, Bytef * dst, size_t tileWidth, size_t realTileWidth, int bytesps, int factor) { // DecodeDeltaBytes @@ -10261,9 +10330,10 @@ static void decodeFPDeltaRow(Bytef * src, Bytef * dst, size_t tileWidth, size_t } -#ifndef __F16C__ +#if 1 //ndef __F16C__ // From DNG SDK dng_utils.h -static inline uint32_t DNG_HalfToFloat(uint16_t halfValue) { +static //inline +uint32_t DNG_HalfToFloat(uint16_t halfValue) { int32_t sign = (halfValue >> 15) & 0x00000001; int32_t exponent = (halfValue >> 10) & 0x0000001f; int32_t mantissa = halfValue & 0x000003ff; diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h index f9591b640..923d6190f 100644 --- a/rtengine/dcraw.h +++ b/rtengine/dcraw.h @@ -47,7 +47,9 @@ public: ,order(0x4949) ,ifname(nullptr) ,meta_data(nullptr) - ,shot_select(0),multi_out(0) + ,shot_select(0) + ,multi_out(0) + ,row_padding(0) ,float_raw_image(nullptr) ,image(nullptr) ,bright(1.) @@ -55,10 +57,10 @@ public: ,verbose(0) ,use_auto_wb(0),use_camera_wb(0),use_camera_matrix(1) ,output_color(1),output_bps(8),output_tiff(0),med_passes(0),no_auto_bright(0) - ,RT_whitelevel_from_constant(0) - ,RT_blacklevel_from_constant(0) - ,RT_matrix_from_constant(0) - ,RT_from_adobe_dng_converter(false) + ,RT_whitelevel_from_constant(ThreeValBool::X) + ,RT_blacklevel_from_constant(ThreeValBool::X) + ,RT_matrix_from_constant(ThreeValBool::X) + ,RT_baseline_exposure(0) ,getbithuff(this,ifp,zero_after_ff) ,nikbithuff(ifp) { @@ -88,7 +90,7 @@ protected: unsigned tiff_nifds, tiff_samples, tiff_bps, tiff_compress; unsigned black, cblack[4102], maximum, mix_green, raw_color, zero_is_bad; unsigned zero_after_ff, is_raw, dng_version, is_foveon, data_error; - unsigned tile_width, tile_length, gpsdata[32], load_flags; + unsigned tile_width, tile_length, gpsdata[32], load_flags, row_padding; bool xtransCompressed = false; struct fuji_compressed_params { @@ -150,10 +152,12 @@ protected: int output_color, output_bps, output_tiff, med_passes; int no_auto_bright; unsigned greybox[4] ; - int RT_whitelevel_from_constant; - int RT_blacklevel_from_constant; - int RT_matrix_from_constant; - bool RT_from_adobe_dng_converter; + enum class ThreeValBool { X = -1, F, T }; + ThreeValBool RT_whitelevel_from_constant; + ThreeValBool RT_blacklevel_from_constant; + ThreeValBool RT_matrix_from_constant; + std::string RT_software; + double RT_baseline_exposure; float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4]; @@ -257,7 +261,7 @@ getbithuff_t getbithuff; class nikbithuff_t { public: - nikbithuff_t(IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){} + explicit nikbithuff_t(IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){} void operator()() {bitbuf = vbits = 0;}; unsigned operator()(int nbits, ushort *huff); unsigned errorCount() { return errors; } @@ -424,6 +428,7 @@ void kodak_thumb_load_raw(); // sony_decrypt(unsigned *data, int len, int start, int key); class sony_decrypt_t{ public: + explicit sony_decrypt_t() : p(0) {} void operator()(unsigned *data, int len, int start, int key); private: unsigned pad[128], p; diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 6aa1bd2fe..778f29fe8 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -808,59 +808,34 @@ void Crop::update(int todo) } - if (todo & (M_AUTOEXP | M_RGBCURVE)) { + if (todo & M_RGBCURVE) { + Imagefloat *workingCrop = baseCrop; + if (params.icm.workingTRC == "Custom") { //exec TRC IN free - Glib::ustring profile; - profile = params.icm.workingProfile; + const Glib::ustring profile = params.icm.workingProfile; if (profile == "sRGB" || profile == "Adobe RGB" || profile == "ProPhoto" || profile == "WideGamut" || profile == "BruceRGB" || profile == "Beta RGB" || profile == "BestRGB" || profile == "Rec2020" || profile == "ACESp0" || profile == "ACESp1") { - + const int cw = baseCrop->getWidth(); + const int ch = baseCrop->getHeight(); + workingCrop = new Imagefloat(cw, ch); //first put gamma TRC to 1 - int cw = baseCrop->getWidth(); - int ch = baseCrop->getHeight(); - Imagefloat* readyImg0 = NULL; - - readyImg0 = parent->ipf.workingtrc(baseCrop, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310); - #pragma omp parallel for - - for (int row = 0; row < ch; row++) { - for (int col = 0; col < cw; col++) { - baseCrop->r(row, col) = (float)readyImg0->r(row, col); - baseCrop->g(row, col) = (float)readyImg0->g(row, col); - baseCrop->b(row, col) = (float)readyImg0->b(row, col); - } - } - - delete readyImg0; - + parent->ipf.workingtrc(baseCrop, workingCrop, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, parent->getCustomTransformIn(), true, false, true); //adjust gamma TRC - Imagefloat* readyImg = NULL; - readyImg = parent->ipf.workingtrc(baseCrop, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope); - #pragma omp parallel for - - for (int row = 0; row < ch; row++) { - for (int col = 0; col < cw; col++) { - baseCrop->r(row, col) = (float)readyImg->r(row, col); - baseCrop->g(row, col) = (float)readyImg->g(row, col); - baseCrop->b(row, col) = (float)readyImg->b(row, col); - } - } - - delete readyImg; + parent->ipf.workingtrc(workingCrop, workingCrop, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, parent->getCustomTransformOut(), false, true, true); } } - } - - if (todo & M_RGBCURVE) { double rrm, ggm, bbm; DCPProfile::ApplyState as; DCPProfile *dcpProf = parent->imgsrc->getDCP(params.icm, as); LUTu histToneCurve; - parent->ipf.rgbProc (baseCrop, laboCrop, this, parent->hltonecurve, parent->shtonecurve, parent->tonecurve, + parent->ipf.rgbProc (workingCrop, laboCrop, this, parent->hltonecurve, parent->shtonecurve, parent->tonecurve, 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); + if (workingCrop != baseCrop) { + delete workingCrop; + } } /*xref=000;yref=000; @@ -1100,10 +1075,6 @@ void Crop::update(int todo) void Crop::freeAll() { - if (settings->verbose) { - printf("freeallcrop starts %d\n", (int)cropAllocated); - } - if (cropAllocated) { if (origCrop) { delete origCrop; @@ -1163,10 +1134,6 @@ bool check_need_larger_crop_for_lcp_distortion(int fw, int fh, int x, int y, int bool Crop::setCropSizes(int rcx, int rcy, int rcw, int rch, int skip, bool internal) { - if (settings->verbose) { - printf("setcropsizes before lock\n"); - } - if (!internal) { cropMutex.lock(); } @@ -1258,10 +1225,6 @@ bool Crop::setCropSizes(int rcx, int rcy, int rcw, int rch, int skip, bool inter int cw = skips(bw, skip); int ch = skips(bh, skip); - if (settings->verbose) { - printf("setsizes starts (%d, %d, %d, %d, %d, %d)\n", orW, orH, trafw, trafh, cw, ch); - } - EditType editType = ET_PIPETTE; if (const auto editProvider = PipetteBuffer::getDataProvider()) { @@ -1326,10 +1289,6 @@ bool Crop::setCropSizes(int rcx, int rcy, int rcw, int rch, int skip, bool inter cropx = bx1; cropy = by1; - if (settings->verbose) { - printf("setsizes ends\n"); - } - if (!internal) { cropMutex.unlock(); } diff --git a/rtengine/dcrop.h b/rtengine/dcrop.h index efd4a399a..04274ca0c 100644 --- a/rtengine/dcrop.h +++ b/rtengine/dcrop.h @@ -71,12 +71,12 @@ protected: public: Crop (ImProcCoordinator* parent, EditDataProvider *editDataProvider, bool isDetailWindow); - virtual ~Crop (); + ~Crop () override; void setEditSubscriber(EditSubscriber* newSubscriber); bool hasListener(); void update (int todo); - void setWindow (int cropX, int cropY, int cropW, int cropH, int skip) + void setWindow (int cropX, int cropY, int cropW, int cropH, int skip) override { setCropSizes (cropX, cropY, cropW, cropH, skip, false); } @@ -84,12 +84,12 @@ public: /** @brief Synchronously look out if a full update is necessary * First try, only make fullUpdate if this returns false */ - bool tryUpdate (); + bool tryUpdate () override; /** @brief Asynchronously reprocess the detailed crop */ - void fullUpdate (); // called via thread + void fullUpdate () override; // called via thread - void setListener (DetailedCropListener* il); - void destroy (); + void setListener (DetailedCropListener* il) override; + void destroy () override; int get_skip(); int getLeftBorder(); int getUpperBorder(); diff --git a/rtengine/dirpyr_equalizer.cc b/rtengine/dirpyr_equalizer.cc index cbee70763..5e33fd3b3 100644 --- a/rtengine/dirpyr_equalizer.cc +++ b/rtengine/dirpyr_equalizer.cc @@ -44,10 +44,6 @@ void ImProcFunctions :: dirpyr_equalizer(float ** src, float ** dst, int srcwidt { int lastlevel = maxlevel; - if(settings->verbose) { - printf("Dirpyr scaleprev=%i\n", scaleprev); - } - float atten123 = (float) settings->level123_cbdl; if(atten123 > 50.f) { @@ -105,10 +101,6 @@ void ImProcFunctions :: dirpyr_equalizer(float ** src, float ** dst, int srcwidt } - if(settings->verbose) { - printf("CbDL mult0=%f 1=%f 2=%f 3=%f 4=%f 5=%f\n", multi[0], multi[1], multi[2], multi[3], multi[4], multi[5]); - } - multi_array2D dirpyrlo (srcwidth, srcheight); level = 0; diff --git a/rtengine/eahd_demosaic.cc b/rtengine/eahd_demosaic.cc index aef016386..816f4bf55 100644 --- a/rtengine/eahd_demosaic.cc +++ b/rtengine/eahd_demosaic.cc @@ -163,7 +163,7 @@ inline void RawImageSource::interpolate_row_rb (float* ar, float* ab, float* pg, n++; } - nonGreen2[j] = cg[j] + nonGreen / n; + nonGreen2[j] = cg[j] + nonGreen / std::max(n, 1); // linear R-G interp. horizontally float val1; @@ -206,7 +206,7 @@ inline void RawImageSource::interpolate_row_rb (float* ar, float* ab, float* pg, n++; } - nonGreen2[j] = cg[j] + nonGreen / n; + nonGreen2[j] = cg[j] + nonGreen / std::max(n, 1); } } diff --git a/rtengine/gamutwarning.cc b/rtengine/gamutwarning.cc index 84b4b3c08..c76e2a285 100644 --- a/rtengine/gamutwarning.cc +++ b/rtengine/gamutwarning.cc @@ -34,7 +34,7 @@ GamutWarning::GamutWarning(cmsHPROFILE iprof, cmsHPROFILE gamutprof, RenderingIn softproof2ref(nullptr) { if (cmsIsMatrixShaper(gamutprof) && !cmsIsCLUT(gamutprof, intent, LCMS_USED_AS_OUTPUT)) { - cmsHPROFILE aces = ICCStore::getInstance()->getProfile("RTv4_ACES-AP0"); + cmsHPROFILE aces = ICCStore::getInstance()->workingSpace("ACESp0"); if (aces) { lab2ref = cmsCreateTransform(iprof, TYPE_Lab_FLT, aces, TYPE_RGB_FLT, INTENT_ABSOLUTE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); lab2softproof = cmsCreateTransform(iprof, TYPE_Lab_FLT, gamutprof, TYPE_RGB_FLT, INTENT_ABSOLUTE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); @@ -81,6 +81,10 @@ void GamutWarning::markLine(Image8 *image, int y, float *srcbuf, float *buf1, fl float delta_max = lab2ref ? 0.0001f : 4.9999f; cmsDoTransform(lab2softproof, srcbuf, buf2, width); + // since we are checking for out-of-gamut, we do want to clamp here! + for (int i = 0; i < width * 3; ++i) { + buf2[i] = LIM01(buf2[i]); + } cmsDoTransform(softproof2ref, buf2, buf1, width); float *proofdata = buf1; diff --git a/rtengine/histmatching.cc b/rtengine/histmatching.cc index 2bc0e940e..da95946e7 100644 --- a/rtengine/histmatching.cc +++ b/rtengine/histmatching.cc @@ -114,7 +114,7 @@ public: spline_cubic_set(); } - double getVal(double t) const + double getVal(double t) const override { // values under and over the first and last point if (t > x[N - 1]) { diff --git a/rtengine/iccstore.cc b/rtengine/iccstore.cc index 4d490c0a0..33972075c 100644 --- a/rtengine/iccstore.cc +++ b/rtengine/iccstore.cc @@ -38,6 +38,8 @@ #include "../rtgui/threadutils.h" #include "lcms2_plugin.h" +#include "color.h" + #include "cJSON.h" #define inkc_constant 0x696E6B43 namespace rtengine @@ -208,8 +210,85 @@ const char* wpnames[] = {"sRGB", "Adobe RGB", "ProPhoto", "WideGamut", "BruceRGB // high g=1.3 s=3.35 for high dynamic images //low g=2.6 s=6.9 for low contrast images +//----------------------------------------------------------------------------- +// helper functions to fix V2 profiles TRCs, used in +// rtengine::ProfileContent::toProfile() +// see https://github.com/Beep6581/RawTherapee/issues/5026 +// ----------------------------------------------------------------------------- +bool is_RTv2_profile(cmsHPROFILE profile) +{ + if (int(cmsGetProfileVersion(profile)) != 2) { + return false; + } + const cmsMLU *mlu = static_cast(cmsReadTag(profile, cmsSigDeviceMfgDescTag)); + if (!mlu) { + return false; + } + cmsUInt32Number sz = cmsMLUgetASCII(mlu, "en", "US", nullptr, 0); + if (!sz) { + return false; + } + std::vector buf(sz); + cmsMLUgetASCII(mlu, "en", "US", &buf[0], sz); + buf.back() = 0; // sanity + return strcmp(&buf[0], "RawTherapee") == 0; } + +bool get_RT_gamma_slope(cmsHPROFILE profile, double &gammatag, double &slopetag) +{ + const cmsMLU *modelDescMLU = static_cast(cmsReadTag(profile, cmsSigDeviceModelDescTag)); + if (modelDescMLU) { + cmsUInt32Number count = cmsMLUgetWide(modelDescMLU, "en", "US", nullptr, 0); + if (count) { + std::vector vbuf(count); + wchar_t *buffer = &vbuf[0]; + count = cmsMLUgetWide(modelDescMLU, "en", "US", buffer, count); + Glib::ustring modelDesc; +#if __SIZEOF_WCHAR_T__ == 2 + char *cModelDesc = g_utf16_to_utf8((unsigned short int*)buffer, -1, nullptr, nullptr, nullptr); // convert to utf-8 in a buffer allocated by glib + if (cModelDesc) { + modelDesc.assign(cModelDesc); + g_free(cModelDesc); + } +#else + modelDesc = utf32_to_utf8(buffer, count); +#endif + if (!modelDesc.empty()) { + std::size_t pos = modelDesc.find("g"); + std::size_t posmid = modelDesc.find("s"); + std::size_t posend = modelDesc.find("!"); + std::string strgamma = modelDesc.substr(pos + 1, (posmid - pos)); + gammatag = std::stod(strgamma.c_str()); + std::string strslope = modelDesc.substr(posmid + 1, (posend - posmid)); + slopetag = std::stod(strslope.c_str()); + return true; + } + } + } + return false; +} + + +Glib::ustring get_profile_description(cmsHPROFILE profile) +{ + const cmsMLU *mlu = static_cast(cmsReadTag(profile, cmsSigProfileDescriptionTag)); + if (!mlu) { + return ""; + } + cmsUInt32Number sz = cmsMLUgetASCII(mlu, "en", "US", nullptr, 0); + if (!sz) { + return ""; + } + std::vector buf(sz); + cmsMLUgetASCII(mlu, "en", "US", &buf[0], sz); + buf.back() = 0; // sanity + return std::string(&buf[0]); +} + +} // namespace + + rtengine::ProfileContent::ProfileContent() = default; rtengine::ProfileContent::ProfileContent(const Glib::ustring& fileName) @@ -255,11 +334,52 @@ rtengine::ProfileContent::ProfileContent(cmsHPROFILE hProfile) cmsHPROFILE rtengine::ProfileContent::toProfile() const { + cmsHPROFILE profile = nullptr; + if (!data.empty()) { + profile = cmsOpenProfileFromMem(data.c_str(), data.size()); + // if this is a V2 profile generated by RawTherapee, we rebuild the + // TRC. See https://github.com/Beep6581/RawTherapee/issues/5026 and + // the references in there + if (profile && is_RTv2_profile(profile)) { + double gammatag, slopetag; + if (get_RT_gamma_slope(profile, gammatag, slopetag)) { + constexpr double eps = 0.000000001; // not divide by zero + double pwr = 1.0 / gammatag; + double ts = slopetag; + double slope = slopetag == 0 ? eps : slopetag; - return - !data.empty() - ? cmsOpenProfileFromMem(data.c_str(), data.size()) - : nullptr; + GammaValues g_b; //gamma parameters + Color::calcGamma(pwr, ts, 0, g_b); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 + cmsFloat64Number gammaParams[7]; //gamma parameters + gammaParams[4] = g_b[3] * ts; + gammaParams[0] = gammatag; + gammaParams[1] = 1. / (1.0 + g_b[4]); + gammaParams[2] = g_b[4] / (1.0 + g_b[4]); + gammaParams[3] = 1. / slope; + gammaParams[5] = 0.0; + gammaParams[6] = 0.0; + + cmsToneCurve* GammaTRC; + if (slopetag == 0.) { + //printf("gammatag=%f\n", gammatag); + GammaTRC = cmsBuildGamma(NULL, gammatag); + } else { + GammaTRC = cmsBuildParametricToneCurve(nullptr, 5, gammaParams); //5 = smoother than 4 + } + cmsWriteTag(profile, cmsSigRedTRCTag, GammaTRC); + cmsWriteTag(profile, cmsSigGreenTRCTag, GammaTRC); + cmsWriteTag(profile, cmsSigBlueTRCTag, GammaTRC); + cmsFreeToneCurve(GammaTRC); + + if (settings->verbose) { + std::cout << "ICCStore: rebuilt TRC for RTv2 profile " << get_profile_description(profile) << ": gamma=" << gammatag << ", slope=" << slopetag << std::endl; + } + } else if (settings->verbose) { + std::cout << "ICCStore: no gamma/slope info found for RTv2 profile " << get_profile_description(profile) << std::endl; + } + } + } + return profile; } const std::string& rtengine::ProfileContent::getData() const @@ -623,7 +743,7 @@ private: struct PMatrix { double matrix[3][3]; PMatrix(): matrix{} {} - PMatrix(const CMatrix &m) + explicit PMatrix(const CMatrix &m) { set(m); } @@ -1058,8 +1178,8 @@ cmsHPROFILE rtengine::ICCStore::makeStdGammaProfile(cmsHPROFILE iprof) uint32_t size; } tags[tag_count]; - const uint32_t gamma = 0x239; - int gamma_size = 14; + constexpr uint32_t gamma = 0x239; + constexpr int gamma_size = 14; int data_size = (gamma_size + 3) & ~3; for (uint32_t i = 0; i < tag_count; i++) { @@ -1096,13 +1216,13 @@ cmsHPROFILE rtengine::ICCStore::makeStdGammaProfile(cmsHPROFILE iprof) tags[i].sig == 0x6B545243) { // kTRC if (gamma_offset == 0) { gamma_offset = offset; - uint32_t pcurve[] = { htonl(0x63757276), htonl(0), htonl(gamma_size == 12 ? 0U : 1U) }; + uint32_t pcurve[] = { htonl(0x63757276), htonl(0), htonl(/*gamma_size == 12 ? 0U : */1U) }; memcpy(&nd[offset], pcurve, 12); - if (gamma_size == 14) { - uint16_t gm = htons(gamma); - memcpy(&nd[offset + 12], &gm, 2); - } + //if (gamma_size == 14) { + uint16_t gm = htons(gamma); + memcpy(&nd[offset + 12], &gm, 2); + //} offset += (gamma_size + 3) & ~3; } diff --git a/rtengine/iimage.h b/rtengine/iimage.h index af2969581..3549d4dae 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -82,22 +82,18 @@ public: // Read the raw dump of the data void readData (FILE *fh) {} // Write a raw dump of the data - void writeData (FILE *fh) {} + void writeData (FILE *fh) const {} virtual void normalizeInt (int srcMinVal, int srcMaxVal) {}; virtual void normalizeFloat (float srcMinVal, float srcMaxVal) {}; - virtual void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, int compression) {} + virtual void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, int compression) const {} virtual void getSpotWBData (double &reds, double &greens, double &blues, int &rn, int &gn, int &bn, std::vector &red, std::vector &green, std::vector &blue, - int tran) {} - virtual void getAutoWBMultipliers (double &rm, double &gm, double &bm) + int tran) const {} + virtual void getAutoWBMultipliers (double &rm, double &gm, double &bm) const { rm = gm = bm = 1.0; } - virtual const char* getType () const - { - return "unknown"; - } }; @@ -232,7 +228,7 @@ public: } // Send back the row stride. WARNING: unit = byte, not element! - int getRowStride () + int getRowStride () const { return rowstride; } @@ -261,7 +257,7 @@ public: /* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed * Can be safely used to reallocate an existing image */ - void allocate (int W, int H) + void allocate (int W, int H) override { if (W == width && H == height) { @@ -316,7 +312,7 @@ public: } /** Copy the data to another PlanarWhateverData */ - void copyData(PlanarWhateverData *dest) + void copyData(PlanarWhateverData *dest) const { assert (dest != NULL); // Make sure that the size is the same, reallocate if necessary @@ -331,7 +327,7 @@ public: } } - void rotate (int deg) + void rotate (int deg) override { if (deg == 90) { @@ -389,7 +385,7 @@ public: } template - void resizeImgTo (int nw, int nh, TypeInterpolation interp, PlanarWhateverData *imgPtr) + void resizeImgTo (int nw, int nh, TypeInterpolation interp, PlanarWhateverData *imgPtr) const { //printf("resizeImgTo: resizing %s image data (%d x %d) to %s (%d x %d)\n", getType(), width, height, imgPtr->getType(), imgPtr->width, imgPtr->height); if (width == nw && height == nh) { @@ -450,7 +446,7 @@ public: } } - void hflip () + void hflip () override { int width2 = width / 2; @@ -474,7 +470,7 @@ public: #endif } - void vflip () + void vflip () override { int height2 = height / 2; @@ -499,17 +495,7 @@ public: #endif } - void calcHist(unsigned int *hist16) - { - for (int row = 0; row < height; row++) - for (int col = 0; col < width; col++) { - unsigned short idx; - convertTo(v(row, col), idx); - hist16[idx]++; - } - } - - void transformPixel (int x, int y, int tran, int& tx, int& ty) + void transformPixel (int x, int y, int tran, int& tx, int& ty) const { if (!tran) { @@ -552,7 +538,7 @@ public: } } - void getPipetteData (T &value, int posX, int posY, int squareSize, int tran) + void getPipetteData (T &value, int posX, int posY, int squareSize, int tran) const { int x; int y; @@ -573,14 +559,14 @@ public: value = n ? T(accumulator / float(n)) : T(0); } - void readData (FILE *f) + void readData (FILE *f) { for (int i = 0; i < height; i++) { fread (v(i), sizeof(T), width, f); } } - void writeData (FILE *f) + void writeData (FILE *f) const { for (int i = 0; i < height; i++) { fwrite (v(i), sizeof(T), width, f); @@ -622,12 +608,12 @@ public: } // Send back the row stride. WARNING: unit = byte, not element! - int getRowStride () + int getRowStride () const { return rowstride; } // Send back the plane stride. WARNING: unit = byte, not element! - int getPlaneStride () + int getPlaneStride () const { return planestride; } @@ -662,7 +648,7 @@ public: /* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed * Can be safely used to reallocate an existing image */ - void allocate (int W, int H) + void allocate (int W, int H) override { if (W == width && H == height) { @@ -732,7 +718,7 @@ public: } /** Copy the data to another PlanarRGBData */ - void copyData(PlanarRGBData *dest) + void copyData(PlanarRGBData *dest) const { assert (dest != nullptr); // Make sure that the size is the same, reallocate if necessary @@ -750,7 +736,7 @@ public: } } - void rotate (int deg) + void rotate (int deg) override { if (deg == 90) { @@ -820,7 +806,7 @@ public: } template - void resizeImgTo (int nw, int nh, TypeInterpolation interp, IC *imgPtr) + void resizeImgTo (int nw, int nh, TypeInterpolation interp, IC *imgPtr) const { //printf("resizeImgTo: resizing %s image data (%d x %d) to %s (%d x %d)\n", getType(), width, height, imgPtr->getType(), imgPtr->width, imgPtr->height); if (width == nw && height == nh) { @@ -869,15 +855,15 @@ public: // This case should never occur! for (int i = 0; i < nh; i++) { for (int j = 0; j < nw; j++) { - r(i, j) = 0; - g(i, j) = 0; - b(i, j) = 0; + imgPtr->r(i, j) = 0; + imgPtr->g(i, j) = 0; + imgPtr->b(i, j) = 0; } } } } - void hflip () + void hflip () override { int width2 = width / 2; @@ -909,7 +895,7 @@ public: #endif } - void vflip () + void vflip () override { int height2 = height / 2; @@ -942,7 +928,7 @@ public: #endif } - void calcGrayscaleHist(unsigned int *hist16) + void calcGrayscaleHist(unsigned int *hist16) const { for (int row = 0; row < height; row++) for (int col = 0; col < width; col++) { @@ -956,7 +942,7 @@ public: } } - void computeAutoHistogram (LUTu & histogram, int& histcompr) + void computeAutoHistogram (LUTu & histogram, int& histcompr) const { histcompr = 3; @@ -975,7 +961,7 @@ public: } } - void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) + void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override { histogram.clear(); avg_r = avg_g = avg_b = 0.; @@ -1007,7 +993,7 @@ public: } } - void getAutoWBMultipliers (double &rm, double &gm, double &bm) + void getAutoWBMultipliers (double &rm, double &gm, double &bm) const override { double avg_r = 0.; @@ -1038,7 +1024,7 @@ public: bm = avg_b / double(n); } - void transformPixel (int x, int y, int tran, int& tx, int& ty) + void transformPixel (int x, int y, int tran, int& tx, int& ty) const { if (!tran) { @@ -1081,9 +1067,9 @@ public: } } - virtual void getSpotWBData (double &reds, double &greens, double &blues, int &rn, int &gn, int &bn, + void getSpotWBData (double &reds, double &greens, double &blues, int &rn, int &gn, int &bn, std::vector &red, std::vector &green, std::vector &blue, - int tran) + int tran) const override { int x; int y; @@ -1120,7 +1106,7 @@ public: } } - void getPipetteData (T &valueR, T &valueG, T &valueB, int posX, int posY, int squareSize, int tran) + void getPipetteData (T &valueR, T &valueG, T &valueB, int posX, int posY, int squareSize, int tran) const { int x; int y; @@ -1147,22 +1133,28 @@ public: valueB = n ? T(accumulatorB / float(n)) : T(0); } - void readData (FILE *f) + void readData (FILE *f) { for (int i = 0; i < height; i++) { - fread (r(i), sizeof(T), width, f); + if (fread(r(i), sizeof(T), width, f) < static_cast(width)) { + break; + } } for (int i = 0; i < height; i++) { - fread (g(i), sizeof(T), width, f); + if (fread(g(i), sizeof(T), width, f) < static_cast(width)) { + break; + } } for (int i = 0; i < height; i++) { - fread (b(i), sizeof(T), width, f); + if (fread(b(i), sizeof(T), width, f) < static_cast(width)) { + break; + } } } - void writeData (FILE *f) + void writeData (FILE *f) const { for (int i = 0; i < height; i++) { fwrite (r(i), sizeof(T), width, f); @@ -1305,7 +1297,7 @@ public: * If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed * Can be safely used to reallocate an existing image or to free up it's memory with "allocate (0,0);" */ - void allocate (int W, int H) + void allocate (int W, int H) override { if (W == width && H == height) { @@ -1345,7 +1337,7 @@ public: } /** Copy the data to another ChunkyRGBData */ - void copyData(ChunkyRGBData *dest) + void copyData(ChunkyRGBData *dest) const { assert (dest != nullptr); // Make sure that the size is the same, reallocate if necessary @@ -1359,7 +1351,7 @@ public: memcpy (dest->data, data, 3 * width * height * sizeof(T)); } - void rotate (int deg) + void rotate (int deg) override { if (deg == 90) { @@ -1421,7 +1413,7 @@ public: } template - void resizeImgTo (int nw, int nh, TypeInterpolation interp, IC *imgPtr) + void resizeImgTo (int nw, int nh, TypeInterpolation interp, IC *imgPtr) const { //printf("resizeImgTo: resizing %s image data (%d x %d) to %s (%d x %d)\n", getType(), width, height, imgPtr->getType(), imgPtr->width, imgPtr->height); if (width == nw && height == nh) { @@ -1485,15 +1477,15 @@ public: // This case should never occur! for (int i = 0; i < nh; i++) { for (int j = 0; j < nw; j++) { - r(i, j) = 0; - g(i, j) = 0; - b(i, j) = 0; + imgPtr->r(i, j) = 0; + imgPtr->g(i, j) = 0; + imgPtr->b(i, j) = 0; } } } } - void hflip () + void hflip () override { int width2 = width / 2; @@ -1529,7 +1521,7 @@ public: } } - void vflip () + void vflip () override { AlignedBuffer lBuffer(3 * width); @@ -1545,7 +1537,7 @@ public: } } - void calcGrayscaleHist(unsigned int *hist16) + void calcGrayscaleHist(unsigned int *hist16) const { for (int row = 0; row < height; row++) for (int col = 0; col < width; col++) { @@ -1559,7 +1551,7 @@ public: } } - void computeAutoHistogram (LUTu & histogram, int& histcompr) + void computeAutoHistogram (LUTu & histogram, int& histcompr) const { histcompr = 3; @@ -1578,7 +1570,7 @@ public: } } - void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) + void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override { histogram.clear(); avg_r = avg_g = avg_b = 0.; @@ -1610,7 +1602,7 @@ public: } } - void getAutoWBMultipliers (double &rm, double &gm, double &bm) + void getAutoWBMultipliers (double &rm, double &gm, double &bm) const override { double avg_r = 0.; @@ -1641,7 +1633,7 @@ public: bm = avg_b / double(n); } - void transformPixel (int x, int y, int tran, int& tx, int& ty) + void transformPixel (int x, int y, int tran, int& tx, int& ty) const { if (!tran) { @@ -1684,9 +1676,9 @@ public: } } - virtual void getSpotWBData (double &reds, double &greens, double &blues, int &rn, int &gn, int &bn, + void getSpotWBData (double &reds, double &greens, double &blues, int &rn, int &gn, int &bn, std::vector &red, std::vector &green, std::vector &blue, - int tran) + int tran) const override { int x; int y; @@ -1723,14 +1715,16 @@ public: } } - void readData (FILE *f) + void readData (FILE *f) { for (int i = 0; i < height; i++) { - fread (r(i), sizeof(T), 3 * width, f); + if (fread(r(i), sizeof(T), 3 * width, f) < 3 * static_cast(width)) { + break; + } } } - void writeData (FILE *f) + void writeData (FILE *f) const { for (int i = 0; i < height; i++) { fwrite (r(i), sizeof(T), 3 * width, f); @@ -1751,31 +1745,31 @@ public: /** @brief Returns a mutex that can is useful in many situations. No image operations shuold be performed without locking this mutex. * @return The mutex */ virtual MyMutex& getMutex () = 0; - virtual cmsHPROFILE getProfile () = 0; + virtual cmsHPROFILE getProfile () const = 0; /** @brief Returns the bits per pixel of the image. * @return The bits per pixel of the image */ - virtual int getBitsPerPixel () = 0; + virtual int getBitsPerPixel () const = 0; /** @brief Saves the image to file. It autodetects the format (jpg, tif, png are supported). * @param fname is the name of the file @return the error code, 0 if none */ - virtual int saveToFile (Glib::ustring fname) = 0; + virtual int saveToFile (const Glib::ustring &fname) const = 0; /** @brief Saves the image to file in a png format. * @param fname is the name of the file * @param compression is the amount of compression (0-6), -1 corresponds to the default * @param bps can be 8 or 16 depending on the bits per pixels the output file will have @return the error code, 0 if none */ - virtual int saveAsPNG (Glib::ustring fname, int bps = -1) = 0; + virtual int saveAsPNG (const Glib::ustring &fname, int bps = -1) const = 0; /** @brief Saves the image to file in a jpg format. * @param fname is the name of the file * @param quality is the quality of the jpeg (0...100), set it to -1 to use default @return the error code, 0 if none */ - virtual int saveAsJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3 ) = 0; + virtual int saveAsJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3 ) const = 0; /** @brief Saves the image to file in a tif format. * @param fname is the name of the file * @param bps can be 8 or 16 depending on the bits per pixels the output file will have * @param isFloat is true for saving float images. Will be ignored by file format not supporting float data @return the error code, 0 if none */ - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) = 0; + virtual int saveAsTIFF (const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const = 0; /** @brief Sets the progress listener if you want to follow the progress of the image saving operations (optional). * @param pl is the pointer to the class implementing the ProgressListener interface */ virtual void setSaveProgressListener (ProgressListener* pl) = 0; @@ -1788,14 +1782,14 @@ public: class IImagefloat : public IImage, public PlanarRGBData { public: - virtual ~IImagefloat() {} + ~IImagefloat() override {} }; /** @brief This class represents an image having a classical 8 bits/pixel representation */ class IImage8 : public IImage, public ChunkyRGBData { public: - virtual ~IImage8() {} + ~IImage8() override {} }; /** @brief This class represents an image having a 16 bits/pixel planar representation. @@ -1803,7 +1797,7 @@ public: class IImage16 : public IImage, public PlanarRGBData { public: - virtual ~IImage16() {} + ~IImage16() override {} }; } diff --git a/rtengine/image16.cc b/rtengine/image16.cc index c014d1c06..c0e97557a 100644 --- a/rtengine/image16.cc +++ b/rtengine/image16.cc @@ -60,7 +60,7 @@ Image16::~Image16() { } -void Image16::getScanline(int row, unsigned char* buffer, int bps, bool isFloat) +void Image16::getScanline(int row, unsigned char* buffer, int bps, bool isFloat) const { if (data == nullptr) { @@ -124,7 +124,7 @@ void Image16::setScanline(int row, unsigned char* buffer, int bps, unsigned int */ } -Image16* Image16::copy() +Image16* Image16::copy() const { Image16* cp = new Image16(width, height); @@ -132,7 +132,7 @@ Image16* Image16::copy() return cp; } -void Image16::getStdImage(ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp) +void Image16::getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const { // compute channel multipliers @@ -295,8 +295,7 @@ void Image16::getStdImage(ColorTemp ctemp, int tran, Imagefloat* image, PreviewP #undef GCLIP } -Image8* -Image16::to8() +Image8* Image16::to8() const { Image8* img8 = new Image8(width, height); @@ -311,21 +310,6 @@ Image16::to8() return img8; } -Imagefloat* -Image16::tofloat() -{ - Imagefloat* imgfloat = new Imagefloat(width, height); - - for (int h = 0; h < height; ++h) { - for (int w = 0; w < width; ++w) { - imgfloat->r(h, w) = r(h, w); - imgfloat->g(h, w) = g(h, w); - imgfloat->b(h, w) = b(h, w); - } - } - - return imgfloat; -} // Parallelized transformation; create transform with cmsFLAGS_NOCACHE! void Image16::ExecCMSTransform(cmsHTRANSFORM hTransform) { diff --git a/rtengine/image16.h b/rtengine/image16.h index 1c5504bd9..9762af990 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -38,64 +38,72 @@ public: Image16(); Image16(int width, int height); - ~Image16(); + ~Image16() override; - Image16* copy(); + Image16* copy() const; - Image8* to8(); - Imagefloat* tofloat(); + Image8* to8() const; - virtual void getStdImage(ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp); + void getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const override; - virtual const char* getType() const + const char* getType() const override { return sImage16; } - virtual int getBPS() + int getBPS() const override { return 8 * sizeof(unsigned short); } - virtual void getScanline(int row, unsigned char* buffer, int bps, bool isFloat = false); - virtual void setScanline(int row, unsigned char* buffer, int bps, unsigned int numSamples); + + void getScanline(int row, unsigned char* buffer, int bps, bool isFloat = false) const override; + void setScanline(int row, unsigned char* buffer, int bps, unsigned int numSamples) override; // functions inherited from IImage16: - virtual MyMutex& getMutex() + MyMutex& getMutex() override { return mutex(); } - virtual cmsHPROFILE getProfile() + + cmsHPROFILE getProfile() const override { return getEmbeddedProfile(); } - virtual int getBitsPerPixel() + + int getBitsPerPixel() const override { return 8 * sizeof(unsigned short); } - virtual int saveToFile(Glib::ustring fname) + + int saveToFile(const Glib::ustring &fname) const override { return save(fname); } - virtual int saveAsPNG(Glib::ustring fname, int bps = -1) + + int saveAsPNG(const Glib::ustring &fname, int bps = -1) const override { return savePNG(fname, bps); } - virtual int saveAsJPEG(Glib::ustring fname, int quality = 100, int subSamp = 3) + + int saveAsJPEG(const Glib::ustring &fname, int quality = 100, int subSamp = 3) const override { return saveJPEG(fname, quality, subSamp); } - virtual int saveAsTIFF(Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) + + int saveAsTIFF(const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const override { return saveTIFF(fname, bps, isFloat, uncompressed); } - virtual void setSaveProgressListener(ProgressListener* pl) + + void setSaveProgressListener(ProgressListener* pl) override { setProgressListener(pl); } - virtual void free() + + void free() override { delete this; } - void ExecCMSTransform(cmsHTRANSFORM hTransform); + void ExecCMSTransform(cmsHTRANSFORM hTransform); /* void ExecCMSTransform(cmsHTRANSFORM hTransform, const LabImage &labImage, int cx, int cy); */ }; diff --git a/rtengine/image8.cc b/rtengine/image8.cc index ab7393100..edced2fe5 100644 --- a/rtengine/image8.cc +++ b/rtengine/image8.cc @@ -37,7 +37,7 @@ Image8::~Image8 () { } -void Image8::getScanline (int row, unsigned char* buffer, int bps, bool isFloat) +void Image8::getScanline (int row, unsigned char* buffer, int bps, bool isFloat) const { if (data == nullptr) { @@ -89,7 +89,7 @@ void Image8::setScanline (int row, unsigned char* buffer, int bps, unsigned int } } -Image8* Image8::copy () +Image8* Image8::copy () const { Image8* cp = new Image8 (width, height); @@ -97,7 +97,7 @@ Image8* Image8::copy () return cp; } -void Image8::getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp) +void Image8::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const { // compute channel multipliers float rm = 1.f, gm = 1.f, bm = 1.f; diff --git a/rtengine/image8.h b/rtengine/image8.h index 59d13c298..8928cf85b 100644 --- a/rtengine/image8.h +++ b/rtengine/image8.h @@ -36,57 +36,67 @@ public: Image8 (); Image8 (int width, int height); - ~Image8 (); + ~Image8 () override; - Image8* copy (); + Image8* copy () const; - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp); + void getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const override; - virtual const char* getType () const + const char* getType () const override { return sImage8; } - virtual int getBPS () + + int getBPS () const override { return 8 * sizeof(unsigned char); } - virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false); - virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples); + + void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false) const override; + void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples) override; // functions inherited from IImage*: - virtual MyMutex& getMutex () + MyMutex& getMutex () override { return mutex (); } - virtual cmsHPROFILE getProfile () + + cmsHPROFILE getProfile () const override { return getEmbeddedProfile (); } - virtual int getBitsPerPixel () + + int getBitsPerPixel () const override { return 8 * sizeof(unsigned char); } - virtual int saveToFile (Glib::ustring fname) + + int saveToFile (const Glib::ustring &fname) const override { return save (fname); } - virtual int saveAsPNG (Glib::ustring fname, int bps = -1) + + int saveAsPNG (const Glib::ustring &fname, int bps = -1) const override { return savePNG (fname, bps); } - virtual int saveAsJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3) + + int saveAsJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3) const override { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) + + int saveAsTIFF (const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const override { return saveTIFF (fname, bps, isFloat, uncompressed); } - virtual void setSaveProgressListener (ProgressListener* pl) + + void setSaveProgressListener (ProgressListener* pl) override { setProgressListener (pl); } - virtual void free () + + void free () override { delete this; } diff --git a/rtengine/imagedata.h b/rtengine/imagedata.h index 1c3aff7e9..7aa4812d0 100644 --- a/rtengine/imagedata.h +++ b/rtengine/imagedata.h @@ -98,35 +98,35 @@ private: public: FramesData (const Glib::ustring& fname, std::unique_ptr rml = nullptr, bool firstFrameOnly = false); - ~FramesData (); + ~FramesData () override; void setDCRawFrameCount (unsigned int frameCount); - unsigned int getRootCount () const; - unsigned int getFrameCount () const; - bool getPixelShift () const; - bool getHDR (unsigned int frame = 0) const; - std::string getImageType (unsigned int frame) const; - IIOSampleFormat getSampleFormat (unsigned int frame = 0) const; - rtexif::TagDirectory* getFrameExifData (unsigned int frame = 0) const; - rtexif::TagDirectory* getRootExifData (unsigned int root = 0) const; - rtexif::TagDirectory* getBestExifData (ImageSource *imgSource, procparams::RAWParams *rawParams) const; - procparams::IPTCPairs getIPTCData (unsigned int frame = 0) const; - bool hasExif (unsigned int frame = 0) const; - bool hasIPTC (unsigned int frame = 0) const; - tm getDateTime (unsigned int frame = 0) const; - time_t getDateTimeAsTS (unsigned int frame = 0) const; - int getISOSpeed (unsigned int frame = 0) const; - double getFNumber (unsigned int frame = 0) const; - double getFocalLen (unsigned int frame = 0) const; - double getFocalLen35mm (unsigned int frame = 0) const; - float getFocusDist (unsigned int frame = 0) const; - double getShutterSpeed (unsigned int frame = 0) const; - double getExpComp (unsigned int frame = 0) const; - std::string getMake (unsigned int frame = 0) const; - std::string getModel (unsigned int frame = 0) const; - std::string getLens (unsigned int frame = 0) const; + unsigned int getRootCount () const override; + unsigned int getFrameCount () const override; + bool getPixelShift () const override; + bool getHDR (unsigned int frame = 0) const override; + std::string getImageType (unsigned int frame) const override; + IIOSampleFormat getSampleFormat (unsigned int frame = 0) const override; + rtexif::TagDirectory* getFrameExifData (unsigned int frame = 0) const override; + rtexif::TagDirectory* getRootExifData (unsigned int root = 0) const override; + rtexif::TagDirectory* getBestExifData (ImageSource *imgSource, procparams::RAWParams *rawParams) const override; + procparams::IPTCPairs getIPTCData (unsigned int frame = 0) const override; + bool hasExif (unsigned int frame = 0) const override; + bool hasIPTC (unsigned int frame = 0) const override; + tm getDateTime (unsigned int frame = 0) const override; + time_t getDateTimeAsTS (unsigned int frame = 0) const override; + int getISOSpeed (unsigned int frame = 0) const override; + double getFNumber (unsigned int frame = 0) const override; + double getFocalLen (unsigned int frame = 0) const override; + double getFocalLen35mm (unsigned int frame = 0) const override; + float getFocusDist (unsigned int frame = 0) const override; + double getShutterSpeed (unsigned int frame = 0) const override; + double getExpComp (unsigned int frame = 0) const override; + std::string getMake (unsigned int frame = 0) const override; + std::string getModel (unsigned int frame = 0) const override; + std::string getLens (unsigned int frame = 0) const override; std::string getSerialNumber (unsigned int frame = 0) const; - std::string getOrientation (unsigned int frame = 0) const; + std::string getOrientation (unsigned int frame = 0) const override; }; diff --git a/rtengine/imagefloat.cc b/rtengine/imagefloat.cc index 2cf73204d..940806419 100644 --- a/rtengine/imagefloat.cc +++ b/rtengine/imagefloat.cc @@ -110,7 +110,7 @@ void Imagefloat::setScanline (int row, unsigned char* buffer, int bps, unsigned namespace rtengine { extern void filmlike_clip(float *r, float *g, float *b); } -void Imagefloat::getScanline (int row, unsigned char* buffer, int bps, bool isFloat) +void Imagefloat::getScanline (int row, unsigned char* buffer, int bps, bool isFloat) const { if (data == nullptr) { @@ -159,7 +159,7 @@ void Imagefloat::getScanline (int row, unsigned char* buffer, int bps, bool isFl } } -Imagefloat* Imagefloat::copy () +Imagefloat* Imagefloat::copy () const { Imagefloat* cp = new Imagefloat (width, height); @@ -168,7 +168,7 @@ Imagefloat* Imagefloat::copy () } // This is called by the StdImageSource class. We assume that fp images from StdImageSource don't have to deal with gamma -void Imagefloat::getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp) +void Imagefloat::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const { // compute channel multipliers @@ -330,7 +330,7 @@ void Imagefloat::getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, Prev } Image8* -Imagefloat::to8() +Imagefloat::to8() const { Image8* img8 = new Image8(width, height); #ifdef _OPENMP @@ -349,7 +349,7 @@ Imagefloat::to8() } Image16* -Imagefloat::to16() +Imagefloat::to16() const { Image16* img16 = new Image16(width, height); #ifdef _OPENMP @@ -474,52 +474,6 @@ void Imagefloat::calcCroppedHistogram(const ProcParams ¶ms, float scale, LUT } -// Parallelized transformation; create transform with cmsFLAGS_NOCACHE! -void Imagefloat::ExecCMSTransform2(cmsHTRANSFORM hTransform) -{ - - // LittleCMS cannot parallelize planar setups -- Hombre: LCMS2.4 can! But it we use this new feature, memory allocation - // have to be modified too to build temporary buffers that allow multi processor execution -#ifdef _OPENMP - #pragma omp parallel -#endif - { - AlignedBuffer pBuf(width * 3); - -#ifdef _OPENMP - #pragma omp for schedule(static) -#endif - - for (int y = 0; y < height; y++) - { - float *p = pBuf.data, *pR = r(y), *pG = g(y), *pB = b(y); - - for (int x = 0; x < width; x++) { - *(p++) = *(pR++)/ 65535.f; - *(p++) = *(pG++)/ 65535.f; - *(p++) = *(pB++)/ 65535.f; - - } - - cmsDoTransform (hTransform, pBuf.data, pBuf.data, width); - - p = pBuf.data; - pR = r(y); - pG = g(y); - pB = b(y); - - for (int x = 0; x < width; x++) { - *(pR++) = *(p++); - *(pG++) = *(p++); - *(pB++) = *(p++); - } - } // End of parallelization - } -} - - - - // Parallelized transformation; create transform with cmsFLAGS_NOCACHE! void Imagefloat::ExecCMSTransform(cmsHTRANSFORM hTransform) { @@ -533,7 +487,7 @@ void Imagefloat::ExecCMSTransform(cmsHTRANSFORM hTransform) AlignedBuffer pBuf(width * 3); #ifdef _OPENMP - #pragma omp for schedule(static) + #pragma omp for schedule(dynamic, 16) #endif for (int y = 0; y < height; y++) diff --git a/rtengine/imagefloat.h b/rtengine/imagefloat.h index 65c291775..e1e5086b8 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -42,65 +42,67 @@ public: Imagefloat (); Imagefloat (int width, int height); - ~Imagefloat (); + ~Imagefloat () override; - Imagefloat* copy (); + Imagefloat* copy () const; - Image8* to8(); - Image16* to16(); + Image8* to8() const; + Image16* to16() const; - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp); + void getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const override; - virtual const char* getType () const + const char* getType () const override { return sImagefloat; } - virtual int getBPS () + + int getBPS () const override { return 8 * sizeof(float); } - virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false); - virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples); + + void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false) const override; + void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples) override; // functions inherited from IImagefloat: - virtual MyMutex& getMutex () + MyMutex& getMutex () override { return mutex (); } - virtual cmsHPROFILE getProfile () + cmsHPROFILE getProfile () const override { return getEmbeddedProfile (); } - virtual int getBitsPerPixel () + int getBitsPerPixel () const override { return 8 * sizeof(float); } - virtual int saveToFile (Glib::ustring fname) + int saveToFile (const Glib::ustring &fname) const override { return save (fname); } - virtual int saveAsPNG (Glib::ustring fname, int bps = -1) + int saveAsPNG (const Glib::ustring &fname, int bps = -1) const override { return savePNG (fname, bps); } - virtual int saveAsJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3) + int saveAsJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3) const override { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) + int saveAsTIFF (const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const override { return saveTIFF (fname, bps, isFloat, uncompressed); } - virtual void setSaveProgressListener (ProgressListener* pl) + void setSaveProgressListener (ProgressListener* pl) override { setProgressListener (pl); } - virtual void free () + void free () override { delete this; } - inline uint16_t DNG_FloatToHalf(float f) + inline uint16_t DNG_FloatToHalf(float f) const { union { float f; @@ -216,12 +218,10 @@ public: return (uint32_t) ((sign << 31) | (exponent << 23) | mantissa); } - virtual void normalizeFloat(float srcMinVal, float srcMaxVal); + void normalizeFloat(float srcMinVal, float srcMaxVal) override; void normalizeFloatTo1(); void normalizeFloatTo65535(); void calcCroppedHistogram(const ProcParams ¶ms, float scale, LUTu & hist); - void ExecCMSTransform2(cmsHTRANSFORM hTransform); - void ExecCMSTransform(cmsHTRANSFORM hTransform); void ExecCMSTransform(cmsHTRANSFORM hTransform, const LabImage &labImage, int cx, int cy); }; diff --git a/rtengine/imageio.cc b/rtengine/imageio.cc index 9ac72be58..76a6417ff 100644 --- a/rtengine/imageio.cc +++ b/rtengine/imageio.cc @@ -201,7 +201,7 @@ void png_read_data(png_struct_def *png_ptr, unsigned char *data, size_t length) void png_write_data(png_struct_def *png_ptr, unsigned char *data, size_t length); void png_flush(png_struct_def *png_ptr); -int ImageIO::getPNGSampleFormat (Glib::ustring fname, IIOSampleFormat &sFormat, IIOSampleArrangement &sArrangement) +int ImageIO::getPNGSampleFormat (const Glib::ustring &fname, IIOSampleFormat &sFormat, IIOSampleArrangement &sArrangement) { FILE *file = g_fopen (fname.c_str (), "rb"); @@ -273,7 +273,7 @@ int ImageIO::getPNGSampleFormat (Glib::ustring fname, IIOSampleFormat &sFormat, } } -int ImageIO::loadPNG (Glib::ustring fname) +int ImageIO::loadPNG (const Glib::ustring &fname) { FILE *file = g_fopen (fname.c_str (), "rb"); @@ -543,7 +543,7 @@ int ImageIO::loadJPEGFromMemory (const char* buffer, int bufsize) return IMIO_SUCCESS; } -int ImageIO::loadJPEG (Glib::ustring fname) +int ImageIO::loadJPEG (const Glib::ustring &fname) { FILE *file = g_fopen(fname.c_str (), "rb"); @@ -629,7 +629,7 @@ int ImageIO::loadJPEG (Glib::ustring fname) } } -int ImageIO::getTIFFSampleFormat (Glib::ustring fname, IIOSampleFormat &sFormat, IIOSampleArrangement &sArrangement) +int ImageIO::getTIFFSampleFormat (const Glib::ustring &fname, IIOSampleFormat &sFormat, IIOSampleArrangement &sArrangement) { #ifdef WIN32 wchar_t *wfilename = (wchar_t*)g_utf8_to_utf16 (fname.c_str(), -1, NULL, NULL, NULL); @@ -731,7 +731,7 @@ int ImageIO::getTIFFSampleFormat (Glib::ustring fname, IIOSampleFormat &sFormat, return IMIO_VARIANTNOTSUPPORTED; } -int ImageIO::loadTIFF (Glib::ustring fname) +int ImageIO::loadTIFF (const Glib::ustring &fname) { static MyMutex thumbMutex; @@ -972,7 +972,7 @@ void PNGwriteRawProfile(png_struct *ping, png_info *ping_info, const char *profi } // namespace -int ImageIO::savePNG (Glib::ustring fname, volatile int bps) +int ImageIO::savePNG (const Glib::ustring &fname, int bps) const { if (getWidth() < 1 || getHeight() < 1) { return IMIO_HEADERERROR; @@ -1111,7 +1111,7 @@ int ImageIO::savePNG (Glib::ustring fname, volatile int bps) // Quality 0..100, subsampling: 1=low quality, 2=medium, 3=high -int ImageIO::saveJPEG (Glib::ustring fname, int quality, int subSamp) +int ImageIO::saveJPEG (const Glib::ustring &fname, int quality, int subSamp) const { if (getWidth() < 1 || getHeight() < 1) { return IMIO_HEADERERROR; @@ -1301,7 +1301,7 @@ int ImageIO::saveJPEG (Glib::ustring fname, int quality, int subSamp) return IMIO_SUCCESS; } -int ImageIO::saveTIFF (Glib::ustring fname, int bps, float isFloat, bool uncompressed) +int ImageIO::saveTIFF (const Glib::ustring &fname, int bps, bool isFloat, bool uncompressed) const { if (getWidth() < 1 || getHeight() < 1) { return IMIO_HEADERERROR; @@ -1595,7 +1595,7 @@ void png_flush(png_structp png_ptr) } } -int ImageIO::load (Glib::ustring fname) +int ImageIO::load (const Glib::ustring &fname) { if (hasPngExtension(fname)) { @@ -1609,7 +1609,7 @@ int ImageIO::load (Glib::ustring fname) } } -int ImageIO::save (Glib::ustring fname) +int ImageIO::save (const Glib::ustring &fname) const { if (hasPngExtension(fname)) { return savePNG (fname); @@ -1621,3 +1621,57 @@ int ImageIO::save (Glib::ustring fname) return IMIO_FILETYPENOTSUPPORTED; } } + +void ImageIO::setProgressListener (ProgressListener* l) +{ + pl = l; +} + +void ImageIO::setSampleFormat(IIOSampleFormat sFormat) +{ + sampleFormat = sFormat; +} + +IIOSampleFormat ImageIO::getSampleFormat() const +{ + return sampleFormat; +} + +void ImageIO::setSampleArrangement(IIOSampleArrangement sArrangement) +{ + sampleArrangement = sArrangement; +} + +IIOSampleArrangement ImageIO::getSampleArrangement() const +{ + return sampleArrangement; +} + +cmsHPROFILE ImageIO::getEmbeddedProfile () const +{ + return embProfile; +} + +void ImageIO::getEmbeddedProfileData (int& length, unsigned char*& pdata) const +{ + length = loadedProfileLength; + pdata = (unsigned char*)loadedProfileData; +} + +MyMutex& ImageIO::mutex () +{ + return imutex; +} + +void ImageIO::deleteLoadedProfileData( ) +{ + if(loadedProfileData) { + if(loadedProfileDataJpg) { + free(loadedProfileData); + } else { + delete[] loadedProfileData; + } + } + + loadedProfileData = nullptr; +} diff --git a/rtengine/imageio.h b/rtengine/imageio.h index cbf245291..60bf6bc43 100644 --- a/rtengine/imageio.h +++ b/rtengine/imageio.h @@ -28,11 +28,11 @@ #define IMIO_FILETYPENOTSUPPORTED 6 #define IMIO_CANNOTWRITEFILE 7 +#include +#include #include "rtengine.h" #include "imageformat.h" -#include #include "procparams.h" -#include #include "../rtexif/rtexif.h" #include "imagedimensions.h" #include "iimage.h" @@ -63,18 +63,8 @@ protected: IIOSampleArrangement sampleArrangement; private: - void deleteLoadedProfileData( ) - { - if(loadedProfileData) { - if(loadedProfileDataJpg) { - free(loadedProfileData); - } else { - delete[] loadedProfileData; - } - } + void deleteLoadedProfileData( ); - loadedProfileData = nullptr; - } public: static Glib::ustring errorMsg[6]; @@ -82,81 +72,44 @@ public: loadedProfileLength(0), iptc(nullptr), exifRoot (nullptr), sampleFormat(IIOSF_UNKNOWN), sampleArrangement(IIOSA_UNKNOWN) {} - virtual ~ImageIO (); + ~ImageIO () override; - void setProgressListener (ProgressListener* l) - { - pl = l; - } + void setProgressListener (ProgressListener* l); + void setSampleFormat(IIOSampleFormat sFormat); + IIOSampleFormat getSampleFormat() const; + void setSampleArrangement(IIOSampleArrangement sArrangement); + IIOSampleArrangement getSampleArrangement() const; - void setSampleFormat(IIOSampleFormat sFormat) - { - sampleFormat = sFormat; - } - IIOSampleFormat getSampleFormat() - { - return sampleFormat; - } - void setSampleArrangement(IIOSampleArrangement sArrangement) - { - sampleArrangement = sArrangement; - } - IIOSampleArrangement getSampleArrangement() - { - return sampleArrangement; - } + virtual void getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const = 0; + virtual int getBPS () const = 0; + virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false) const = 0; + virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples = 3) = 0; + virtual const char* getType () const = 0; - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp) - { - printf("getStdImage NULL!\n"); - } + int load (const Glib::ustring &fname); + int save (const Glib::ustring &fname) const; - virtual int getBPS () = 0; - virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false) {} - virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples = 3) {} - - virtual bool readImage (Glib::ustring &fname, FILE *fh) - { - return false; - }; - virtual bool writeImage (Glib::ustring &fname, FILE *fh) - { - return false; - }; - - int load (Glib::ustring fname); - int save (Glib::ustring fname); - - int loadPNG (Glib::ustring fname); - int loadJPEG (Glib::ustring fname); - int loadTIFF (Glib::ustring fname); - static int getPNGSampleFormat (Glib::ustring fname, IIOSampleFormat &sFormat, IIOSampleArrangement &sArrangement); - static int getTIFFSampleFormat (Glib::ustring fname, IIOSampleFormat &sFormat, IIOSampleArrangement &sArrangement); + int loadPNG (const Glib::ustring &fname); + int loadJPEG (const Glib::ustring &fname); + int loadTIFF (const Glib::ustring &fname); + static int getPNGSampleFormat (const Glib::ustring &fname, IIOSampleFormat &sFormat, IIOSampleArrangement &sArrangement); + static int getTIFFSampleFormat (const Glib::ustring &fname, IIOSampleFormat &sFormat, IIOSampleArrangement &sArrangement); int loadJPEGFromMemory (const char* buffer, int bufsize); int loadPPMFromMemory(const char* buffer, int width, int height, bool swap, int bps); - int savePNG (Glib::ustring fname, volatile int bps = -1); - int saveJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3); - int saveTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false); + int savePNG (const Glib::ustring &fname, int bps = -1) const; + int saveJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3) const; + int saveTIFF (const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const; - cmsHPROFILE getEmbeddedProfile () - { - return embProfile; - } - void getEmbeddedProfileData (int& length, unsigned char*& pdata) - { - length = loadedProfileLength; - pdata = (unsigned char*)loadedProfileData; - } + cmsHPROFILE getEmbeddedProfile () const; + void getEmbeddedProfileData (int& length, unsigned char*& pdata) const; void setMetadata (const rtexif::TagDirectory* eroot); void setMetadata (const rtexif::TagDirectory* eroot, const rtengine::procparams::ExifPairs& exif, const rtengine::procparams::IPTCPairs& iptcc); - void setOutputProfile (const char* pdata, int plen); - MyMutex& mutex () - { - return imutex; - } + void setOutputProfile (const char* pdata, int plen); + + MyMutex& mutex (); }; } diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index c1bd8fd64..c87ce4b0d 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -65,7 +65,7 @@ public: ImageSource () : references (1), redAWBMul(-1.), greenAWBMul(-1.), blueAWBMul(-1.), embProfile(nullptr), idata(nullptr), dirpyrdenoiseExpComp(INFINITY) {} - virtual ~ImageSource () {} + ~ImageSource () override {} virtual int load (const Glib::ustring &fname) = 0; virtual void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true) {}; virtual void demosaic (const RAWParams &raw, bool autoContrast, double &contrastThreshold) {}; @@ -74,7 +74,7 @@ public: virtual void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D &conversionBuffer, LUTu &lhist16RETI) {}; virtual void flushRawData () {}; virtual void flushRGB () {}; - virtual void HLRecovery_Global (ToneCurveParams hrp) {}; + virtual void HLRecovery_Global (const ToneCurveParams &hrp) {}; virtual void HLRecovery_inpaint (float** red, float** green, float** blue) {}; virtual void MSR (LabImage* lab, LUTf & mapcurve, bool &mapcontlutili, int width, int height, int skip, RetinexParams deh, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax) {}; @@ -119,11 +119,11 @@ public: virtual void setProgressListener (ProgressListener* pl) {} - void increaseRef () + void increaseRef () override { references++; } - void decreaseRef () + void decreaseRef () override { references--; @@ -151,19 +151,19 @@ public: return dirpyrdenoiseExpComp; } // functions inherited from the InitialImage interface - virtual Glib::ustring getFileName () + Glib::ustring getFileName () override { return fileName; } - virtual cmsHPROFILE getEmbeddedProfile () + cmsHPROFILE getEmbeddedProfile () override { return embProfile; } - virtual const FramesMetaData* getMetaData () + const FramesMetaData* getMetaData () override { return idata; } - virtual ImageSource* getImageSource () + ImageSource* getImageSource () override { return this; } diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index ac330db23..851f78ed8 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -28,7 +28,6 @@ #include #include #include "color.h" - #ifdef _OPENMP #include #endif @@ -95,7 +94,7 @@ ImProcCoordinator::ImProcCoordinator() pW(-1), pH(-1), plistener(nullptr), imageListener(nullptr), aeListener(nullptr), acListener(nullptr), abwListener(nullptr), awbListener(nullptr), flatFieldAutoClipListener(nullptr), bayerAutoContrastListener(nullptr), xtransAutoContrastListener(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), highQualityComputed(false) + butili(false), ccutili(false), cclutili(false), clcutili(false), opautili(false), wavcontlutili(false), colourToningSatLimit(0.f), colourToningSatLimitOpacity(0.f), highQualityComputed(false), customTransformIn(nullptr), customTransformOut(nullptr) {} void ImProcCoordinator::assign(ImageSource* imgsrc) @@ -129,6 +128,17 @@ ImProcCoordinator::~ImProcCoordinator() } imgsrc->decreaseRef(); + + if(customTransformIn) { + cmsDeleteTransform(customTransformIn); + customTransformIn = nullptr; + } + + if(customTransformOut) { + cmsDeleteTransform(customTransformOut); + customTransformOut = nullptr; + } + updaterThreadStart.unlock(); } @@ -173,13 +183,13 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (!highDetailNeeded) { // if below 100% magnification, take a fast path - if (rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::NONE) && rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::NONE)) { + if (rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::NONE) && rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)) { rp.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST); } //bayerrp.all_enhance = false; - if (rp.xtranssensor.method != RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::NONE) && rp.xtranssensor.method != RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::NONE)) { + if (rp.xtranssensor.method != RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::NONE) && rp.xtranssensor.method != RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) { rp.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST); } @@ -506,41 +516,28 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (todo & (M_AUTOEXP | M_RGBCURVE)) { if (params.icm.workingTRC == "Custom") { //exec TRC IN free - Glib::ustring profile; - profile = params.icm.workingProfile; + if (oprevi == orig_prev) { + oprevi = new Imagefloat(pW, pH); + orig_prev->copyData(oprevi); + } + + const Glib::ustring profile = params.icm.workingProfile; if (profile == "sRGB" || profile == "Adobe RGB" || profile == "ProPhoto" || profile == "WideGamut" || profile == "BruceRGB" || profile == "Beta RGB" || profile == "BestRGB" || profile == "Rec2020" || profile == "ACESp0" || profile == "ACESp1") { - int cw = oprevi->getWidth(); - int ch = oprevi->getHeight(); + const int cw = oprevi->getWidth(); + const int ch = oprevi->getHeight(); // put gamma TRC to 1 - Imagefloat* readyImg0 = NULL; - readyImg0 = ipf.workingtrc(oprevi, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310); - #pragma omp parallel for - - for (int row = 0; row < ch; row++) { - for (int col = 0; col < cw; col++) { - oprevi->r(row, col) = (float)readyImg0->r(row, col); - oprevi->g(row, col) = (float)readyImg0->g(row, col); - oprevi->b(row, col) = (float)readyImg0->b(row, col); - } + if(customTransformIn) { + cmsDeleteTransform(customTransformIn); + customTransformIn = nullptr; } - - delete readyImg0; + ipf.workingtrc(oprevi, oprevi, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, customTransformIn, true, false, true); //adjust TRC - Imagefloat* readyImg = NULL; - readyImg = ipf.workingtrc(oprevi, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope); - #pragma omp parallel for - - for (int row = 0; row < ch; row++) { - for (int col = 0; col < cw; col++) { - oprevi->r(row, col) = (float)readyImg->r(row, col); - oprevi->g(row, col) = (float)readyImg->g(row, col); - oprevi->b(row, col) = (float)readyImg->b(row, col); - } + if(customTransformOut) { + cmsDeleteTransform(customTransformOut); + customTransformOut = nullptr; } - - delete readyImg; - + ipf.workingtrc(oprevi, oprevi, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, customTransformOut, false, true, true); } } } @@ -653,10 +650,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } if (params.colorToning.enabled && params.colorToning.autosat && actListener) { - if (settings->verbose) { - 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 } @@ -965,10 +958,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) void ImProcCoordinator::freeAll() { - if (settings->verbose) { - printf("freeall starts %d\n", (int)allocated); - } - if (allocated) { if (orig_prev != oprevi) { delete oprevi; @@ -1010,10 +999,6 @@ void ImProcCoordinator::freeAll() void ImProcCoordinator::setScale(int prevscale) { - if (settings->verbose) { - printf("setscale before lock\n"); - } - tr = getCoarseBitMask(params.coarse); int nW, nH; @@ -1027,10 +1012,6 @@ void ImProcCoordinator::setScale(int prevscale) imgsrc->getSize(pp, nW, nH); } while (nH < 400 && prevscale > 1 && (nW * nH < 1000000)); // sctually hardcoded values, perhaps a better choice is possible - if (settings->verbose) { - printf("setscale starts (%d, %d)\n", nW, nH); - } - if (nW != pW || nH != pH) { freeAll(); @@ -1054,19 +1035,10 @@ void ImProcCoordinator::setScale(int prevscale) fullw = fw; fullh = fh; - if (settings->verbose) { - printf("setscale ends\n"); - } - if (!sizeListeners.empty()) for (size_t i = 0; i < sizeListeners.size(); i++) { sizeListeners[i]->sizeChanged(fullw, fullh, fw, fh); } - - if (settings->verbose) { - printf("setscale ends2\n"); - } - } diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index 356ef6636..fb3012f62 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -215,89 +215,90 @@ protected: float colourToningSatLimit; float colourToningSatLimitOpacity; bool highQualityComputed; - + cmsHTRANSFORM customTransformIn; + cmsHTRANSFORM customTransformOut; public: ImProcCoordinator (); - ~ImProcCoordinator (); + ~ImProcCoordinator () override; void assign (ImageSource* imgsrc); - void getParams (procparams::ProcParams* dst) + void getParams (procparams::ProcParams* dst) override { *dst = params; } - void startProcessing (int changeCode); - ProcParams* beginUpdateParams (); - void endUpdateParams (ProcEvent change); // must be called after beginUpdateParams, triggers update - void endUpdateParams (int changeFlags); - void stopProcessing (); + void startProcessing (int changeCode) override; + ProcParams* beginUpdateParams () override; + void endUpdateParams (ProcEvent change) override; // must be called after beginUpdateParams, triggers update + void endUpdateParams (int changeFlags) override; + void stopProcessing () override; - void setPreviewScale (int scale) + void setPreviewScale (int scale) override { setScale (scale); } - int getPreviewScale () + int getPreviewScale () override { return scale; } //void fullUpdatePreviewImage (); - int getFullWidth () + int getFullWidth () override { return fullw; } - int getFullHeight () + int getFullHeight () override { return fullh; } - int getPreviewWidth () + int getPreviewWidth () override { return pW; } - int getPreviewHeight () + int getPreviewHeight () override { return pH; } - DetailedCrop* createCrop (::EditDataProvider *editDataProvider, bool isDetailWindow); + DetailedCrop* createCrop (::EditDataProvider *editDataProvider, bool isDetailWindow) override; - bool getAutoWB (double& temp, double& green, double equal, double tempBias); - void getCamWB (double& temp, double& green); - void getSpotWB (int x, int y, int rectSize, double& temp, double& green); - void getAutoCrop (double ratio, int &x, int &y, int &w, int &h); - bool getHighQualComputed(); - void setHighQualComputed(); - void setMonitorProfile (const Glib::ustring& profile, RenderingIntent intent); - void getMonitorProfile (Glib::ustring& profile, RenderingIntent& intent) const; - void setSoftProofing (bool softProof, bool gamutCheck); - void getSoftProofing (bool &softProof, bool &gamutCheck); - void setSharpMask (bool sharpMask); - bool updateTryLock () + bool getAutoWB (double& temp, double& green, double equal, double tempBias) override; + void getCamWB (double& temp, double& green) override; + void getSpotWB (int x, int y, int rectSize, double& temp, double& green) override; + void getAutoCrop (double ratio, int &x, int &y, int &w, int &h) override; + bool getHighQualComputed() override; + void setHighQualComputed() override; + void setMonitorProfile (const Glib::ustring& profile, RenderingIntent intent) override; + void getMonitorProfile (Glib::ustring& profile, RenderingIntent& intent) const override; + void setSoftProofing (bool softProof, bool gamutCheck) override; + void getSoftProofing (bool &softProof, bool &gamutCheck) override; + void setSharpMask (bool sharpMask) override; + bool updateTryLock () override { return updaterThreadStart.trylock(); } - void updateUnLock () + void updateUnLock () override { updaterThreadStart.unlock(); } - void setProgressListener (ProgressListener* pl) + void setProgressListener (ProgressListener* pl) override { plistener = pl; } - void setPreviewImageListener (PreviewImageListener* il) + void setPreviewImageListener (PreviewImageListener* il) override { imageListener = il; } - void setSizeListener (SizeListener* il) + void setSizeListener (SizeListener* il) override { sizeListeners.push_back (il); } - void delSizeListener (SizeListener* il) + void delSizeListener (SizeListener* il) override { std::vector::iterator it = std::find (sizeListeners.begin(), sizeListeners.end(), il); @@ -305,74 +306,84 @@ public: sizeListeners.erase (it); } } - void setAutoExpListener (AutoExpListener* ael) + void setAutoExpListener (AutoExpListener* ael) override { aeListener = ael; } - void setHistogramListener (HistogramListener *h) + void setHistogramListener (HistogramListener *h) override { hListener = h; } - void setAutoCamListener (AutoCamListener* acl) + void setAutoCamListener (AutoCamListener* acl) override { acListener = acl; } - void setAutoBWListener (AutoBWListener* abw) + void setAutoBWListener (AutoBWListener* abw) override { abwListener = abw; } - void setAutoWBListener (AutoWBListener* awb) + void setAutoWBListener (AutoWBListener* awb) override { awbListener = awb; } - void setAutoColorTonListener (AutoColorTonListener* bwct) + void setAutoColorTonListener (AutoColorTonListener* bwct) override { actListener = bwct; } - void setAutoChromaListener (AutoChromaListener* adn) + void setAutoChromaListener (AutoChromaListener* adn) override { adnListener = adn; } - void setRetinexListener (RetinexListener* adh) + void setRetinexListener (RetinexListener* adh) override { dehaListener = adh; } - void setWaveletListener (WaveletListener* awa) + void setWaveletListener (WaveletListener* awa) override { awavListener = awa; } - void setFrameCountListener (FrameCountListener* fcl) + void setFrameCountListener (FrameCountListener* fcl) override { frameCountListener = fcl; } - void setFlatFieldAutoClipListener (FlatFieldAutoClipListener* ffacl) + void setFlatFieldAutoClipListener (FlatFieldAutoClipListener* ffacl) override { flatFieldAutoClipListener = ffacl; } - void setBayerAutoContrastListener (AutoContrastListener* acl) + void setBayerAutoContrastListener (AutoContrastListener* acl) override { bayerAutoContrastListener = acl; } - void setXtransAutoContrastListener (AutoContrastListener* acl) + void setXtransAutoContrastListener (AutoContrastListener* acl) override { xtransAutoContrastListener = acl; } - void setImageTypeListener (ImageTypeListener* itl) + void setImageTypeListener (ImageTypeListener* itl) override { imageTypeListener = itl; } - void saveInputICCReference (const Glib::ustring& fname, bool apply_wb); + void saveInputICCReference (const Glib::ustring& fname, bool apply_wb) override; - InitialImage* getInitialImage () + InitialImage* getInitialImage () override { return imgsrc; } + cmsHTRANSFORM& getCustomTransformIn () + { + return customTransformIn; + } + + cmsHTRANSFORM& getCustomTransformOut () + { + return customTransformOut; + } + struct DenoiseInfoStore { DenoiseInfoStore () : chM (0), max_r{}, max_b{}, ch_M{}, valid (false) {} float chM; diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index de4a93556..d368eb0cd 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -910,12 +910,12 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw float cz, wh, pfl; - Ciecam02::initcam1float (gamu, yb, pilot, f, la, xw, yw, zw, n, d, nbb, ncb, cz, aw, wh, pfl, fl, c); + Ciecam02::initcam1float (yb, pilot, f, la, xw, yw, zw, n, d, nbb, ncb, cz, aw, wh, pfl, fl, c); //printf ("wh=%f \n", wh); const float pow1 = pow_F ( 1.64f - pow_F ( 0.29f, n ), 0.73f ); float nj, nbbj, ncbj, czj, awj, flj; - Ciecam02::initcam2float (gamu, yb2, pilotout, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj); + Ciecam02::initcam2float (yb2, pilotout, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj); #ifdef __SSE2__ const float reccmcz = 1.f / (c2 * czj); #endif @@ -1030,7 +1030,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw Q, M, s, aw, fl, wh, x, y, z, xw1, yw1, zw1, - c, nc, gamu, pow1, nbb, ncb, pfl, cz, d); + c, nc, pow1, nbb, ncb, pfl, cz, d); Jbuffer[k] = J; Cbuffer[k] = C; hbuffer[k] = h; @@ -1068,7 +1068,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw Q, M, s, aw, fl, wh, x, y, z, xw1, yw1, zw1, - c, nc, gamu, pow1, nbb, ncb, pfl, cz, d); + c, nc, pow1, nbb, ncb, pfl, cz, d); #endif float Jpro, Cpro, hpro, Qpro, Mpro, spro; Jpro = J; @@ -1483,7 +1483,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw Ciecam02::jch2xyz_ciecam02float ( xx, yy, zz, J, C, h, xw2, yw2, zw2, - c2, nc2, gamu, pow1n, nbbj, ncbj, flj, czj, dj, awj); + c2, nc2, pow1n, nbbj, ncbj, flj, czj, dj, awj); float x, y, z; x = xx * 655.35f; y = yy * 655.35f; @@ -1638,7 +1638,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw if (params->defringe.enabled) if (execsharp) { lab->deleteLab(); - ImProcFunctions::defringecam (ncie);//defringe adapted to CIECAM + defringecam (ncie);//defringe adapted to CIECAM lab->reallocLab(); } @@ -1649,7 +1649,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw const bool hotbad = params->dirpyrequalizer.skinprotect != 0.0; lab->deleteLab(); - ImProcFunctions::badpixcam (ncie, artifact / scale, 5, 2, chrom, hotbad); //enabled remove artifacts for cbDL + badpixcam (ncie, artifact / scale, 5, 2, chrom, hotbad); //enabled remove artifacts for cbDL lab->reallocLab(); } @@ -1657,7 +1657,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw if (params->colorappearance.badpixsl > 0 && execsharp) { int mode = params->colorappearance.badpixsl; lab->deleteLab(); - ImProcFunctions::badpixcam (ncie, 3.0, 10, mode, 0, true);//for bad pixels CIECAM + badpixcam (ncie, 3.0, 10, mode, 0, true);//for bad pixels CIECAM lab->reallocLab(); } @@ -1666,17 +1666,17 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw buffers[0] = lab->L; buffers[1] = lab->a; buffers[2] = lab->b; - ImProcFunctions::impulsedenoisecam (ncie, buffers); //impulse adapted to CIECAM + impulsedenoisecam (ncie, buffers); //impulse adapted to CIECAM } if (params->sharpenMicro.enabled)if (execsharp) { - ImProcFunctions::MLmicrocontrastcam (ncie); + MLmicrocontrastcam (ncie); } if (params->sharpening.enabled) if (execsharp) { float **buffer = lab->L; // We can use the L-buffer from lab as buffer to save some memory - ImProcFunctions::sharpeningcam (ncie, buffer, showSharpMask); // sharpening adapted to CIECAM + sharpeningcam (ncie, buffer, showSharpMask); // sharpening adapted to CIECAM } //if(params->dirpyrequalizer.enabled) if(execsharp) { @@ -1732,7 +1732,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw if (epdEnabled && params->colorappearance.tonecie && algepd) { lab->deleteLab(); - ImProcFunctions::EPDToneMapCIE (ncie, a_w, c_, width, height, minQ, maxQ, Iterates, scale ); + EPDToneMapCIE (ncie, a_w, c_, width, height, minQ, maxQ, Iterates, scale ); lab->reallocLab(); } @@ -1816,7 +1816,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw Ciecam02::jch2xyz_ciecam02float ( xx, yy, zz, ncie->J_p[i][j], ncie_C_p, ncie->h_p[i][j], xw2, yw2, zw2, - c2, nc2, gamu, pow1n, nbbj, ncbj, flj, czj, dj, awj); + c2, nc2, pow1n, nbbj, ncbj, flj, czj, dj, awj); float x = (float)xx * 655.35f; float y = (float)yy * 655.35f; float z = (float)zz * 655.35f; diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index c3e17a050..3e583958b 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -350,7 +350,7 @@ public: Image8* lab2rgb(LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, bool consider_histogram_settings = true); Imagefloat* lab2rgbOut(LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm); // CieImage *ciec; - Imagefloat* workingtrc(Imagefloat* working, int cw, int ch, int mul, Glib::ustring profile, double gampos, double slpos); + void workingtrc(const Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, const Glib::ustring &profile, double gampos, double slpos, cmsHTRANSFORM &transform, bool normalizeIn = true, bool normalizeOut = true, bool keepTransForm = false) const; bool transCoord(int W, int H, int x, int y, int w, int h, int& xv, int& yv, int& wv, int& hv, double ascaleDef = -1, const LensCorrection *pLCPMap = nullptr); bool transCoord(int W, int H, const std::vector &src, std::vector &red, std::vector &green, std::vector &blue, double ascaleDef = -1, const LensCorrection *pLCPMap = nullptr); diff --git a/rtengine/ipdehaze.cc b/rtengine/ipdehaze.cc index 5522107e0..97c1883c9 100644 --- a/rtengine/ipdehaze.cc +++ b/rtengine/ipdehaze.cc @@ -183,6 +183,7 @@ float estimate_ambient_light(const array2D &R, const array2D &G, c } } } + n = std::max(n, 1); ambient[0] = rr / n; ambient[1] = gg / n; ambient[2] = bb / n; diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index c4707f16f..9ab8e1d01 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -303,79 +303,7 @@ Imagefloat* ImProcFunctions::lab2rgbOut(LabImage* lab, int cx, int cy, int cw, i } Imagefloat* image = new Imagefloat(cw, ch); - - cmsHPROFILE oprof = nullptr; - - oprof = ICCStore::getInstance()->getProfile(icm.outputProfile); - Glib::ustring outtest = icm.outputProfile; - std::string fileis_RTv2 = outtest.substr(0, 4); - //printf("IsRTv2=%s\n", fileis_RTv2.c_str()); - if(fileis_RTv2 == "RTv2") {//Only fot ICC v2 : read tag from desc to retrieve gamma and slope save before in generate ICC v2 - //due to bug in LCMS in CmsToneCurve - //printf("icmout=%s \n",icm.output.c_str()); - GammaValues g_b; //gamma parameters - const double eps = 0.000000001; // not divide by zero - double gammatag = 2.4; - double slopetag = 12.92310; - cmsMLU *modelDescMLU = (cmsMLU*) (cmsReadTag(oprof, cmsSigDeviceModelDescTag)); - if (modelDescMLU) { - cmsUInt32Number count = cmsMLUgetWide(modelDescMLU, "en", "US", nullptr, 0); // get buffer length first - if (count) { - wchar_t *buffer = new wchar_t[count]; - count = cmsMLUgetWide(modelDescMLU, "en", "US", buffer, count); // now put the string in the buffer - Glib::ustring modelDesc; -#if __SIZEOF_WCHAR_T__ == 2 - char* cModelDesc = g_utf16_to_utf8((unsigned short int*)buffer, -1, nullptr, nullptr, nullptr); // convert to utf-8 in a buffer allocated by glib - if (cModelDesc) { - modelDesc.assign(cModelDesc); - g_free(cModelDesc); - } -#else - modelDesc = utf32_to_utf8(buffer, count); -#endif - delete [] buffer; - if (!modelDesc.empty()) { - printf("dmdd=%s\n", modelDesc.c_str()); - - std::size_t pos = modelDesc.find("g"); - std::size_t posmid = modelDesc.find("s"); - std::size_t posend = modelDesc.find("!"); - std::string strgamma = modelDesc.substr(pos + 1, (posmid - pos)); - gammatag = std::stod(strgamma.c_str()); - std::string strslope = modelDesc.substr(posmid + 1, (posend - posmid)); - slopetag = std::stod(strslope.c_str()); - // printf("gam=%f slo=%f\n", gammatag, slopetag); - } - } else { - printf("Error: lab2rgbOut / String length is null!\n"); - } - } else { - printf("Error: lab2rgbOut / cmsReadTag/cmsSigDeviceModelDescTag failed!\n"); - } - - double pwr = 1.0 / gammatag; - double ts = slopetag; - double slope = slopetag == 0 ? eps : slopetag; - - int mode = 0; - Color::calcGamma(pwr, ts, mode, g_b); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 - cmsFloat64Number gammaParams[7]; //gamma parameters - gammaParams[4] = g_b[3] * ts; - gammaParams[0] = gammatag; - gammaParams[1] = 1. / (1.0 + g_b[4]); - gammaParams[2] = g_b[4] / (1.0 + g_b[4]); - gammaParams[3] = 1. / slope; - gammaParams[5] = 0.0; - gammaParams[6] = 0.0; - - cmsToneCurve* GammaTRC[3]; - - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, gammaParams); //5 = smoother than 4 - cmsWriteTag(oprof, cmsSigRedTRCTag, GammaTRC[0]); - cmsWriteTag(oprof, cmsSigGreenTRCTag, GammaTRC[1]); - cmsWriteTag(oprof, cmsSigBlueTRCTag, GammaTRC[2]); - cmsFreeToneCurve(GammaTRC[0]); - } + cmsHPROFILE oprof = ICCStore::getInstance()->getProfile(icm.outputProfile); if (oprof) { cmsUInt32Number flags = cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE; @@ -429,64 +357,60 @@ Imagefloat* ImProcFunctions::lab2rgbOut(LabImage* lab, int cx, int cy, int cw, i } -Imagefloat* ImProcFunctions::workingtrc(Imagefloat* working, int cw, int ch, int mul, Glib::ustring profile, double gampos, double slpos) +void ImProcFunctions::workingtrc(const Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, const Glib::ustring &profile, double gampos, double slpos, cmsHTRANSFORM &transform, bool normalizeIn, bool normalizeOut, bool keepTransForm) const { - TMatrix wprof; - - wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); + const TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); double dx = Color::D50x; double dz = Color::D50z; { dx = dz = 1.0; } - double toxyz[3][3] = { + const float toxyz[3][3] = { { - (wprof[0][0] / dx), //I have suppressed / Color::D50x - (wprof[0][1] / dx), - (wprof[0][2] / dx) + static_cast(wprof[0][0] / (dx * (normalizeIn ? 65535.0 : 1.0))), //I have suppressed / Color::D50x + static_cast(wprof[0][1] / (dx * (normalizeIn ? 65535.0 : 1.0))), + static_cast(wprof[0][2] / (dx * (normalizeIn ? 65535.0 : 1.0))) }, { - (wprof[1][0]), - (wprof[1][1]), - (wprof[1][2]) + static_cast(wprof[1][0] / (normalizeIn ? 65535.0 : 1.0)), + static_cast(wprof[1][1] / (normalizeIn ? 65535.0 : 1.0)), + static_cast(wprof[1][2] / (normalizeIn ? 65535.0 : 1.0)) }, { - (wprof[2][0] / dz), //I have suppressed / Color::D50z - (wprof[2][1] / dz), - (wprof[2][2] / dz) + static_cast(wprof[2][0] / (dz * (normalizeIn ? 65535.0 : 1.0))), //I have suppressed / Color::D50z + static_cast(wprof[2][1] / (dz * (normalizeIn ? 65535.0 : 1.0))), + static_cast(wprof[2][2] / (dz * (normalizeIn ? 65535.0 : 1.0))) } }; - Imagefloat* image = new Imagefloat(cw, ch); + cmsHTRANSFORM hTransform = nullptr; + if (transform) { + hTransform = transform; + } else { - double pwr; - double ts; - ts = slpos; + double pwr = 1.0 / gampos; + double ts = slpos; + int five = mul; - int five = mul; - pwr = 1.0 / gampos; + if (gampos < 1.0) { + pwr = gampos; + gampos = 1. / gampos; + five = -mul; + } - if (gampos < 1.0) { - pwr = gampos; - gampos = 1. / gampos; - five = -mul; - } + // int select_temp = 1; //5003K + constexpr double eps = 0.000000001; // not divide by zero - // int select_temp = 1; //5003K - const double eps = 0.000000001; // not divide by zero + enum class ColorTemp { + D50 = 5003, // for Widegamut, ProPhoto Best, Beta -> D50 + D65 = 6504, // for sRGB, AdobeRGB, Bruce Rec2020 -> D65 + D60 = 6005 // for ACES AP0 and AP1 - enum class ColorTemp { - D50 = 5003, // for Widegamut, ProPhoto Best, Beta -> D50 - D65 = 6504, // for sRGB, AdobeRGB, Bruce Rec2020 -> D65 - D60 = 6005 // for ACES AP0 and AP1 + }; + ColorTemp temp = ColorTemp::D50; - }; - ColorTemp temp = ColorTemp::D50; + float p[6]; //primaries - cmsHPROFILE oprofdef; - float p[6]; //primaries - - if (true) { //primaries for 10 working profiles ==> output profiles if (profile == "WideGamut") { p[0] = 0.7350; //Widegamut primaries @@ -578,18 +502,10 @@ Imagefloat* ImProcFunctions::workingtrc(Imagefloat* working, int cw, int ch, int } GammaValues g_a; //gamma parameters - int mode = 0; + constexpr int mode = 0; Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 - cmsCIExyY xyD; - cmsCIExyYTRIPLE Primaries = { - {p[0], p[1], 1.0}, // red - {p[2], p[3], 1.0}, // green - {p[4], p[5], 1.0} // blue - }; - - cmsToneCurve* GammaTRC[3]; cmsFloat64Number gammaParams[7]; gammaParams[4] = g_a[3] * ts; gammaParams[0] = gampos; @@ -601,63 +517,69 @@ Imagefloat* ImProcFunctions::workingtrc(Imagefloat* working, int cw, int ch, int // printf("ga0=%f ga1=%f ga2=%f ga3=%f ga4=%f\n", ga0, ga1, ga2, ga3, ga4); // 7 parameters for smoother curves + cmsCIExyY xyD; cmsWhitePointFromTemp(&xyD, (double)temp); if (profile == "ACESp0") { xyD = {0.32168, 0.33767, 1.0};//refine white point to avoid differences } - - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(NULL, five, gammaParams);//5 = more smoother than 4 - oprofdef = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); + + cmsToneCurve* GammaTRC[3]; + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(NULL, five, gammaParams);//5 = more smoother than 4 + + const cmsCIExyYTRIPLE Primaries = { + {p[0], p[1], 1.0}, // red + {p[2], p[3], 1.0}, // green + {p[4], p[5], 1.0} // blue + }; + const cmsHPROFILE oprofdef = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); cmsFreeToneCurve(GammaTRC[0]); + + if (oprofdef) { + constexpr cmsUInt32Number flags = cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE; + const cmsHPROFILE iprof = ICCStore::getInstance()->getXYZProfile(); + lcmsMutex->lock(); + hTransform = cmsCreateTransform(iprof, TYPE_RGB_FLT, oprofdef, TYPE_RGB_FLT, params->icm.outputIntent, flags); + lcmsMutex->unlock(); + } } + if (hTransform) { +#ifdef _OPENMP + #pragma omp parallel if (multiThread) +#endif + { + AlignedBuffer pBuf(cw * 3); + const float normalize = normalizeOut ? 65535.f : 1.f; - if (oprofdef) { - #pragma omp parallel for if (multiThread) +#ifdef _OPENMP + #pragma omp for schedule(dynamic, 16) nowait +#endif - for (int i = 0; i < ch; i++) { - float* rr = working->r(i); - float* rg = working->g(i); - float* rb = working->b(i); - - float* xa = (float*)image->r(i); - float* ya = (float*)image->g(i); - float* za = (float*)image->b(i); - - for (int j = 0; j < cw; j++) { - float r1 = rr[j]; - float g1 = rg[j]; - float b1 = rb[j]; - - float x_ = toxyz[0][0] * r1 + toxyz[0][1] * g1 + toxyz[0][2] * b1; - float y_ = toxyz[1][0] * r1 + toxyz[1][1] * g1 + toxyz[1][2] * b1; - float z_ = toxyz[2][0] * r1 + toxyz[2][1] * g1 + toxyz[2][2] * b1; - - xa[j] = ( x_) ; - ya[j] = ( y_); - za[j] = ( z_); + for (int i = 0; i < ch; ++i) { + float *p = pBuf.data; + for (int j = 0; j < cw; ++j) { + const float r = src->r(i, j); + const float g = src->g(i, j); + const float b = src->b(i, j); + *(p++) = toxyz[0][0] * r + toxyz[0][1] * g + toxyz[0][2] * b; + *(p++) = toxyz[1][0] * r + toxyz[1][1] * g + toxyz[1][2] * b; + *(p++) = toxyz[2][0] * r + toxyz[2][1] * g + toxyz[2][2] * b; + } + p = pBuf.data; + cmsDoTransform(hTransform, p, p, cw); + for (int j = 0; j < cw; ++j) { + dst->r(i, j) = *(p++) * normalize; + dst->g(i, j) = *(p++) * normalize; + dst->b(i, j) = *(p++) * normalize; + } } } - - cmsUInt32Number flags = cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE; - - - lcmsMutex->lock(); - cmsHPROFILE iprof = ICCStore::getInstance()->getXYZProfile(); - // cmsHTRANSFORM hTransform = cmsCreateTransform(iprof, TYPE_RGB_16, oprofdef, TYPE_RGB_16, params->icm.outputIntent, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); - cmsHTRANSFORM hTransform = cmsCreateTransform(iprof, TYPE_RGB_FLT, oprofdef, TYPE_RGB_FLT, params->icm.outputIntent, flags); - lcmsMutex->unlock(); - - image->ExecCMSTransform2(hTransform); - - cmsDeleteTransform(hTransform); - image->normalizeFloatTo65535(); - + if (!keepTransForm) { + cmsDeleteTransform(hTransform); + hTransform = nullptr; + } + transform = hTransform; } - - - return image; - } diff --git a/rtengine/iplabregions.cc b/rtengine/iplabregions.cc index d2380494a..28e7ddad3 100644 --- a/rtengine/iplabregions.cc +++ b/rtengine/iplabregions.cc @@ -143,8 +143,12 @@ BENCHFUN } for (int i = begin_idx; i < end_idx; ++i) { - rtengine::guidedFilter(guide, abmask[i], abmask[i], max(int(4 / scale + 0.5), 1), 0.001, multiThread); - rtengine::guidedFilter(guide, Lmask[i], Lmask[i], max(int(25 / scale + 0.5), 1), 0.0001, multiThread); + float blur = params->colorToning.labregions[i].maskBlur; + blur = blur < 0.f ? -1.f/blur : 1.f + blur; + int r1 = max(int(4 / scale * blur + 0.5), 1); + int r2 = max(int(25 / scale * blur + 0.5), 1); + rtengine::guidedFilter(guide, abmask[i], abmask[i], r1, 0.001, multiThread); + rtengine::guidedFilter(guide, Lmask[i], Lmask[i], r2, 0.0001, multiThread); } if (show_mask_idx >= 0) { @@ -166,21 +170,115 @@ BENCHFUN const auto abcoord = [](float x) -> float { - return 12000.f * SGN(x) * xlog2lin(std::abs(x), 4.f); + return /*12000.f **/ SGN(x) * xlog2lin(std::abs(x), 4.f); }; float abca[n]; float abcb[n]; float rs[n]; - float rl[n]; + float slope[n]; + float offset[n]; + float power[n]; + int channel[n]; for (int i = 0; i < n; ++i) { auto &r = params->colorToning.labregions[i]; abca[i] = abcoord(r.a); abcb[i] = abcoord(r.b); - rs[i] = 1.f + r.saturation / 100.f; - rl[i] = 1.f + r.lightness / 500.f; + rs[i] = 1.f + r.saturation / (SGN(r.saturation) > 0 ? 50.f : 100.f); + slope[i] = r.slope; + offset[i] = r.offset; + power[i] = r.power; + channel[i] = r.channel; } + TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); + TMatrix iws = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.workingProfile); + + const auto CDL = + [=](float &l, float &a, float &b, float slope, float offset, float power, float saturation) -> void + { + if (slope != 1.f || offset != 0.f || power != 1.f || saturation != 1.f) { + float rgb[3]; + float x, y, z; + Color::Lab2XYZ(l, a, b, x, y, z); + Color::xyz2rgb(x, y, z, rgb[0], rgb[1], rgb[2], iws); + for (int i = 0; i < 3; ++i) { + rgb[i] = (pow_F(max((rgb[i] / 65535.f) * slope + offset, 0.f), power)) * 65535.f; + } + if (saturation != 1.f) { + float Y = Color::rgbLuminance(rgb[0], rgb[1], rgb[2], ws); + for (int i = 0; i < 3; ++i) { + rgb[i] = max(Y + saturation * (rgb[i] - Y), 0.f); + } + } + Color::rgbxyz(rgb[0], rgb[1], rgb[2], x, y, z, ws); + Color::XYZ2Lab(x, y, z, l, a, b); + } + }; + + const auto chan = + [=](float prev_l, float prev_a, float prev_b, float &l, float &a, float &b, int channel) -> void + { + if (channel >= 0) { + float prev_rgb[3]; + float rgb[3]; + float x, y, z; + Color::Lab2XYZ(l, a, b, x, y, z); + Color::xyz2rgb(x, y, z, rgb[0], rgb[1], rgb[2], iws); + Color::Lab2XYZ(prev_l, prev_a, prev_b, x, y, z); + Color::xyz2rgb(x, y, z, prev_rgb[0], prev_rgb[1], prev_rgb[2], iws); + prev_rgb[channel] = rgb[channel]; + Color::rgbxyz(prev_rgb[0], prev_rgb[1], prev_rgb[2], x, y, z, ws); + Color::XYZ2Lab(x, y, z, l, a, b); + } + }; + +#ifdef __SSE2__ + const auto CDL_v = + [=](vfloat &l, vfloat &a, vfloat &b, float slope, float offset, float power, float saturation) -> void + { + if (slope != 1.f || offset != 0.f || power != 1.f || saturation != 1.f) { + float ll[4]; + float aa[4]; + float bb[4]; + STVFU(ll[0], l); + STVFU(aa[0], a); + STVFU(bb[0], b); + for (int i = 0; i < 4; ++i) { + CDL(ll[i], aa[i], bb[i], slope, offset, power, saturation); + } + l = LVFU(ll[0]); + a = LVFU(aa[0]); + b = LVFU(bb[0]); + } + }; + + const auto chan_v = + [=](vfloat prev_l, vfloat prev_a, vfloat prev_b, vfloat &l, vfloat &a, vfloat &b, int channel) -> void + { + if (channel >= 0) { + float ll[4]; + float aa[4]; + float bb[4]; + STVFU(ll[0], l); + STVFU(aa[0], a); + STVFU(bb[0], b); + float prev_ll[4]; + float prev_aa[4]; + float prev_bb[4]; + STVFU(prev_ll[0], prev_l); + STVFU(prev_aa[0], prev_a); + STVFU(prev_bb[0], prev_b); + for (int i = 0; i < 4; ++i) { + chan(prev_ll[i], prev_aa[i], prev_bb[i], ll[i], aa[i], bb[i], channel); + } + l = LVFU(ll[0]); + a = LVFU(aa[0]); + b = LVFU(bb[0]); + } + }; +#endif + #ifdef _OPENMP #pragma omp parallel if (multiThread) #endif @@ -188,7 +286,6 @@ BENCHFUN #ifdef __SSE2__ vfloat c42000v = F2V(42000.f); vfloat cm42000v = F2V(-42000.f); - vfloat c32768v = F2V(32768.f); #endif #ifdef _OPENMP #pragma omp for @@ -203,10 +300,12 @@ BENCHFUN for (int i = 0; i < n; ++i) { vfloat blendv = LVFU(abmask[i][y][x]); - vfloat sv = F2V(rs[i]); - vfloat a_newv = vclampf(sv * (av + F2V(abca[i])), cm42000v, c42000v); - vfloat b_newv = vclampf(sv * (bv + F2V(abcb[i])), cm42000v, c42000v); - vfloat l_newv = vclampf(lv * F2V(rl[i]), ZEROV, c32768v); + vfloat l_newv = lv; + vfloat a_newv = vclampf(av + lv * F2V(abca[i]), cm42000v, c42000v); + vfloat b_newv = vclampf(bv + lv * F2V(abcb[i]), cm42000v, c42000v); + CDL_v(l_newv, a_newv, b_newv, slope[i], offset[i], power[i], rs[i]); + l_newv = vmaxf(l_newv, ZEROV); + chan_v(lv, av, bv, l_newv, a_newv, b_newv, channel[i]); lv = vintpf(LVFU(Lmask[i][y][x]), l_newv, lv); av = vintpf(blendv, a_newv, av); bv = vintpf(blendv, b_newv, bv); @@ -223,10 +322,12 @@ BENCHFUN for (int i = 0; i < n; ++i) { float blend = abmask[i][y][x]; - float s = rs[i]; - float a_new = LIM(s * (a + abca[i]), -42000.f, 42000.f); - float b_new = LIM(s * (b + abcb[i]), -42000.f, 42000.f); - float l_new = LIM(l * rl[i], 0.f, 32768.f); + float l_new = l; + float a_new = LIM(a + l * abca[i], -42000.f, 42000.f); + float b_new = LIM(b + l * abcb[i], -42000.f, 42000.f); + CDL(l_new, a_new, b_new, slope[i], offset[i], power[i], rs[i]); + l_new = max(l_new, 0.f); + chan(l, a, b, l_new, a_new, b_new, channel[i]); l = intp(Lmask[i][y][x], l_new, l); a = intp(blend, a_new, a); b = intp(blend, b_new, b); diff --git a/rtengine/ipresize.cc b/rtengine/ipresize.cc index b3275b2e4..2d12417e1 100644 --- a/rtengine/ipresize.cc +++ b/rtengine/ipresize.cc @@ -232,6 +232,7 @@ void ImProcFunctions::Lanczos (const LabImage* src, LabImage* dst, float scale) float* const lb = aligned_buffer_lb.data; // weights for interpolation in y direction float w[support] ALIGNED64; + memset(w, 0, sizeof(w)); // Phase 2: do actual interpolation #ifdef _OPENMP diff --git a/rtengine/ipvibrance.cc b/rtengine/ipvibrance.cc index f7a938c33..86c942731 100644 --- a/rtengine/ipvibrance.cc +++ b/rtengine/ipvibrance.cc @@ -170,12 +170,6 @@ void ImProcFunctions::vibrance (LabImage* lab) {static_cast(wiprof[2][0]), static_cast(wiprof[2][1]), static_cast(wiprof[2][2])} }; - - if (settings->verbose) { - printf ("vibrance: p0=%1.2f p1=%1.2f p2=%1.2f s0=%1.2f s1=%1.2f s2=%1.2f\n", p0, p1, p2, s0, s1, s2); - printf (" pastel=%f satur=%f limit= %1.2f chromamean=%0.5f\n", 1.0f + chromaPastel, 1.0f + chromaSatur, limitpastelsatur, chromamean); - } - #pragma omp parallel if (multiThread) { diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index e22e4553c..860823b3a 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -2773,8 +2773,8 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit } } else if(cp.EDmet == 1) { //threshold adjuster float MaxPCompare = MaxP[level] * SQR(cp.edg_max / 100.f); //100 instead of b_r...case if b_r < 100 - float MaxNCompare = MaxN[level] * SQR(cp.edg_max / 100.f); //always rduce a little edge for near max values - float edgeSdCompare = (mean[level] + 1.5f * sigma[level]) * SQR(cp.edg_sd / t_r); // 1.5 standard deviation #80% range between mean 50% and 80% + float MaxNCompare = MaxN[level] * SQR(cp.edg_max / 100.f); //always reduce a little edge for near max values + float edgeSdCompare = (mean[level] + 1.5f * sigma[level]) * SQR(cp.edg_sd / t_r); // 1.5 standard deviation #80% range between mean 50% and 80% float edgeMeanCompare = mean[level] * SQR(cp.edg_mean / t_l); float edgeLowCompare = (5.f + SQR(cp.edg_low)); float edgeMeanFactor = cbrt(cp.edg_mean / t_l); @@ -2818,7 +2818,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit edge = edgePrecalc; } - //algorithm that take into account local contrast + //algorithm that takes into account local contrast // I use a thresholdadjuster with // Bottom left ==> minimal low value for local contrast (not 0, but 5...we can change) // 0 10*10 35*35 100*100 substantially correspond to the true distribution of low value, mean, standard-deviation and max (ed 5, 50, 400, 4000 @@ -2866,7 +2866,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit if(edge < 1.f) { edge = 1.f; } - }//mofify effect if sd change + }//modify effect if sd change if (fabs(WavCoeffs_L[dir][k]) < edgeMeanCompare) { edge *= edgeMeanFactor; diff --git a/rtengine/klt/trackFeatures.cc b/rtengine/klt/trackFeatures.cc index 474d0f5f5..a99225543 100644 --- a/rtengine/klt/trackFeatures.cc +++ b/rtengine/klt/trackFeatures.cc @@ -23,14 +23,14 @@ typedef float *_FloatWindow; /********************************************************************* * _interpolate - * - * Given a point (x,y) in an image, computes the bilinear interpolated - * gray-level value of the point in the image. + * + * Given a point (x,y) in an image, computes the bilinear interpolated + * gray-level value of the point in the image. */ static float _interpolate( - float x, - float y, + float x, + float y, _KLT_FloatImage img) { int xt = (int) x; /* coordinates of top-left corner */ @@ -61,7 +61,7 @@ static float _interpolate( * _computeIntensityDifference * * Given two images and the window center in both images, - * aligns the images wrt the window and computes the difference + * aligns the images wrt the window and computes the difference * between the two overlaid images. */ @@ -91,7 +91,7 @@ static void _computeIntensityDifference( * _computeGradientSum * * Given two gradients and the window center in both images, - * aligns the gradients wrt the window and computes the sum of the two + * aligns the gradients wrt the window and computes the sum of the two * overlaid gradients. */ @@ -126,7 +126,7 @@ static void _computeGradientSum( * _computeIntensityDifferenceLightingInsensitive * * Given two images and the window center in both images, - * aligns the images wrt the window and computes the difference + * aligns the images wrt the window and computes the difference * between the two overlaid images; normalizes for overall gain and bias. */ @@ -141,7 +141,7 @@ static void _computeIntensityDifferenceLightingInsensitive( int hw = width/2, hh = height/2; float g1, g2, sum1_squared = 0, sum2_squared = 0; int i, j; - + float sum1 = 0, sum2 = 0; float mean1, mean2,alpha,belta; /* Compute values */ @@ -165,7 +165,7 @@ static void _computeIntensityDifferenceLightingInsensitive( g1 = _interpolate(x1+i, y1+j, img1); g2 = _interpolate(x2+i, y2+j, img2); *imgdiff++ = g1- g2*alpha-belta; - } + } } @@ -173,7 +173,7 @@ static void _computeIntensityDifferenceLightingInsensitive( * _computeGradientSumLightingInsensitive * * Given two gradients and the window center in both images, - * aligns the gradients wrt the window and computes the sum of the two + * aligns the gradients wrt the window and computes the sum of the two * overlaid gradients; normalizes for overall gain and bias. */ @@ -184,7 +184,7 @@ static void _computeGradientSumLightingInsensitive( _KLT_FloatImage grady2, _KLT_FloatImage img1, /* images */ _KLT_FloatImage img2, - + float x1, float y1, /* center of window in 1st img */ float x2, float y2, /* center of window in 2nd img */ int width, int height, /* size of window */ @@ -194,7 +194,7 @@ static void _computeGradientSumLightingInsensitive( int hw = width/2, hh = height/2; float g1, g2, sum1_squared = 0, sum2_squared = 0; int i, j; - + float mean1, mean2, alpha; for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { @@ -205,7 +205,7 @@ static void _computeGradientSumLightingInsensitive( mean1 = sum1_squared/(width*height); mean2 = sum2_squared/(width*height); alpha = (float) sqrt(mean1/mean2); - + /* Compute values */ for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { @@ -215,7 +215,7 @@ static void _computeGradientSumLightingInsensitive( g1 = _interpolate(x1+i, y1+j, grady1); g2 = _interpolate(x2+i, y2+j, grady2); *grady++ = g1+ g2*alpha; - } + } } /********************************************************************* @@ -229,8 +229,8 @@ static void _compute2by2GradientMatrix( int width, /* size of window */ int height, float *gxx, /* return values */ - float *gxy, - float *gyy) + float *gxy, + float *gyy) { float gx, gy; @@ -246,8 +246,8 @@ static void _compute2by2GradientMatrix( *gyy += gy*gy; } } - - + + /********************************************************************* * _compute2by1ErrorVector * @@ -267,7 +267,7 @@ static void _compute2by1ErrorVector( int i; /* Compute values */ - *ex = 0; *ey = 0; + *ex = 0; *ey = 0; for (i = 0 ; i < width * height ; i++) { diff = *imgdiff++; *ex += diff * (*gradx++); @@ -297,7 +297,7 @@ static int _solveEquation( { float det = gxx*gyy - gxy*gxy; - + if (det < small) return KLT_SMALL_DET; *dx = (gyy*ex - gxy*ey)/det; @@ -309,7 +309,7 @@ static int _solveEquation( /********************************************************************* * _allocateFloatWindow */ - + static _FloatWindow _allocateFloatWindow( int width, int height) @@ -347,7 +347,7 @@ static void _printFloatWindow( } } */ - + /********************************************************************* * _sumAbsFloatWindow @@ -385,10 +385,10 @@ static int _trackFeature( float y1, float *x2, /* starting location of search in second image */ float *y2, - _KLT_FloatImage img1, + _KLT_FloatImage img1, _KLT_FloatImage gradx1, _KLT_FloatImage grady1, - _KLT_FloatImage img2, + _KLT_FloatImage img2, _KLT_FloatImage gradx2, _KLT_FloatImage grady2, int width, /* size of window */ @@ -410,7 +410,7 @@ static int _trackFeature( int nr = img1->nrows; float one_plus_eps = 1.001f; /* To prevent rounding errors */ - + /* Allocate memory for windows */ imgdiff = _allocateFloatWindow(width, height); gradx = _allocateFloatWindow(width, height); @@ -430,24 +430,24 @@ static int _trackFeature( /* Compute gradient and difference windows */ if (lighting_insensitive) { - _computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2, + _computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2, width, height, imgdiff); - _computeGradientSumLightingInsensitive(gradx1, grady1, gradx2, grady2, + _computeGradientSumLightingInsensitive(gradx1, grady1, gradx2, grady2, img1, img2, x1, y1, *x2, *y2, width, height, gradx, grady); } else { - _computeIntensityDifference(img1, img2, x1, y1, *x2, *y2, + _computeIntensityDifference(img1, img2, x1, y1, *x2, *y2, width, height, imgdiff); - _computeGradientSum(gradx1, grady1, gradx2, grady2, + _computeGradientSum(gradx1, grady1, gradx2, grady2, x1, y1, *x2, *y2, width, height, gradx, grady); } - + /* Use these windows to construct matrices */ - _compute2by2GradientMatrix(gradx, grady, width, height, + _compute2by2GradientMatrix(gradx, grady, width, height, &gxx, &gxy, &gyy); _compute2by1ErrorVector(imgdiff, gradx, grady, width, height, step_factor, &ex, &ey); - + /* Using matrices, solve equation for new displacement */ status = _solveEquation(gxx, gxy, gyy, ex, ey, small, &dx, &dy); if (status == KLT_SMALL_DET) break; @@ -459,19 +459,19 @@ static int _trackFeature( } while ((fabs(dx)>=th || fabs(dy)>=th) && iteration < max_iterations); /* Check whether window is out of bounds */ - if (*x2-hw < 0.0f || nc-(*x2+hw) < one_plus_eps || + if (*x2-hw < 0.0f || nc-(*x2+hw) < one_plus_eps || *y2-hh < 0.0f || nr-(*y2+hh) < one_plus_eps) status = KLT_OOB; /* Check whether residue is too large */ if (status == KLT_TRACKED) { if (lighting_insensitive) - _computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2, + _computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2, width, height, imgdiff); else - _computeIntensityDifference(img1, img2, x1, y1, *x2, *y2, + _computeIntensityDifference(img1, img2, x1, y1, *x2, *y2, width, height, imgdiff); - if (_sumAbsFloatWindow(imgdiff, width, height)/(width*height) > max_residue) + if (_sumAbsFloatWindow(imgdiff, width, height)/(width*height) > max_residue) status = KLT_LARGE_RESIDUE; } @@ -505,25 +505,25 @@ static KLT_BOOL _outOfBounds( -/********************************************************************** +/********************************************************************** * CONSISTENCY CHECK OF FEATURES BY AFFINE MAPPING (BEGIN) -* -* Created by: Thorsten Thormaehlen (University of Hannover) June 2004 +* +* Created by: Thorsten Thormaehlen (University of Hannover) June 2004 * thormae@tnt.uni-hannover.de -* +* * Permission is granted to any individual or institution to use, copy, modify, -* and distribute this part of the software, provided that this complete authorship -* and permission notice is maintained, intact, in all copies. +* and distribute this part of the software, provided that this complete authorship +* and permission notice is maintained, intact, in all copies. * * This software is provided "as is" without express or implied warranty. * * * The following static functions are helpers for the affine mapping. -* They all start with "_am". +* They all start with "_am". * There are also small changes in other files for the * affine mapping these are all marked by "for affine mapping" -* -* Thanks to Kevin Koeser (koeser@mip.informatik.uni-kiel.de) for fixing a bug +* +* Thanks to Kevin Koeser (koeser@mip.informatik.uni-kiel.de) for fixing a bug */ #define SWAP_ME(X,Y) {temp=(X);(X)=(Y);(Y)=temp;} @@ -613,7 +613,7 @@ static int _am_gauss_jordan_elimination(float **a, int n, float **b, int m) /********************************************************************* * _am_getGradientWinAffine * - * aligns the gradients with the affine transformed window + * aligns the gradients with the affine transformed window */ static void _am_getGradientWinAffine( @@ -628,7 +628,7 @@ static void _am_getGradientWinAffine( int hw = width/2, hh = height/2; int i, j; float mi, mj; - + /* Compute values */ for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { @@ -637,19 +637,19 @@ static void _am_getGradientWinAffine( *out_gradx++ = _interpolate(x+mi, y+mj, in_gradx); *out_grady++ = _interpolate(x+mi, y+mj, in_grady); } - + } ///********************************************************************* // * _computeAffineMappedImage // * used only for DEBUG output -// * +// * //*/ // //static void _am_computeAffineMappedImage( // _KLT_FloatImage img, /* images */ // float x, float y, /* center of window */ -// float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */ +// float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */ // int width, int height, /* size of window */ // _FloatWindow imgdiff) /* output */ //{ @@ -679,14 +679,14 @@ static void _am_getSubFloatImage( int hw = window->ncols/2, hh = window->nrows/2; int x0 = (int) x; int y0 = (int) y; - float * windata = window->data; + float * windata = window->data; int offset; int i, j; assert(x0 - hw >= 0); assert(y0 - hh >= 0); assert(x0 + hw <= img->ncols); - assert(y0 + hh <= img->nrows); + assert(y0 + hh <= img->nrows); /* copy values */ for (j = -hh ; j <= hh ; j++) @@ -700,10 +700,10 @@ static void _am_getSubFloatImage( * _am_computeIntensityDifferenceAffine * * Given two images and the window center in both images, - * aligns the images with the window and computes the difference + * aligns the images with the window and computes the difference * between the two overlaid images using the affine mapping. * A = [ Axx Axy] - * [ Ayx Ayy] + * [ Ayx Ayy] */ static void _am_computeIntensityDifferenceAffine( @@ -711,7 +711,7 @@ static void _am_computeIntensityDifferenceAffine( _KLT_FloatImage img2, float x1, float y1, /* center of window in 1st img */ float x2, float y2, /* center of window in 2nd img */ - float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */ + float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */ int width, int height, /* size of window */ _FloatWindow imgdiff) /* output */ { @@ -746,15 +746,15 @@ static void _am_compute6by6GradientMatrix( int hw = width/2, hh = height/2; int i, j; float gx, gy, gxx, gxy, gyy, x, y, xx, xy, yy; - - - /* Set values to zero */ + + + /* Set values to zero */ for (j = 0 ; j < 6 ; j++) { for (i = j ; i < 6 ; i++) { T[j][i] = 0.0; } } - + for (j = -hh ; j <= hh ; j++) { for (i = -hw ; i <= hw ; i++) { gx = *gradx++; @@ -762,41 +762,41 @@ static void _am_compute6by6GradientMatrix( gxx = gx * gx; gxy = gx * gy; gyy = gy * gy; - x = (float) i; - y = (float) j; + x = (float) i; + y = (float) j; xx = x * x; xy = x * y; yy = y * y; - - T[0][0] += xx * gxx; + + T[0][0] += xx * gxx; T[0][1] += xx * gxy; T[0][2] += xy * gxx; T[0][3] += xy * gxy; T[0][4] += x * gxx; T[0][5] += x * gxy; - + T[1][1] += xx * gyy; T[1][2] += xy * gxy; T[1][3] += xy * gyy; T[1][4] += x * gxy; T[1][5] += x * gyy; - + T[2][2] += yy * gxx; T[2][3] += yy * gxy; T[2][4] += y * gxx; T[2][5] += y * gxy; - + T[3][3] += yy * gyy; T[3][4] += y * gxy; - T[3][5] += y * gyy; + T[3][5] += y * gyy; - T[4][4] += gxx; + T[4][4] += gxx; T[4][5] += gxy; - - T[5][5] += gyy; + + T[5][5] += gyy; } } - + for (j = 0 ; j < 5 ; j++) { for (i = j+1 ; i < 6 ; i++) { T[i][j] = T[j][i]; @@ -824,9 +824,9 @@ static void _am_compute6by1ErrorVector( int i, j; float diff, diffgradx, diffgrady; - /* Set values to zero */ - for(i = 0; i < 6; i++) e[i][0] = 0.0; - + /* Set values to zero */ + for(i = 0; i < 6; i++) e[i][0] = 0.0; + /* Compute values */ for (j = -hh ; j <= hh ; j++) { for (i = -hw ; i <= hw ; i++) { @@ -835,15 +835,15 @@ static void _am_compute6by1ErrorVector( diffgrady = diff * (*grady++); e[0][0] += diffgradx * i; e[1][0] += diffgrady * i; - e[2][0] += diffgradx * j; - e[3][0] += diffgrady * j; + e[2][0] += diffgradx * j; + e[3][0] += diffgrady * j; e[4][0] += diffgradx; - e[5][0] += diffgrady; + e[5][0] += diffgrady; } } - + for(i = 0; i < 6; i++) e[i][0] *= 0.5; - + } @@ -862,37 +862,37 @@ static void _am_compute4by4GradientMatrix( int hw = width/2, hh = height/2; int i, j; float gx, gy, x, y; - - - /* Set values to zero */ + + + /* Set values to zero */ for (j = 0 ; j < 4 ; j++) { for (i = 0 ; i < 4 ; i++) { T[j][i] = 0.0; } } - + for (j = -hh ; j <= hh ; j++) { for (i = -hw ; i <= hw ; i++) { gx = *gradx++; gy = *grady++; - x = (float) i; - y = (float) j; + x = (float) i; + y = (float) j; T[0][0] += (x*gx+y*gy) * (x*gx+y*gy); T[0][1] += (x*gx+y*gy)*(x*gy-y*gx); T[0][2] += (x*gx+y*gy)*gx; T[0][3] += (x*gx+y*gy)*gy; - + T[1][1] += (x*gy-y*gx) * (x*gy-y*gx); T[1][2] += (x*gy-y*gx)*gx; T[1][3] += (x*gy-y*gx)*gy; - + T[2][2] += gx*gx; T[2][3] += gx*gy; - + T[3][3] += gy*gy; } } - + for (j = 0 ; j < 3 ; j++) { for (i = j+1 ; i < 4 ; i++) { T[i][j] = T[j][i]; @@ -918,9 +918,9 @@ static void _am_compute4by1ErrorVector( int i, j; float diff, diffgradx, diffgrady; - /* Set values to zero */ - for(i = 0; i < 4; i++) e[i][0] = 0.0; - + /* Set values to zero */ + for(i = 0; i < 4; i++) e[i][0] = 0.0; + /* Compute values */ for (j = -hh ; j <= hh ; j++) { for (i = -hw ; i <= hw ; i++) { @@ -933,9 +933,9 @@ static void _am_compute4by1ErrorVector( e[3][0] += diffgrady; } } - + for(i = 0; i < 4; i++) e[i][0] *= 0.5; - + } @@ -950,7 +950,7 @@ static void _am_compute4by1ErrorVector( * KLT_TRACKED otherwise. */ -/* if you enalbe the DEBUG_AFFINE_MAPPING make sure you have created a directory "./debug" */ +/* if you enable the DEBUG_AFFINE_MAPPING make sure you have created a directory "./debug" */ /* #define DEBUG_AFFINE_MAPPING */ #ifdef DEBUG_AFFINE_MAPPING @@ -963,10 +963,10 @@ static int _am_trackFeatureAffine( float y1, float *x2, /* starting location of search in second image */ float *y2, - _KLT_FloatImage img1, + _KLT_FloatImage img1, _KLT_FloatImage gradx1, _KLT_FloatImage grady1, - _KLT_FloatImage img2, + _KLT_FloatImage img2, _KLT_FloatImage gradx2, _KLT_FloatImage grady2, int width, /* size of window */ @@ -980,7 +980,7 @@ static int _am_trackFeatureAffine( int lighting_insensitive, /* whether to normalize for gain and bias */ int affine_map, /* whether to evaluates the consistency of features with affine mapping */ float mdd, /* difference between the displacements */ - float *Axx, float *Ayx, + float *Axx, float *Ayx, float *Axy, float *Ayy) /* used affine mapping */ { @@ -996,7 +996,7 @@ static int _am_trackFeatureAffine( int nc2 = img2->ncols; int nr2 = img2->nrows; float **a; - float **T; + float **T; float one_plus_eps = 1.001f; /* To prevent rounding errors */ float old_x2 = *x2; float old_y2 = *y2; @@ -1007,7 +1007,7 @@ static int _am_trackFeatureAffine( _KLT_FloatImage aff_diff_win = _KLTCreateFloatImage(width,height); printf("starting location x2=%f y2=%f\n", *x2, *y2); #endif - + /* Allocate memory for windows */ imgdiff = _allocateFloatWindow(width, height); gradx = _allocateFloatWindow(width, height); @@ -1019,7 +1019,7 @@ static int _am_trackFeatureAffine( do { if(!affine_map) { /* pure translation tracker */ - + /* If out of bounds, exit loop */ if ( x1-hw < 0.0f || nc1-( x1+hw) < one_plus_eps || *x2-hw < 0.0f || nc2-(*x2+hw) < one_plus_eps || @@ -1028,47 +1028,47 @@ static int _am_trackFeatureAffine( status = KLT_OOB; break; } - + /* Compute gradient and difference windows */ if (lighting_insensitive) { - _computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2, + _computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2, width, height, imgdiff); - _computeGradientSumLightingInsensitive(gradx1, grady1, gradx2, grady2, + _computeGradientSumLightingInsensitive(gradx1, grady1, gradx2, grady2, img1, img2, x1, y1, *x2, *y2, width, height, gradx, grady); } else { - _computeIntensityDifference(img1, img2, x1, y1, *x2, *y2, + _computeIntensityDifference(img1, img2, x1, y1, *x2, *y2, width, height, imgdiff); - _computeGradientSum(gradx1, grady1, gradx2, grady2, + _computeGradientSum(gradx1, grady1, gradx2, grady2, x1, y1, *x2, *y2, width, height, gradx, grady); } - -#ifdef DEBUG_AFFINE_MAPPING + +#ifdef DEBUG_AFFINE_MAPPING aff_diff_win->data = imgdiff; sprintf(fname, "./debug/kltimg_trans_diff_win%03d.%03d.pgm", glob_index, counter); printf("%s\n", fname); _KLTWriteAbsFloatImageToPGM(aff_diff_win, fname,256.0); printf("iter = %d translation tracker res: %f\n", iteration, _sumAbsFloatWindow(imgdiff, width, height)/(width*height)); #endif - + /* Use these windows to construct matrices */ - _compute2by2GradientMatrix(gradx, grady, width, height, + _compute2by2GradientMatrix(gradx, grady, width, height, &gxx, &gxy, &gyy); _compute2by1ErrorVector(imgdiff, gradx, grady, width, height, step_factor, &ex, &ey); - + /* Using matrices, solve equation for new displacement */ status = _solveEquation(gxx, gxy, gyy, ex, ey, small, &dx, &dy); convergence = (fabs(dx) < th && fabs(dy) < th); - + *x2 += dx; *y2 += dy; - + }else{ /* affine tracker */ - + float ul_x = *Axx * (-hw) + *Axy * hh + *x2; /* upper left corner */ - float ul_y = *Ayx * (-hw) + *Ayy * hh + *y2; + float ul_y = *Ayx * (-hw) + *Ayy * hh + *y2; float ll_x = *Axx * (-hw) + *Axy * (-hh) + *x2; /* lower left corner */ float ll_y = *Ayx * (-hw) + *Ayy * (-hh) + *y2; float ur_x = *Axx * hw + *Axy * hh + *x2; /* upper right corner */ @@ -1098,25 +1098,25 @@ static int _am_trackFeatureAffine( sprintf(fname, "./debug/kltimg_aff_diff_win%03d.%03d_1.pgm", glob_index, counter); printf("%s\n", fname); _KLTWriteAbsFloatImageToPGM(aff_diff_win, fname,256.0); - + _am_computeAffineMappedImage(img2, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy, width, height, imgdiff); aff_diff_win->data = imgdiff; sprintf(fname, "./debug/kltimg_aff_diff_win%03d.%03d_2.pgm", glob_index, counter); printf("%s\n", fname); _KLTWriteAbsFloatImageToPGM(aff_diff_win, fname,256.0); #endif - + _am_computeIntensityDifferenceAffine(img1, img2, x1, y1, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy, width, height, imgdiff); -#ifdef DEBUG_AFFINE_MAPPING +#ifdef DEBUG_AFFINE_MAPPING aff_diff_win->data = imgdiff; sprintf(fname, "./debug/kltimg_aff_diff_win%03d.%03d_3.pgm", glob_index,counter); printf("%s\n", fname); _KLTWriteAbsFloatImageToPGM(aff_diff_win, fname,256.0); - + printf("iter = %d affine tracker res: %f\n", iteration, _sumAbsFloatWindow(imgdiff, width, height)/(width*height)); -#endif - +#endif + _am_getGradientWinAffine(gradx2, grady2, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy, width, height, gradx, grady); @@ -1124,24 +1124,24 @@ static int _am_trackFeatureAffine( case 1: _am_compute4by1ErrorVector(imgdiff, gradx, grady, width, height, a); _am_compute4by4GradientMatrix(gradx, grady, width, height, T); - + status = _am_gauss_jordan_elimination(T,4,a,1); - + *Axx += a[0][0]; *Ayx += a[1][0]; *Ayy = *Axx; *Axy = -(*Ayx); - + dx = a[2][0]; dy = a[3][0]; - + break; case 2: _am_compute6by1ErrorVector(imgdiff, gradx, grady, width, height, a); _am_compute6by6GradientMatrix(gradx, grady, width, height, T); - + status = _am_gauss_jordan_elimination(T,6,a,1); - + *Axx += a[0][0]; *Ayx += a[1][0]; *Axy += a[2][0]; @@ -1149,30 +1149,30 @@ static int _am_trackFeatureAffine( dx = a[4][0]; dy = a[5][0]; - + break; } - + *x2 += dx; *y2 += dy; - + /* old upper left corner - new upper left corner */ - ul_x -= *Axx * (-hw) + *Axy * hh + *x2; - ul_y -= *Ayx * (-hw) + *Ayy * hh + *y2; + ul_x -= *Axx * (-hw) + *Axy * hh + *x2; + ul_y -= *Ayx * (-hw) + *Ayy * hh + *y2; /* old lower left corner - new lower left corner */ - ll_x -= *Axx * (-hw) + *Axy * (-hh) + *x2; + ll_x -= *Axx * (-hw) + *Axy * (-hh) + *x2; ll_y -= *Ayx * (-hw) + *Ayy * (-hh) + *y2; /* old upper right corner - new upper right corner */ - ur_x -= *Axx * hw + *Axy * hh + *x2; + ur_x -= *Axx * hw + *Axy * hh + *x2; ur_y -= *Ayx * hw + *Ayy * hh + *y2; /* old lower right corner - new lower right corner */ - lr_x -= *Axx * hw + *Axy * (-hh) + *x2; + lr_x -= *Axx * hw + *Axy * (-hh) + *x2; lr_y -= *Ayx * hw + *Ayy * (-hh) + *y2; -#ifdef DEBUG_AFFINE_MAPPING +#ifdef DEBUG_AFFINE_MAPPING printf ("iter = %d, ul_x=%f ul_y=%f ll_x=%f ll_y=%f ur_x=%f ur_y=%f lr_x=%f lr_y=%f \n", iteration, ul_x, ul_y, ll_x, ll_y, ur_x, ur_y, lr_x, lr_y); -#endif +#endif convergence = (fabs(dx) < th && fabs(dy) < th && fabs(ul_x) < th_aff && fabs(ul_y) < th_aff && @@ -1180,19 +1180,19 @@ static int _am_trackFeatureAffine( fabs(ur_x) < th_aff && fabs(ur_y) < th_aff && fabs(lr_x) < th_aff && fabs(lr_y) < th_aff); } - + if (status == KLT_SMALL_DET) break; iteration++; -#ifdef DEBUG_AFFINE_MAPPING +#ifdef DEBUG_AFFINE_MAPPING printf ("iter = %d, x1=%f, y1=%f, x2=%f, y2=%f, Axx=%f, Ayx=%f , Axy=%f, Ayy=%f \n",iteration, x1, y1, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy); -#endif - } while ( !convergence && iteration < max_iterations); +#endif + } while ( !convergence && iteration < max_iterations); /*} while ( (fabs(dx)>=th || fabs(dy)>=th || (affine_map && iteration < 8) ) && iteration < max_iterations); */ _am_free_matrix(T); _am_free_matrix(a); /* Check whether window is out of bounds */ - if (*x2-hw < 0.0f || nc2-(*x2+hw) < one_plus_eps || + if (*x2-hw < 0.0f || nc2-(*x2+hw) < one_plus_eps || *y2-hh < 0.0f || nr2-(*y2+hh) < one_plus_eps) status = KLT_OOB; @@ -1203,7 +1203,7 @@ static int _am_trackFeatureAffine( /* Check whether residue is too large */ if (status == KLT_TRACKED) { if(!affine_map){ - _computeIntensityDifference(img1, img2, x1, y1, *x2, *y2, + _computeIntensityDifference(img1, img2, x1, y1, *x2, *y2, width, height, imgdiff); }else{ _am_computeIntensityDifferenceAffine(img1, img2, x1, y1, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy, @@ -1211,8 +1211,8 @@ static int _am_trackFeatureAffine( } #ifdef DEBUG_AFFINE_MAPPING printf("iter = %d final_res = %f\n", iteration, _sumAbsFloatWindow(imgdiff, width, height)/(width*height)); -#endif - if (_sumAbsFloatWindow(imgdiff, width, height)/(width*height) > max_residue) +#endif + if (_sumAbsFloatWindow(imgdiff, width, height)/(width*height) > max_residue) status = KLT_LARGE_RESIDUE; } @@ -1222,8 +1222,8 @@ static int _am_trackFeatureAffine( #ifdef DEBUG_AFFINE_MAPPING printf("iter = %d status=%d\n", iteration, status); _KLTFreeFloatImage( aff_diff_win ); -#endif - +#endif + /* Return appropriate value */ return status; } @@ -1313,7 +1313,7 @@ void KLTTrackFeatures( pyramid1_gradx = _KLTCreatePyramid(ncols, nrows, (int) subsampling, tc->nPyramidLevels); pyramid1_grady = _KLTCreatePyramid(ncols, nrows, (int) subsampling, tc->nPyramidLevels); for (i = 0 ; i < tc->nPyramidLevels ; i++) - _KLTComputeGradients(pyramid1->img[i], tc->grad_sigma, + _KLTComputeGradients(pyramid1->img[i], tc->grad_sigma, pyramid1_gradx->img[i], pyramid1_grady->img[i]); } @@ -1327,7 +1327,7 @@ void KLTTrackFeatures( pyramid2_gradx = _KLTCreatePyramid(ncols, nrows, (int) subsampling, tc->nPyramidLevels); pyramid2_grady = _KLTCreatePyramid(ncols, nrows, (int) subsampling, tc->nPyramidLevels); for (i = 0 ; i < tc->nPyramidLevels ; i++) - _KLTComputeGradients(pyramid2->img[i], tc->grad_sigma, + _KLTComputeGradients(pyramid2->img[i], tc->grad_sigma, pyramid2_gradx->img[i], pyramid2_grady->img[i]); @@ -1372,11 +1372,11 @@ void KLTTrackFeatures( xloc *= subsampling; yloc *= subsampling; xlocout *= subsampling; ylocout *= subsampling; - val = _trackFeature(xloc, yloc, + val = _trackFeature(xloc, yloc, &xlocout, &ylocout, - pyramid1->img[r], - pyramid1_gradx->img[r], pyramid1_grady->img[r], - pyramid2->img[r], + pyramid1->img[r], + pyramid1_gradx->img[r], pyramid1_grady->img[r], + pyramid2->img[r], pyramid2_gradx->img[r], pyramid2_grady->img[r], tc->window_width, tc->window_height, tc->step_factor, @@ -1449,7 +1449,7 @@ void KLTTrackFeatures( if (tc->affineConsistencyCheck >= 0 && val == KLT_TRACKED) { /*for affine mapping*/ int border = 2; /* add border for interpolation */ -#ifdef DEBUG_AFFINE_MAPPING +#ifdef DEBUG_AFFINE_MAPPING glob_index = indx; #endif @@ -1467,10 +1467,10 @@ void KLTTrackFeatures( /* affine tracking */ val = _am_trackFeatureAffine(featurelist->feature[indx]->aff_x, featurelist->feature[indx]->aff_y, &xlocout, &ylocout, - featurelist->feature[indx]->aff_img, - featurelist->feature[indx]->aff_img_gradx, + featurelist->feature[indx]->aff_img, + featurelist->feature[indx]->aff_img_gradx, featurelist->feature[indx]->aff_img_grady, - pyramid2->img[0], + pyramid2->img[0], pyramid2_gradx->img[0], pyramid2_grady->img[0], tc->affine_window_width, tc->affine_window_height, tc->step_factor, @@ -1478,14 +1478,14 @@ void KLTTrackFeatures( tc->min_determinant, tc->min_displacement, tc->affine_min_displacement, - tc->affine_max_residue, + tc->affine_max_residue, tc->lighting_insensitive, tc->affineConsistencyCheck, tc->affine_max_displacement_differ, &featurelist->feature[indx]->aff_Axx, &featurelist->feature[indx]->aff_Ayx, &featurelist->feature[indx]->aff_Axy, - &featurelist->feature[indx]->aff_Ayy + &featurelist->feature[indx]->aff_Ayy ); featurelist->feature[indx]->val = val; if(val != KLT_TRACKED){ @@ -1538,5 +1538,3 @@ void KLTTrackFeatures( } } - - diff --git a/rtengine/labimage.cc b/rtengine/labimage.cc index bcadda0ed..f4e13049a 100644 --- a/rtengine/labimage.cc +++ b/rtengine/labimage.cc @@ -101,6 +101,6 @@ void LabImage::deleteLab() void LabImage::reallocLab() { allocLab(W, H); -}; +} } diff --git a/rtengine/lcp.cc b/rtengine/lcp.cc index a1484cdf6..34ad7a545 100644 --- a/rtengine/lcp.cc +++ b/rtengine/lcp.cc @@ -760,12 +760,13 @@ void XMLCALL rtengine::LCPProfile::XmlStartHandler(void* pLCPProfile, const char ++src; } - strcpy(pProf->lastTag, src); - + strncpy(pProf->lastTag, src, sizeof(pProf->lastTag) - 1); + pProf->lastTag[sizeof(pProf->lastTag) - 1] = 0; const std::string src_str = src; if (src_str == "VignetteModelPiecewiseParam") { - strcpy(pProf->inInvalidTag, src); + strncpy(pProf->inInvalidTag, src, sizeof(pProf->inInvalidTag) - 1); + pProf->inInvalidTag[sizeof(pProf->inInvalidTag) - 1] = 0; } if (src_str == "CameraProfiles") { @@ -931,7 +932,12 @@ std::shared_ptr rtengine::LCPStore::getProfile(const Glib: std::shared_ptr res; if (!cache.get(filename, res)) { - res.reset(new LCPProfile(filename)); + try { + res.reset(new LCPProfile(filename)); + } catch (...) { + return nullptr; + } + cache.set(filename, res); } diff --git a/rtengine/lcp.h b/rtengine/lcp.h index b50fd335e..2d9707907 100644 --- a/rtengine/lcp.h +++ b/rtengine/lcp.h @@ -131,8 +131,8 @@ private: bool inPerspect; bool inAlternateLensID; bool inAlternateLensNames; - char lastTag[256]; - char inInvalidTag[256]; + char lastTag[257]; + char inInvalidTag[257]; LCPPersModel* pCurPersModel; LCPModelCommon* pCurCommon; @@ -153,7 +153,7 @@ public: Glib::ustring getDefaultCommonDirectory() const; private: - LCPStore(unsigned int _cache_size = 32); + explicit LCPStore(unsigned int _cache_size = 32); // Maps file name to profile as cache mutable Cache> cache; @@ -190,11 +190,11 @@ public: ); - void correctDistortion(double &x, double &y, int cx, int cy, double scale) const; // MUST be the first stage - bool isCACorrectionAvailable() const; - void correctCA(double& x, double& y, int cx, int cy, int channel) const; - void processVignetteLine(int width, int y, float* line) const; - void processVignetteLine3Channels(int width, int y, float* line) const; + void correctDistortion(double &x, double &y, int cx, int cy, double scale) const override; // MUST be the first stage + bool isCACorrectionAvailable() const override; + void correctCA(double& x, double& y, int cx, int cy, int channel) const override; + void processVignetteLine(int width, int y, float* line) const override; + void processVignetteLine3Channels(int width, int y, float* line) const override; private: bool enableCA; // is the mapper capable if CA correction? diff --git a/rtengine/lj92.c b/rtengine/lj92.c index cfdae6bf9..c4f1cc15c 100644 --- a/rtengine/lj92.c +++ b/rtengine/lj92.c @@ -89,7 +89,7 @@ static int parseHuff(ljp* self) { u8* huffhead = &self->data[self->ix]; // xstruct.unpack('>HB16B',self.data[self.ix:self.ix+19]) u8* bits = &huffhead[2]; bits[0] = 0; // Because table starts from 1 - int hufflen = BEH(huffhead[0]); + unsigned int hufflen = BEH(huffhead[0]); if ((self->ix + hufflen) >= self->datalen) return ret; #ifdef SLOW_HUFF u8* huffval = calloc(hufflen - 19,sizeof(u8)); @@ -546,8 +546,10 @@ static int parseScan(ljp* self) { Px = left + lastrow[col] - lastrow[col-1];break; case 5: Px = left + ((lastrow[col] - lastrow[col-1])>>1);break; + /* case 6 has a shortcut above case 6: Px = lastrow[col] + ((left - lastrow[col-1])>>1);break; + */ case 7: Px = (left + lastrow[col])>>1;break; } diff --git a/rtengine/pdaflinesfilter.cc b/rtengine/pdaflinesfilter.cc index ee279f3c0..0c5b2d786 100644 --- a/rtengine/pdaflinesfilter.cc +++ b/rtengine/pdaflinesfilter.cc @@ -62,7 +62,7 @@ public: ++r[col / TILE_SIZE]; } - float operator()(int row, int col) const + float operator()(int row, int col) const override { int y = row / TILE_SIZE; int x = col / TILE_SIZE; @@ -136,7 +136,7 @@ public: offset_(offset) {} - float operator()(int row) const + float operator()(int row) const override { static constexpr float BORDER[] = { 1.f, 1.f, 0.8f, 0.5f, 0.2f }; static constexpr int BORDER_WIDTH = sizeof(BORDER)/sizeof(float) - 1; @@ -171,7 +171,8 @@ private: PDAFLinesFilter::PDAFLinesFilter(RawImage *ri): ri_(ri), W_(ri->get_width()), - H_(ri->get_height()) + H_(ri->get_height()), + offset_(0) { gthresh_ = new PDAFGreenEqulibrateThreshold(W_, H_); diff --git a/rtengine/pdaflinesfilter.h b/rtengine/pdaflinesfilter.h index 9837db5b6..b1f7bf650 100644 --- a/rtengine/pdaflinesfilter.h +++ b/rtengine/pdaflinesfilter.h @@ -27,7 +27,7 @@ namespace rtengine { class PDAFLinesFilter { public: - PDAFLinesFilter(RawImage *ri); + explicit PDAFLinesFilter(RawImage *ri); ~PDAFLinesFilter(); int mark(array2D &rawData, PixelsMap &bpMap); diff --git a/rtengine/processingjob.h b/rtengine/processingjob.h index c7f49192e..026bd4924 100644 --- a/rtengine/processingjob.h +++ b/rtengine/processingjob.h @@ -43,14 +43,14 @@ public: iImage->increaseRef(); } - ~ProcessingJobImpl () + ~ProcessingJobImpl () override { if (initialImage) { initialImage->decreaseRef(); } } - bool fastPipeline() const { return fast; } + bool fastPipeline() const override { return fast; } }; } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index b82a7d440..9addfdce9 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -611,7 +611,9 @@ ColorToningParams::LabCorrectionRegion::LabCorrectionRegion(): a(0), b(0), saturation(0), - lightness(0), + slope(1), + offset(0), + power(1), hueMask{ FCT_MinMaxCPoints, 0.166666667, @@ -644,7 +646,9 @@ ColorToningParams::LabCorrectionRegion::LabCorrectionRegion(): 1., 0.35, 0.35 - } + }, + maskBlur(0), + channel(ColorToningParams::LabCorrectionRegion::CHAN_ALL) { } @@ -654,10 +658,14 @@ bool ColorToningParams::LabCorrectionRegion::operator==(const LabCorrectionRegio return a == other.a && b == other.b && saturation == other.saturation - && lightness == other.lightness + && slope == other.slope + && offset == other.offset + && power == other.power && hueMask == other.hueMask && chromaticityMask == other.chromaticityMask - && lightnessMask == other.lightnessMask; + && lightnessMask == other.lightnessMask + && maskBlur == other.maskBlur + && channel == other.channel; } @@ -3479,10 +3487,14 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo putToKeyfile("ColorToning", Glib::ustring("LabRegionA_") + n, l.a, keyFile); putToKeyfile("ColorToning", Glib::ustring("LabRegionB_") + n, l.b, keyFile); putToKeyfile("ColorToning", Glib::ustring("LabRegionSaturation_") + n, l.saturation, keyFile); - putToKeyfile("ColorToning", Glib::ustring("LabRegionLightness_") + n, l.lightness, keyFile); + putToKeyfile("ColorToning", Glib::ustring("LabRegionSlope_") + n, l.slope, keyFile); + putToKeyfile("ColorToning", Glib::ustring("LabRegionOffset_") + n, l.offset, keyFile); + putToKeyfile("ColorToning", Glib::ustring("LabRegionPower_") + n, l.power, keyFile); putToKeyfile("ColorToning", Glib::ustring("LabRegionHueMask_") + n, l.hueMask, keyFile); putToKeyfile("ColorToning", Glib::ustring("LabRegionChromaticityMask_") + n, l.chromaticityMask, keyFile); putToKeyfile("ColorToning", Glib::ustring("LabRegionLightnessMask_") + n, l.lightnessMask, keyFile); + putToKeyfile("ColorToning", Glib::ustring("LabRegionMaskBlur_") + n, l.maskBlur, keyFile); + putToKeyfile("ColorToning", Glib::ustring("LabRegionChannel_") + n, l.channel, keyFile); } } saveToKeyfile(!pedited || pedited->colorToning.labregionsShowMask, "ColorToning", "LabRegionsShowMask", colorToning.labregionsShowMask, keyFile); @@ -4869,7 +4881,15 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) found = true; done = false; } - if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionLightness_") + n, pedited, cur.lightness, pedited->colorToning.labregions)) { + if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionSlope_") + n, pedited, cur.slope, pedited->colorToning.labregions)) { + found = true; + done = false; + } + if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionOffset_") + n, pedited, cur.offset, pedited->colorToning.labregions)) { + found = true; + done = false; + } + if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionPower_") + n, pedited, cur.power, pedited->colorToning.labregions)) { found = true; done = false; } @@ -4885,6 +4905,14 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) found = true; done = false; } + if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionMaskBlur_") + n, pedited, cur.maskBlur, pedited->colorToning.labregions)) { + found = true; + done = false; + } + if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionChannel_") + n, pedited, cur.channel, pedited->colorToning.labregions)) { + found = true; + done = false; + } if (!done) { lg.emplace_back(cur); } @@ -5081,8 +5109,6 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) } if (keyFile.has_group("Exif")) { - std::vector keys = keyFile.get_keys("Exif"); - for (const auto& key : keyFile.get_keys("Exif")) { exif[key] = keyFile.get_string("Exif", key); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index c81b17c62..79f3fc7ec 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -26,8 +26,6 @@ #include #include -#include "coord.h" -#include "LUT.h" #include "noncopyable.h" class ParamsEdited; @@ -456,13 +454,18 @@ struct ColorToningParams { static const double LABGRID_CORR_SCALE; struct LabCorrectionRegion { + enum { CHAN_ALL = -1, CHAN_R, CHAN_G, CHAN_B }; double a; double b; double saturation; - double lightness; + double slope; + double offset; + double power; std::vector hueMask; std::vector chromaticityMask; std::vector lightnessMask; + double maskBlur; + int channel; LabCorrectionRegion(); bool operator==(const LabCorrectionRegion &other) const; diff --git a/rtengine/rawimage.cc b/rtengine/rawimage.cc index 6ef110a03..ced3fbb23 100644 --- a/rtengine/rawimage.cc +++ b/rtengine/rawimage.cc @@ -30,9 +30,9 @@ RawImage::RawImage( const Glib::ustring &name ) , allocation(nullptr) { memset(maximum_c4, 0, sizeof(maximum_c4)); - RT_matrix_from_constant = 0; - RT_blacklevel_from_constant = 0; - RT_whitelevel_from_constant = 0; + RT_matrix_from_constant = ThreeValBool::X; + RT_blacklevel_from_constant = ThreeValBool::X; + RT_whitelevel_from_constant = ThreeValBool::X; } RawImage::~RawImage() @@ -479,13 +479,13 @@ int RawImage::loadRaw (bool loadData, unsigned int imageNum, bool closeFile, Pro iwidth = width; if (filters || colors == 1) { - raw_image = (ushort *) calloc ((raw_height + 7) * raw_width, 2); + raw_image = (ushort *) calloc ((static_cast(raw_height) + 7u) * static_cast(raw_width), 2); merror (raw_image, "main()"); } // dcraw needs this global variable to hold pixel data - image = (dcrawImage_t)calloc (height * width * sizeof * image + meta_length, 1); - meta_data = (char *) (image + height * width); + image = (dcrawImage_t)calloc (static_cast(height) * static_cast(width) * sizeof * image + meta_length, 1); + meta_data = (char *) (image + static_cast(height) * static_cast(width)); if(!image) { return 200; @@ -503,6 +503,10 @@ int RawImage::loadRaw (bool loadData, unsigned int imageNum, bool closeFile, Pro fseek (ifp, data_offset, SEEK_SET); (this->*load_raw)(); + if (!float_raw_image) { // apply baseline exposure only for float DNGs + RT_baseline_exposure = 0; + } + if (plistener) { plistener->setProgress(0.9 * progressRange); } @@ -599,14 +603,14 @@ int RawImage::loadRaw (bool loadData, unsigned int imageNum, bool closeFile, Pro if (cc) { for (int i = 0; i < 4; i++) { - if (RT_blacklevel_from_constant) { + if (RT_blacklevel_from_constant == ThreeValBool::T) { int blackFromCc = cc->get_BlackLevel(i, iso_speed); // if black level from camconst > 0xffff it is an absolute value. black_c4[i] = blackFromCc > 0xffff ? (blackFromCc & 0xffff) : blackFromCc + cblack[i]; } // load 4 channel white level here, will be used if available - if (RT_whitelevel_from_constant) { + if (RT_whitelevel_from_constant == ThreeValBool::T) { maximum_c4[i] = cc->get_WhiteLevel(i, iso_speed, aperture); if(tiff_bps > 0 && maximum_c4[i] > 0 && !isFoveon()) { @@ -673,7 +677,7 @@ int RawImage::loadRaw (bool loadData, unsigned int imageNum, bool closeFile, Pro return 0; } -float** RawImage::compress_image(int frameNum, bool freeImage) +float** RawImage::compress_image(unsigned int frameNum, bool freeImage) { if( !image ) { return nullptr; @@ -682,7 +686,7 @@ float** RawImage::compress_image(int frameNum, bool freeImage) if (isBayer() || isXtrans()) { if (!allocation) { // shift the beginning of all frames but the first by 32 floats to avoid cache miss conflicts on CPUs which have <= 4-way associative L1-Cache - allocation = new float[height * width + frameNum * 32]; + allocation = new float[static_cast(height) * static_cast(width) + frameNum * 32u]; data = new float*[height]; for (int i = 0; i < height; i++) { @@ -1049,16 +1053,31 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is *black_level = -1; *white_level = -1; + + const bool is_pentax_dng = dng_version && !strncmp(RT_software.c_str(), "PENTAX", 6); + + if (RT_blacklevel_from_constant == ThreeValBool::F && !is_pentax_dng) { + *black_level = black; + } + if (RT_whitelevel_from_constant == ThreeValBool::F && !is_pentax_dng) { + *white_level = maximum; + } memset(trans, 0, sizeof(*trans) * 12); - // indicate that DCRAW wants these from constants (rather than having loaded these from RAW file - // note: this is simplified so far, in some cases dcraw calls this when it has say the black level - // from file, but then we will not provide any black level in the tables. This case is mainly just - // to avoid loading table values if we have loaded a DNG conversion of a raw file (which already - // have constants stored in the file). - RT_whitelevel_from_constant = 1; - RT_blacklevel_from_constant = 1; - RT_matrix_from_constant = 1; + // // indicate that DCRAW wants these from constants (rather than having loaded these from RAW file + // // note: this is simplified so far, in some cases dcraw calls this when it has say the black level + // // from file, but then we will not provide any black level in the tables. This case is mainly just + // // to avoid loading table values if we have loaded a DNG conversion of a raw file (which already + // // have constants stored in the file). + // if (RT_whitelevel_from_constant == ThreeValBool::X || is_pentax_dng) { + // RT_whitelevel_from_constant = ThreeValBool::T; + // } + // if (RT_blacklevel_from_constant == ThreeValBool::X || is_pentax_dng) { + // RT_blacklevel_from_constant = ThreeValBool::T; + // } + // if (RT_matrix_from_constant == ThreeValBool::X) { + // RT_matrix_from_constant = ThreeValBool::T; + // } { // test if we have any information in the camera constants store, if so we take that. @@ -1066,10 +1085,14 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is rtengine::CameraConst *cc = ccs->get(make, model); if (cc) { - *black_level = cc->get_BlackLevel(0, iso_speed); - *white_level = cc->get_WhiteLevel(0, iso_speed, aperture); + if (RT_blacklevel_from_constant == ThreeValBool::T) { + *black_level = cc->get_BlackLevel(0, iso_speed); + } + if (RT_whitelevel_from_constant == ThreeValBool::T) { + *white_level = cc->get_WhiteLevel(0, iso_speed, aperture); + } - if (cc->has_dcrawMatrix()) { + if (RT_matrix_from_constant == ThreeValBool::T && cc->has_dcrawMatrix()) { const short *mx = cc->get_dcrawMatrix(); for (int j = 0; j < 12; j++) { @@ -1086,8 +1109,12 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is for (size_t i = 0; i < sizeof table / sizeof(table[0]); i++) { if (strcasecmp(name, table[i].prefix) == 0) { - *black_level = table[i].black_level; - *white_level = table[i].white_level; + if (RT_blacklevel_from_constant == ThreeValBool::T) { + *black_level = table[i].black_level; + } + if (RT_whitelevel_from_constant == ThreeValBool::T) { + *white_level = table[i].white_level; + } for (int j = 0; j < 12; j++) { trans[j] = table[i].trans[j]; diff --git a/rtengine/rawimage.h b/rtengine/rawimage.h index 7595ad196..0dabfef0d 100644 --- a/rtengine/rawimage.h +++ b/rtengine/rawimage.h @@ -121,10 +121,12 @@ public: { return image; } - float** compress_image(int frameNum, bool freeImage = true); // revert to compressed pixels format and release image data + float** compress_image(unsigned int frameNum, bool freeImage = true); // revert to compressed pixels format and release image data float** data; // holds pixel values, data[i][j] corresponds to the ith row and jth column unsigned prefilters; // original filters saved ( used for 4 color processing ) unsigned int getFrameCount() const { return is_raw; } + + double getBaselineExposure() const { return RT_baseline_exposure; } protected: Glib::ustring filename; // complete filename int rotate_deg; // 0,90,180,270 degree of rotation: info taken by dcraw from exif diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 9b8d3794e..89a66f6c3 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -716,6 +716,11 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima gm /= area; bm /= area; bool doHr = (hrp.hrenabled && hrp.method != "Color"); + const float expcomp = std::pow(2, ri->getBaselineExposure()); + rm *= expcomp; + gm *= expcomp; + bm *= expcomp; + #ifdef _OPENMP #pragma omp parallel if(!d1x) // omp disabled for D1x to avoid race conditions (see Issue 1088 http://code.google.com/p/rawtherapee/issues/detail?id=1088) { @@ -894,6 +899,10 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima DCPProfile *RawImageSource::getDCP(const ColorManagementParams &cmp, DCPProfile::ApplyState &as) { + if (cmp.inputProfile == "(camera)" || cmp.inputProfile == "(none)") { + return nullptr; + } + DCPProfile *dcpProf = nullptr; cmsHPROFILE dummy; findInputProfile(cmp.inputProfile, nullptr, (static_cast(getMetaData()))->getCamera(), &dcpProf, dummy); @@ -2821,7 +2830,7 @@ void RawImageSource::flushRGB() } } -void RawImageSource::HLRecovery_Global(ToneCurveParams hrp) +void RawImageSource::HLRecovery_Global(const ToneCurveParams &hrp) { if (hrp.hrenabled && hrp.method == "Color") { if(!rgbSourceModified) { @@ -3232,10 +3241,10 @@ void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, Raw } } -void RawImageSource::cfaboxblur(RawImage *riFlatFile, float* cfablur, const int boxH, const int boxW) +void RawImageSource::cfaboxblur(RawImage *riFlatFile, float* cfablur, int boxH, int boxW) { - if(boxW == 0 && boxH == 0) { // nothing to blur + if (boxW < 0 || boxH < 0 || (boxW == 0 && boxH == 0)) { // nothing to blur or negative values memcpy(cfablur, riFlatFile->data[0], W * H * sizeof(float)); return; } @@ -4387,17 +4396,11 @@ bool RawImageSource::findInputProfile(Glib::ustring inProfile, cmsHPROFILE embed // very effective to reduce (or remove) the magenta, but with levels of grey ! void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int width, float maxval, float* hlmax) { - const int ColorCount = 3; + constexpr int ColorCount = 3; // Transform matrixes rgb>lab and back - static const float trans[2][ColorCount][ColorCount] = { - { { 1, 1, 1 }, { 1.7320508, -1.7320508, 0 }, { -1, -1, 2 } }, - { { 1, 1, 1 }, { 1, -1, 1 }, { 1, 1, -1 } } - }; - static const float itrans[2][ColorCount][ColorCount] = { - { { 1, 0.8660254, -0.5 }, { 1, -0.8660254, -0.5 }, { 1, 0, 1 } }, - { { 1, 1, 1 }, { 1, -1, 1 }, { 1, 1, -1 } } - }; + constexpr float trans[ColorCount][ColorCount] = { { 1, 1, 1 }, { 1.7320508, -1.7320508, 0 }, { -1, -1, 2 } }; + constexpr float itrans[ColorCount][ColorCount] = { { 1, 0.8660254, -0.5 }, { 1, -0.8660254, -0.5 }, { 1, 0, 1 } }; #define FOREACHCOLOR for (int c=0; c < ColorCount; c++) @@ -4454,7 +4457,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi for (int j = 0; j < ColorCount; j++) { - lab[i][c] += trans[ColorCount - 3][c][j] * cam[i][j]; + lab[i][c] += trans[c][j] * cam[i][j]; } } @@ -4478,7 +4481,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi for (int j = 0; j < ColorCount; j++) { - cam[0][c] += itrans[ColorCount - 3][c][j] * lab[0][j]; + cam[0][c] += itrans[c][j] * lab[0][j]; } } FOREACHCOLOR rgb[c] = cam[0][c] / ColorCount; diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index af0c1a116..470fd138b 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -111,22 +111,22 @@ protected: public: RawImageSource (); - ~RawImageSource (); + ~RawImageSource () override; - int load(const Glib::ustring &fname) { return load(fname, false); } + int load(const Glib::ustring &fname) override { return load(fname, false); } int load(const Glib::ustring &fname, bool firstFrameOnly); - void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true); - void demosaic (const RAWParams &raw, bool autoContrast, double &contrastThreshold); - void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI); - void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI); - void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D &conversionBuffer, LUTu &lhist16RETI); - void flushRawData (); - void flushRGB (); - void HLRecovery_Global (ToneCurveParams hrp); + void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true) override; + void demosaic (const RAWParams &raw, bool autoContrast, double &contrastThreshold) override; + void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) override; + void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) override; + void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D &conversionBuffer, LUTu &lhist16RETI) override; + void flushRawData () override; + void flushRGB () override; + void HLRecovery_Global (const ToneCurveParams &hrp) override; void refinement_lassus (int PassCount); void refinement(int PassCount); - void setBorder(unsigned int rawBorder) {border = rawBorder;} - bool isRGBSourceModified() const + void setBorder(unsigned int rawBorder) override {border = rawBorder;} + bool isRGBSourceModified() const override { return rgbSourceModified; // tracks whether cached rgb output of demosaic has been modified } @@ -136,57 +136,57 @@ public: void cfaboxblur (RawImage *riFlatFile, float* cfablur, int boxH, int boxW); void scaleColors (int winx, int winy, int winw, int winh, const RAWParams &raw, array2D &rawData); // raw for cblack - void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw); - eSensorType getSensorType () const + void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw) override; + eSensorType getSensorType () const override { return ri != nullptr ? ri->getSensorType() : ST_NONE; } - bool isMono () const + bool isMono () const override { return ri->get_colors() == 1; } - ColorTemp getWB () const + ColorTemp getWB () const override { return camera_wb; } - void getAutoWBMultipliers (double &rm, double &gm, double &bm); - ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal); - bool isWBProviderReady () + void getAutoWBMultipliers (double &rm, double &gm, double &bm) override; + ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) override; + bool isWBProviderReady () override { return rawData; } - double getDefGain () const + double getDefGain () const override { return defGain; } - void getFullSize (int& w, int& h, int tr = TR_NONE); - void getSize (const PreviewProps &pp, int& w, int& h); - int getRotateDegree() const + void getFullSize (int& w, int& h, int tr = TR_NONE) override; + void getSize (const PreviewProps &pp, int& w, int& h) override; + int getRotateDegree() const override { return ri->get_rotateDegree(); } - ImageMatrices* getImageMatrices () + ImageMatrices* getImageMatrices () override { return &imatrices; } - bool isRAW() const + bool isRAW() const override { return true; } - void setProgressListener (ProgressListener* pl) + void setProgressListener (ProgressListener* pl) override { plistener = pl; } - void getAutoExpHistogram (LUTu & histogram, int& histcompr); - void getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LUTu & histBlueRaw); - void getAutoMatchedToneCurve(const ColorManagementParams &cp, std::vector &outCurve); - DCPProfile *getDCP(const ColorManagementParams &cmp, DCPProfile::ApplyState &as); + void getAutoExpHistogram (LUTu & histogram, int& histcompr) override; + void getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LUTu & histBlueRaw) override; + void getAutoMatchedToneCurve(const ColorManagementParams &cp, std::vector &outCurve) override; + DCPProfile *getDCP(const ColorManagementParams &cmp, DCPProfile::ApplyState &as) override; - void convertColorSpace(Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb); + void convertColorSpace(Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb) override; static bool findInputProfile(Glib::ustring inProfile, cmsHPROFILE embedded, std::string camName, DCPProfile **dcpProf, cmsHPROFILE& in); static void colorSpaceConversion (Imagefloat* im, const ColorManagementParams& cmp, const ColorTemp &wb, double pre_mul[3], cmsHPROFILE embedded, cmsHPROFILE camprofile, double cam[3][3], const std::string &camName) { @@ -197,18 +197,18 @@ public: void boxblur2(float** src, float** dst, float** temp, int H, int W, int box ); void boxblur_resamp(float **src, float **dst, float** temp, int H, int W, int box, int samp ); void MSR(float** luminance, float **originalLuminance, float **exLuminance, LUTf & mapcurve, bool &mapcontlutili, int width, int height, const RetinexParams &deh, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax); - void HLRecovery_inpaint (float** red, float** green, float** blue); + void HLRecovery_inpaint (float** red, float** green, float** blue) override; static void HLRecovery_Luminance (float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, int width, float maxval); static void HLRecovery_CIELab (float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, int width, float maxval, double cam[3][3], double icam[3][3]); static void HLRecovery_blend (float* rin, float* gin, float* bin, int width, float maxval, float* hlmax); static void init (); static void cleanup (); - void setCurrentFrame(unsigned int frameNum) { + void setCurrentFrame(unsigned int frameNum) override { currFrame = std::min(numFrames - 1, frameNum); ri = riFrames[currFrame]; } - int getFrameCount() {return numFrames;} - int getFlatFieldAutoClipValue() {return flatFieldAutoClipValue;} + int getFrameCount() override {return numFrames;} + int getFlatFieldAutoClipValue() override {return flatFieldAutoClipValue;} class GreenEqulibrateThreshold { public: @@ -299,7 +299,7 @@ protected: void pixelshift(int winx, int winy, int winw, int winh, const RAWParams &rawParams, unsigned int frame, const std::string &make, const std::string &model, float rawWpCorrection); void hflip (Imagefloat* im); void vflip (Imagefloat* im); - void getRawValues(int x, int y, int rotate, int &R, int &G, int &B); + void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) override; }; } diff --git a/rtengine/rawmetadatalocation.h b/rtengine/rawmetadatalocation.h index 40ac6cc3e..de6c6a0d7 100644 --- a/rtengine/rawmetadatalocation.h +++ b/rtengine/rawmetadatalocation.h @@ -30,7 +30,7 @@ public: int ciffLength; RawMetaDataLocation () : exifBase(-1), ciffBase(-1), ciffLength(-1) {} - RawMetaDataLocation (int exifBase) : exifBase(exifBase), ciffBase(-1), ciffLength(-1) {} + explicit RawMetaDataLocation (int exifBase) : exifBase(exifBase), ciffBase(-1), ciffLength(-1) {} RawMetaDataLocation (int ciffBase, int ciffLength) : exifBase(-1), ciffBase(ciffBase), ciffLength(ciffLength) {} RawMetaDataLocation (int exifBase, int ciffBase, int ciffLength) : exifBase(exifBase), ciffBase(ciffBase), ciffLength(ciffLength) {} }; diff --git a/rtengine/rtlensfun.cc b/rtengine/rtlensfun.cc index 50b3c8a66..4856909f7 100644 --- a/rtengine/rtlensfun.cc +++ b/rtengine/rtlensfun.cc @@ -501,7 +501,6 @@ std::unique_ptr LFDatabase::getModifier(const LFCamera &camera, cons std::unique_ptr LFDatabase::findModifier(const LensProfParams &lensProf, const FramesMetaData *idata, int width, int height, const CoarseTransformParams &coarse, int rawRotationDeg) { - const LFDatabase *db = getInstance(); Glib::ustring make, model, lens; float focallen = idata->getFocalLen(); if (lensProf.lfAutoMatch()) { @@ -516,6 +515,11 @@ std::unique_ptr LFDatabase::findModifier(const LensProfParams &lensP model = lensProf.lfCameraModel; lens = lensProf.lfLens; } + if (make.empty() || model.empty() || lens.empty()) { + return nullptr; + } + + const LFDatabase *db = getInstance(); LFCamera c = db->findCamera(make, model); LFLens l = db->findLens(lensProf.lfAutoMatch() ? c : LFCamera(), lens); if (focallen <= 0 && l.data_ && l.data_->MinFocal == l.data_->MaxFocal) { diff --git a/rtengine/rtlensfun.h b/rtengine/rtlensfun.h index ef6d2192b..c196a4765 100644 --- a/rtengine/rtlensfun.h +++ b/rtengine/rtlensfun.h @@ -38,7 +38,7 @@ class LFModifier final : public NonCopyable { public: - ~LFModifier(); + ~LFModifier() override; explicit operator bool() const; diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index f01e87ff7..1623ecfbf 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -62,15 +62,15 @@ bool checkRawImageThumb (const rtengine::RawImage& raw_image) void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], bool multiThread) { DCraw::dcrawImage_t image = ri->get_image(); + const int height = ri->get_iheight(); + const int width = ri->get_iwidth(); + const int top_margin = ri->get_topmargin(); + const int left_margin = ri->get_leftmargin(); + const int raw_width = ri->get_rawwidth(); + const bool isFloat = ri->isFloat(); + const float * const float_raw_image = ri->get_FloatRawImage(); if (ri->isBayer()) { - const int height = ri->get_iheight(); - const int width = ri->get_iwidth(); - const bool isFloat = ri->isFloat(); - const int top_margin = ri->get_topmargin(); - const int left_margin = ri->get_leftmargin(); - const int raw_width = ri->get_rawwidth(); - const float * const float_raw_image = ri->get_FloatRawImage(); #ifdef _OPENMP #pragma omp parallel for if(multiThread) #endif @@ -110,14 +110,6 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], } } } else if (ri->isXtrans()) { - const int height = ri->get_iheight(); - const int width = ri->get_iwidth(); - const bool isFloat = ri->isFloat(); - const int top_margin = ri->get_topmargin(); - const int left_margin = ri->get_leftmargin(); - const int raw_width = ri->get_rawwidth(); - const float * const float_raw_image = ri->get_FloatRawImage(); - #ifdef _OPENMP #pragma omp parallel for if(multiThread) #endif @@ -157,6 +149,20 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], image[row * width + col][ccol] = rtengine::CLIP (val); } } + } else if (isFloat) { +#ifdef _OPENMP + #pragma omp parallel for if(multiThread) +#endif + for (int row = 0; row < height; ++row) { + for (int col = 0; col < width; ++col) { + for (int i = 0; i < ri->get_colors(); ++i) { + float val = float_raw_image[(row + top_margin) * raw_width + col + left_margin + i]; + val -= cblack[i]; + val *= scale_mul[i]; + image[row * width + col][i] = val; + } + } + } } else { const int size = ri->get_iheight() * ri->get_iwidth(); @@ -421,7 +427,9 @@ Thumbnail* Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, RawMetaDataL // did we succeed? if ( err ) { - printf ("Could not extract thumb from %s\n", fname.data()); + if (options.rtSettings.verbose) { + std::cout << "Could not extract thumb from " << fname.c_str() << std::endl; + } delete tpp; delete img; delete ri; @@ -572,6 +580,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati 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 *= std::pow(2, ri->getBaselineExposure()); tpp->gammaCorrected = true; @@ -1932,46 +1941,53 @@ bool Thumbnail::readImage (const Glib::ustring& fname) Glib::ustring fullFName = fname + ".rtti"; - if (!Glib::file_test (fullFName, Glib::FILE_TEST_EXISTS)) { + if (!Glib::file_test(fullFName, Glib::FILE_TEST_EXISTS)) { return false; } - FILE* f = g_fopen (fullFName.c_str (), "rb"); + FILE* f = g_fopen(fullFName.c_str (), "rb"); if (!f) { return false; } 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); - fread (&height, 1, sizeof (guint32), f); + + if (fread(&width, 1, sizeof(guint32), f) < sizeof(guint32)) { + width = 0; + } + + if (fread(&height, 1, sizeof(guint32), f) < sizeof(guint32)) { + height = 0; + } bool success = false; - 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); - thumbImg = image; - success = true; - } 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); + if (std::min(width , height) > 0) { + 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); + thumbImg = image; + success = true; + } 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); + } } - - fclose (f); + fclose(f); return success; } @@ -2189,7 +2205,7 @@ bool Thumbnail::readEmbProfile (const Glib::ustring& fname) if (!fseek (f, 0, SEEK_SET)) { embProfileData = new unsigned char[embProfileLength]; - fread (embProfileData, 1, embProfileLength, f); + embProfileLength = fread (embProfileData, 1, embProfileLength, f); embProfile = cmsOpenProfileFromMem (embProfileData, embProfileLength); } } @@ -2221,14 +2237,19 @@ bool Thumbnail::writeEmbProfile (const Glib::ustring& fname) bool Thumbnail::readAEHistogram (const Glib::ustring& fname) { - FILE* f = g_fopen (fname.c_str (), "rb"); + FILE* f = g_fopen(fname.c_str(), "rb"); if (!f) { aeHistogram.reset(); } else { - aeHistogram (65536 >> aeHistCompression); - fread (&aeHistogram[0], 1, (65536 >> aeHistCompression)*sizeof (aeHistogram[0]), f); + aeHistogram(65536 >> aeHistCompression); + const size_t histoBytes = (65536 >> aeHistCompression) * sizeof(aeHistogram[0]); + const size_t bytesRead = fread(&aeHistogram[0], 1, histoBytes, f); fclose (f); + if (bytesRead != histoBytes) { + aeHistogram.reset(); + return false; + } return true; } diff --git a/rtengine/rtthumbnail.h b/rtengine/rtthumbnail.h index 667d8e1c9..c01aa81ee 100644 --- a/rtengine/rtthumbnail.h +++ b/rtengine/rtthumbnail.h @@ -156,7 +156,7 @@ public: } return imgPtr; - }; + } }; } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index b36f4d6c1..87c33e8f8 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -893,41 +893,16 @@ private: //gamma TRC working if (params.icm.workingTRC == "Custom") { //exec TRC IN free - Glib::ustring profile; - profile = params.icm.workingProfile; + const Glib::ustring profile = params.icm.workingProfile; if (profile == "sRGB" || profile == "Adobe RGB" || profile == "ProPhoto" || profile == "WideGamut" || profile == "BruceRGB" || profile == "Beta RGB" || profile == "BestRGB" || profile == "Rec2020" || profile == "ACESp0" || profile == "ACESp1") { - int cw = baseImg->getWidth(); - int ch = baseImg->getHeight(); + const int cw = baseImg->getWidth(); + const int ch = baseImg->getHeight(); + cmsHTRANSFORM dummy = nullptr; // put gamma TRC to 1 - Imagefloat* readyImg0 = NULL; - readyImg0 = ipf.workingtrc(baseImg, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310); - #pragma omp parallel for - - for (int row = 0; row < ch; row++) { - for (int col = 0; col < cw; col++) { - baseImg->r(row, col) = (float)readyImg0->r(row, col); - baseImg->g(row, col) = (float)readyImg0->g(row, col); - baseImg->b(row, col) = (float)readyImg0->b(row, col); - } - } - - delete readyImg0; - + ipf.workingtrc(baseImg, baseImg, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, dummy, true, false, false); //adjust TRC - Imagefloat* readyImg = NULL; - readyImg = ipf.workingtrc(baseImg, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope); - #pragma omp parallel for - - for (int row = 0; row < ch; row++) { - for (int col = 0; col < cw; col++) { - baseImg->r(row, col) = (float)readyImg->r(row, col); - baseImg->g(row, col) = (float)readyImg->g(row, col); - baseImg->b(row, col) = (float)readyImg->b(row, col); - } - } - - delete readyImg; + ipf.workingtrc(baseImg, baseImg, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, dummy, false, true, false); } } @@ -1258,10 +1233,9 @@ private: } } - Imagefloat* readyImg = nullptr; cmsHPROFILE jprof = nullptr; - bool customGamma = false; - bool useLCMS = false; + constexpr bool customGamma = false; + constexpr bool useLCMS = false; bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili ; ///////////// Custom output gamma has been removed, the user now has to create @@ -1270,7 +1244,7 @@ private: // if Default gamma mode: we use the profile selected in the "Output profile" combobox; // gamma come from the selected profile, otherwise it comes from "Free gamma" tool - readyImg = ipf.lab2rgbOut (labView, cx, cy, cw, ch, params.icm); + Imagefloat* readyImg = ipf.lab2rgbOut (labView, cx, cy, cw, ch, params.icm); if (settings->verbose) { printf ("Output profile_: \"%s\"\n", params.icm.outputProfile.c_str()); diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index c75995b25..37d438863 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -194,7 +194,7 @@ void StdImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima // the code will use OpenMP as of now. - img->getStdImage(ctemp, tran, image, pp, true, hrp); + img->getStdImage(ctemp, tran, image, pp); // Hombre: we could have rotated the image here too, with just few line of code, but: // 1. it would require other modifications in the engine, so "do not touch that little plonker!" diff --git a/rtengine/stdimagesource.h b/rtengine/stdimagesource.h index 605b2926c..500641f72 100644 --- a/rtengine/stdimagesource.h +++ b/rtengine/stdimagesource.h @@ -40,66 +40,66 @@ protected: public: StdImageSource (); - ~StdImageSource (); + ~StdImageSource () override; - int load (const Glib::ustring &fname); - void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw); - ColorTemp getWB () const + int load (const Glib::ustring &fname) override; + void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw) override; + ColorTemp getWB () const override { return wb; } - void getAutoWBMultipliers (double &rm, double &gm, double &bm); - ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal); + void getAutoWBMultipliers (double &rm, double &gm, double &bm) override; + ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) override; - eSensorType getSensorType() const {return ST_NONE;} - bool isMono() const {return false;} + eSensorType getSensorType() const override {return ST_NONE;} + bool isMono() const override {return false;} - bool isWBProviderReady () + bool isWBProviderReady () override { return true; }; - void getAutoExpHistogram (LUTu &histogram, int& histcompr); + void getAutoExpHistogram (LUTu &histogram, int& histcompr) override; - double getDefGain () const + double getDefGain () const override { return 0.0; } - void getFullSize (int& w, int& h, int tr = TR_NONE); - void getSize (const PreviewProps &pp, int& w, int& h); + void getFullSize (int& w, int& h, int tr = TR_NONE) override; + void getSize (const PreviewProps &pp, int& w, int& h) override; ImageIO* getImageIO () { return img; } - ImageMatrices* getImageMatrices () + ImageMatrices* getImageMatrices () override { return (ImageMatrices*)nullptr; } - bool isRAW() const + bool isRAW() const override { return false; } - void setProgressListener (ProgressListener* pl) + void setProgressListener (ProgressListener* pl) override { plistener = pl; } - void convertColorSpace(Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb);// RAWParams raw will not be used for non-raw files (see imagesource.h) + void convertColorSpace(Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb) override;// RAWParams raw will not be used for non-raw files (see imagesource.h) static void colorSpaceConversion (Imagefloat* im, const ColorManagementParams &cmp, cmsHPROFILE embedded, IIOSampleFormat sampleFormat); - bool isRGBSourceModified() const + bool isRGBSourceModified() const override { return rgbSourceModified; } - void setCurrentFrame(unsigned int frameNum) {} - int getFrameCount() {return 1;} - int getFlatFieldAutoClipValue() {return 0;} + void setCurrentFrame(unsigned int frameNum) override {} + int getFrameCount() override {return 1;} + int getFlatFieldAutoClipValue() override {return 0;} - void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) { R = G = B = 0;} + void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) override { R = G = B = 0;} }; diff --git a/rtexif/canonattribs.cc b/rtexif/canonattribs.cc index 17ce4f343..940206e31 100644 --- a/rtexif/canonattribs.cc +++ b/rtexif/canonattribs.cc @@ -32,7 +32,7 @@ namespace rtexif class CAOnOffInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int n = t->toInt(); @@ -51,7 +51,7 @@ class CAIntSerNumInterpreter : public Interpreter { public: CAIntSerNumInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { return ""; } @@ -63,7 +63,7 @@ class CAApertureInterpreter : public Interpreter { public: CAApertureInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; double v = pow (2.0, t->toDouble() / 64.0); @@ -92,7 +92,7 @@ CAMacroModeInterpreter caMacroModeInterpreter; class CASelfTimerInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int sec = t->toInt (0, SHORT); @@ -385,7 +385,7 @@ CAExposureModeInterpreter caExposureModeInterpreter; class CAFlashBitsInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream s; unsigned bits = t->toInt (0, SHORT); @@ -533,7 +533,7 @@ CARAWQualityInterpreter caRAWQualityInterpreter; class CAFocalInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { Tag *unitTag = t->getParent()->getRoot()->findTag ("FocalUnits"); double v = unitTag ? unitTag->toDouble() : 1.; @@ -956,7 +956,7 @@ public: }; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int lensID = t->toInt(); @@ -1108,7 +1108,7 @@ CAFocalTypeInterpreter caFocalTypeInterpreter; class CAFocalPlaneInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int val = t->toInt(); @@ -1126,7 +1126,7 @@ CAFocalPlaneInterpreter caFocalPlaneInterpreter; class CAExposureTimeInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; double d = pow (2, - t->toInt() / 32.0); @@ -1138,7 +1138,7 @@ CAExposureTimeInterpreter caExposureTimeInterpreter; class CAEVInterpreter : public Interpreter { - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; sprintf (buffer, "%.1f", t->toDouble() / 32.0 ); @@ -1150,14 +1150,14 @@ CAEVInterpreter caEVInterpreter; class CABaseISOInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; int a = t->toInt(); sprintf (buffer, "%d", a); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = Interpreter::toInt (t, ofs); @@ -1168,7 +1168,7 @@ public: return 0.; } } - virtual int toInt (const Tag* t, int ofs, TagType astype) + int toInt (const Tag* t, int ofs, TagType astype) override { int a = Interpreter::toInt (t, ofs, astype); @@ -1287,7 +1287,7 @@ CASlowShutterInterpreter caSlowShutterInterpreter; class CAFlashGuideNumberInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int n = t->toInt(); @@ -1348,7 +1348,7 @@ CAControModeInterpreter caControModeInterpreter; class CAFocusDistanceInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; sprintf (buffer, "%.2f", t->toDouble() / 100 ); @@ -1360,7 +1360,7 @@ CAFocusDistanceInterpreter caFocusDistanceInterpreter; class CAMeasuredEVInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; sprintf (buffer, "%.1f", t->toDouble() / 8 - 6 ); @@ -1495,7 +1495,7 @@ CAToningEffectInterpreter caToningEffectInterpreter; class CAFileNumberInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { unsigned long val = t->toInt (0, LONG); char buffer[32]; diff --git a/rtexif/kodakattribs.cc b/rtexif/kodakattribs.cc index 1b6e522c5..a9c168a70 100644 --- a/rtexif/kodakattribs.cc +++ b/rtexif/kodakattribs.cc @@ -104,12 +104,11 @@ void parseKodakIfdTextualInfo (Tag *textualInfo, Tag* exif_) a = atoi (val.c_str()); b = atoi (&p1[1]); } - t = new Tag (exif, lookupAttrib (exifAttribs, "ExposureTime")); t->initRational (a, b); exif->replaceTag (t); - float ssv = -log2 ((float)a / (float)b); // convert to APEX value + const float ssv = -log2 ((float)a / std::max((float)b, 0.0001f)); // convert to APEX value, avoid division by zero t = new Tag (exif, lookupAttrib (exifAttribs, "ShutterSpeedValue")); t->initRational (1000000 * ssv, 1000000); exif->replaceTag (t); diff --git a/rtexif/nikonattribs.cc b/rtexif/nikonattribs.cc index e534f8123..888bebe5a 100644 --- a/rtexif/nikonattribs.cc +++ b/rtexif/nikonattribs.cc @@ -34,7 +34,7 @@ class NAISOInterpreter : public Interpreter { public: NAISOInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; sprintf (buffer, "%d", t->toInt (2)); @@ -47,14 +47,14 @@ class NAISOInfoISOInterpreter : public Interpreter { public: NAISOInfoISOInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; int a = t->toInt(); sprintf (buffer, "%d", a); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = t->getValue()[ofs]; @@ -65,7 +65,7 @@ public: return 0.; } } - virtual int toInt (const Tag* t, int ofs, TagType astype) + int toInt (const Tag* t, int ofs, TagType astype) override { int a = t->getValue()[ofs]; @@ -83,7 +83,7 @@ class NAISOExpansionInterpreter : public Interpreter { public: NAISOExpansionInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt(); @@ -142,7 +142,7 @@ class NALensTypeInterpreter : public Interpreter { public: NALensTypeInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt(); std::ostringstream str; @@ -191,7 +191,7 @@ class NAShootingModeInterpreter : public Interpreter { public: NAShootingModeInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt(); std::ostringstream str; @@ -234,7 +234,7 @@ public: afpchoices[0x9] = "Far Left"; afpchoices[0xa] = "Far Right"; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int am = t->toInt (0, BYTE); int afp = t->toInt (1, BYTE); @@ -314,7 +314,7 @@ class NALensDataInterpreter : public Interpreter static const std::map lenses; public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { static const unsigned char xlat[2][256] = { diff --git a/rtexif/olympusattribs.cc b/rtexif/olympusattribs.cc index 8084637c9..e590a71de 100644 --- a/rtexif/olympusattribs.cc +++ b/rtexif/olympusattribs.cc @@ -33,7 +33,7 @@ class OLOnOffInterpreter : public Interpreter { public: OLOnOffInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { if (t->toInt() == 0) { return "Off"; @@ -48,7 +48,7 @@ class OLYesNoInterpreter : public Interpreter { public: OLYesNoInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { if (t->toInt() == 0) { return "No"; @@ -63,7 +63,7 @@ class OLApertureInterpreter : public Interpreter { public: OLApertureInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream str; str.precision (2); @@ -194,7 +194,7 @@ public: lenses["03 02 00"] = "Leica D Summilux 25mm f/1.4 Asph."; lenses["05 01 10"] = "Tamron 14-150mm f/3.5-5.8 Di III"; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream lid; lid.setf (std::ios_base::hex, std::ios_base::basefield); @@ -465,7 +465,7 @@ class OLNoiseFilterInterpreter : public Interpreter { public: OLNoiseFilterInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt (0); int b = t->toInt (2); @@ -490,7 +490,7 @@ class OLFlashModeInterpreter : public Interpreter { public: OLFlashModeInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream str; int a = t->toInt (); @@ -509,7 +509,7 @@ class OLNoiseReductionInterpreter : public Interpreter { public: OLNoiseReductionInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream str; int a = t->toInt (); diff --git a/rtexif/pentaxattribs.cc b/rtexif/pentaxattribs.cc index 0968271e5..4120f6b46 100644 --- a/rtexif/pentaxattribs.cc +++ b/rtexif/pentaxattribs.cc @@ -415,7 +415,7 @@ class PAFNumberInterpreter: public Interpreter { public: PAFNumberInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; double v = t->toDouble() / 10; @@ -610,7 +610,7 @@ public: choices[256 * 255 + 0] = "Video (Auto Aperture)"; choices[256 * 255 + 4] = "Video (4)"; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int c = 256 * t->toInt (0, BYTE) + t->toInt (1, BYTE); std::map::iterator r = choices.find (c); @@ -669,7 +669,7 @@ public: choices3[224] = "HDR Auto"; choices3[255] = "Video"; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::map::iterator r = choices.find (t->toInt (0, BYTE)); std::map::iterator r1 = choices1.find (t->toInt (1, BYTE)); @@ -993,7 +993,7 @@ public: choices.insert (p_t (256 * 22 + 4, "04 Toy Lens Wide 6.3mm f/7.1")); choices.insert (p_t (256 * 22 + 5, "05 Toy Lens Telephoto 18mm f/8")); } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { double *liArray = nullptr; double maxApertureAtFocal = 0.; @@ -1061,7 +1061,7 @@ class PASRResultInterpreter: public Interpreter { public: PASRResultInterpreter() { } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream str; int b = t->toInt (0, BYTE); @@ -1146,7 +1146,7 @@ public: choices[ 2 << 8 | 4 ] = "Auto"; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int idx = 0; @@ -1173,7 +1173,7 @@ public: choices[2] = "Standard"; choices[3] = "Fast"; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::map::iterator r = choices.find (t->toInt (0, BYTE)); std::ostringstream s; @@ -1211,7 +1211,7 @@ public: choices[2] = "Medium"; choices[3] = "High"; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::map::iterator r = choices.find (t->toInt (0, BYTE)); std::ostringstream s; @@ -1243,7 +1243,7 @@ public: choices2[8] = "2 EV"; choices2[12] = "3 EV"; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::map::iterator r = choices.find (t->toInt (0, BYTE)); std::map::iterator r1 = choices1.find (t->toInt (1, BYTE)); @@ -1290,7 +1290,7 @@ class PALensModelQInterpreter: public Interpreter { public: PALensModelQInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[31]; buffer[0] = 0; // @@ -1308,7 +1308,7 @@ class PALensInfoQInterpreter: public Interpreter { public: PALensInfoQInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[21]; buffer[0] = 0; @@ -1326,7 +1326,7 @@ class PAFlashExposureCompInterpreter: public Interpreter { public: PAFlashExposureCompInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a; @@ -1340,7 +1340,7 @@ public: sprintf (buffer, "%d", a ); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a; @@ -1359,7 +1359,7 @@ class PAFocalLengthInterpreter: public Interpreter { public: PAFocalLengthInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { double a = double (t->toInt (0, LONG)); @@ -1371,7 +1371,7 @@ public: return "n/a"; } } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { double a = double (t->toInt (0, LONG)); @@ -1388,7 +1388,7 @@ class PALensDataFocalLengthInterpreter: public Interpreter { public: PALensDataFocalLengthInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt (0, BYTE); float b = float (10 * int (a >> 2)) * pow (4.f, float (int (a & 0x03) - 2)); @@ -1401,7 +1401,7 @@ public: return "n/a"; } } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = t->toInt (ofs, BYTE); float b = float (10 * int (a >> 2)) * pow (4.f, float (int (a & 0x03) - 2)); @@ -1419,7 +1419,7 @@ class PAISOfInterpreter: public Interpreter { public: PAISOfInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt (0, BYTE); char buffer[32]; @@ -1427,7 +1427,7 @@ public: sprintf (buffer, "%.1f", v ); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = t->toInt (0, BYTE); return 100.*exp (double (a - 32) * log (2.) / 8.); @@ -1439,7 +1439,7 @@ class PAMaxApertureInterpreter: public Interpreter { public: PAMaxApertureInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt (0, BYTE); a &= 0x7F; @@ -1458,7 +1458,7 @@ public: return "n/a"; } } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = t->toInt (0, BYTE); a &= 0x7F; @@ -1476,7 +1476,7 @@ class PAAEXvInterpreter: public Interpreter { public: PAAEXvInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt (0, BYTE); char buffer[32]; @@ -1484,7 +1484,7 @@ public: sprintf (buffer, "%.1f", v ); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = t->toInt (0, BYTE); return double (a - 64) / 8.; @@ -1496,7 +1496,7 @@ class PAAEBXvInterpreter: public Interpreter { public: PAAEBXvInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt (0, SBYTE); char buffer[32]; @@ -1504,7 +1504,7 @@ public: sprintf (buffer, "%.1f", v ); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = t->toInt (0, SBYTE); return double (a) / 8.; @@ -1516,7 +1516,7 @@ class PAApertureInterpreter: public Interpreter { public: PAApertureInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt (0, BYTE); char buffer[32]; @@ -1524,7 +1524,7 @@ public: sprintf (buffer, "%.1f", v ); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = t->toInt (0, BYTE); return exp ((double (a) - 68.) * log (2.) / 16.); @@ -1536,7 +1536,7 @@ class PAExposureTimeInterpreter: public Interpreter { public: PAExposureTimeInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt (0, BYTE); char buffer[32]; @@ -1544,7 +1544,7 @@ public: sprintf (buffer, "%.6f", v ); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = t->toInt (0, BYTE); return 24.*exp (- (double (a) - 32.) * log (2.) / 8.); @@ -1556,7 +1556,7 @@ class PANominalMinApertureInterpreter: public Interpreter { public: PANominalMinApertureInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; int a = t->toInt (0, BYTE); @@ -1564,7 +1564,7 @@ public: sprintf (buffer, "%.1f", double (int (pow (2.0, double (mina + 10) / 4.0) + 0.2))); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = t->toInt (0, BYTE) & 0x0F; return double (int (pow (2.0, double (a + 10) / 4.0) + 0.2)); @@ -1576,7 +1576,7 @@ class PANominalMaxApertureInterpreter: public Interpreter { public: PANominalMaxApertureInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; int a = t->toInt (0, BYTE); @@ -1584,7 +1584,7 @@ public: sprintf (buffer, "%.1f", double (int (pow (2.0, double (maxa) / 4.0) + 0.2)) ); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { int a = ( t->toInt (0, BYTE) & 0xF0) >> 4; return double (int (pow (2.0, double (a) / 4.0) + 0.2)); @@ -1694,7 +1694,7 @@ class PAExternalFlashGNInterpreter: public Interpreter { public: PAExternalFlashGNInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; int b = t->toInt (0, BYTE) & 0x1F; @@ -1708,7 +1708,7 @@ class PAEVStepsInterpreter: public Interpreter { public: PAEVStepsInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream str; @@ -1727,7 +1727,7 @@ class PAEDialinInterpreter: public Interpreter { public: PAEDialinInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream str; @@ -1746,7 +1746,7 @@ class PAApertureRingUseInterpreter: public Interpreter { public: PAApertureRingUseInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream str; @@ -1776,7 +1776,7 @@ public: choices[9] = "Slow-sync, Red-eye reduction"; choices[10] = "Trailing-curtain Sync"; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::map::iterator r = choices.find (t->toInt (0, BYTE) >> 4); @@ -1795,7 +1795,7 @@ class PAMeteringMode2Interpreter: public Interpreter { public: PAMeteringMode2Interpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream str; int v = (t->toInt (0, BYTE) & 0xF); @@ -1859,7 +1859,7 @@ class PAProgramLineInterpreter: public Interpreter { public: PAProgramLineInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::ostringstream str; int c = t->toInt (0, BYTE); @@ -1899,7 +1899,7 @@ class PAAFModeInterpreter: public Interpreter { public: PAAFModeInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { switch (t->toInt (0, BYTE) & 0x3) { case 0: @@ -1925,7 +1925,7 @@ class PAAFPointSelectedInterpreter: public Interpreter { public: PAAFPointSelectedInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int c = t->toInt (0, SHORT); @@ -1949,7 +1949,7 @@ class PADriveMode2Interpreter: public Interpreter { public: PADriveMode2Interpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int c = t->toInt (0, BYTE); diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index c35ba7e0b..39d85ace9 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -362,23 +362,25 @@ Glib::ustring TagDirectory::getDumpKey (int tagID, const Glib::ustring &tagName) return key; } -void TagDirectory::addTag (Tag* tag) +void TagDirectory::addTag (Tag* &tag) { // look up if it already exists: if (getTag (tag->getID())) { delete tag; + tag = nullptr; } else { tags.push_back (tag); } } -void TagDirectory::addTagFront (Tag* tag) +void TagDirectory::addTagFront (Tag* &tag) { // look up if it already exists: if (getTag (tag->getID())) { delete tag; + tag = nullptr; } else { tags.insert (tags.begin(), tag); } @@ -720,7 +722,7 @@ int TagDirectory::write (int start, unsigned char* buffer) return maxPos; } -void TagDirectory::applyChange (std::string name, Glib::ustring value) +void TagDirectory::applyChange (const std::string &name, const Glib::ustring &value) { std::string::size_type dp = name.find_first_of ('.'); @@ -842,14 +844,15 @@ TagDirectoryTable::TagDirectoryTable (TagDirectory* p, FILE* f, int memsize, int : TagDirectory (p, ta, border), zeroOffset (offs), valuesSize (memsize), defaultType ( type ) { values = new unsigned char[valuesSize]; - fread (values, 1, valuesSize, f); + if (fread (values, 1, valuesSize, f) == static_cast(valuesSize)) { - // Security ; will avoid to read above the buffer limit if the RT's tagDirectoryTable is longer that what's in the file - int count = valuesSize / getTypeSize (type); + // Security ; will avoid to read above the buffer limit if the RT's tagDirectoryTable is longer that what's in the file + int count = valuesSize / getTypeSize (type); - for (const TagAttrib* tattr = ta; tattr->ignore != -1 && tattr->ID < count; ++tattr) { - Tag* newTag = new Tag (this, tattr, (values + zeroOffset + tattr->ID * getTypeSize (type)), tattr->type == AUTO ? type : tattr->type); - tags.push_back (newTag); // Here we can insert more tag in the same offset because of bitfield meaning + for (const TagAttrib* tattr = ta; tattr->ignore != -1 && tattr->ID < count; ++tattr) { + Tag* newTag = new Tag (this, tattr, (values + zeroOffset + tattr->ID * getTypeSize (type)), tattr->type == AUTO ? type : tattr->type); + tags.push_back (newTag); // Here we can insert more tag in the same offset because of bitfield meaning + } } } TagDirectory* TagDirectoryTable::clone (TagDirectory* parent) @@ -976,16 +979,19 @@ Tag::Tag (TagDirectory* p, FILE* f, int base) if (tag == 0x002e) { // location of the embedded preview image in raw files of Panasonic cameras ExifManager eManager(f, nullptr, true); - eManager.parseJPEG(ftell(f)); // try to parse the exif data from the preview image + const auto fpos = ftell(f); + if (fpos >= 0) { + eManager.parseJPEG(fpos); // try to parse the exif data from the preview image - if (eManager.roots.size()) { - const TagDirectory* const previewdir = eManager.roots.at(0); - if (previewdir->getTag ("Exif")) { - if (previewdir->getTag ("Make")) { - if (previewdir->getTag ("Make")->valueToString() == "Panasonic") { // "make" is not yet available here, so get it from the preview tags to assure we're doing the right thing - Tag* t = new Tag (parent->getRoot(), lookupAttrib (ifdAttribs, "Exif")); // replace raw exif with preview exif assuming there are the same - t->initSubDir (previewdir->getTag ("Exif")->getDirectory()); - parent->getRoot()->addTag (t); + if (eManager.roots.size()) { + const TagDirectory* const previewdir = eManager.roots.at(0); + if (previewdir->getTag ("Exif")) { + if (previewdir->getTag ("Make")) { + if (previewdir->getTag ("Make")->valueToString() == "Panasonic") { // "make" is not yet available here, so get it from the preview tags to assure we're doing the right thing + Tag* t = new Tag (parent->getRoot(), lookupAttrib (ifdAttribs, "Exif")); // replace raw exif with preview exif assuming there are the same + t->initSubDir (previewdir->getTag ("Exif")->getDirectory()); + parent->getRoot()->addTag (t); + } } } } @@ -1201,8 +1207,8 @@ Tag::Tag (TagDirectory* p, FILE* f, int base) } else { // read value value = new unsigned char [valuesize + 1]; - fread (value, 1, valuesize, f); - value[valuesize] = '\0'; + auto readSize = fread (value, 1, valuesize, f); + value[readSize] = '\0'; } // seek back to the saved position @@ -1212,32 +1218,33 @@ Tag::Tag (TagDirectory* p, FILE* f, int base) defsubdirs: // read value value = new unsigned char [valuesize]; - fread (value, 1, valuesize, f); - - // count the number of valid subdirs - int sdcount = count; - - if (sdcount > 0) { - if (parent->getAttribTable() == olympusAttribs) { - sdcount = 1; - } - - // allocate space - directory = new TagDirectory*[sdcount + 1]; - - // load directories - for (size_t j = 0, i = 0; j < count; j++, i++) { - int newpos = base + toInt (j * 4, LONG); - fseek (f, newpos, SEEK_SET); - directory[i] = new TagDirectory (parent, f, base, attrib->subdirAttribs, order); - } - - // set the terminating NULL - directory[sdcount] = nullptr; - } else { + if (fread (value, 1, valuesize, f) != static_cast(valuesize)) { type = INVALID; - } + } else { + // count the number of valid subdirs + int sdcount = count; + if (sdcount > 0) { + if (parent->getAttribTable() == olympusAttribs) { + sdcount = 1; + } + + // allocate space + directory = new TagDirectory*[sdcount + 1]; + + // load directories + for (size_t j = 0, i = 0; j < count; j++, i++) { + int newpos = base + toInt (j * 4, LONG); + fseek (f, newpos, SEEK_SET); + directory[i] = new TagDirectory (parent, f, base, attrib->subdirAttribs, order); + } + + // set the terminating NULL + directory[sdcount] = nullptr; + } else { + type = INVALID; + } + } // seek back to the saved position fseek (f, save, SEEK_SET); return; @@ -2101,10 +2108,12 @@ void ExifManager::parseCIFF () TagDirectory* root = new TagDirectory (nullptr, ifdAttribs, INTEL); Tag* exif = new Tag (root, lookupAttrib (ifdAttribs, "Exif")); exif->initSubDir (); - Tag* mn = new Tag (exif->getDirectory(), lookupAttrib (exifAttribs, "MakerNote")); - mn->initMakerNote (IFD, canonAttribs); root->addTag (exif); - exif->getDirectory()->addTag (mn); + if (exif) { + Tag* mn = new Tag (exif->getDirectory(), lookupAttrib (exifAttribs, "MakerNote")); + mn->initMakerNote (IFD, canonAttribs); + exif->getDirectory()->addTag (mn); + } parseCIFF (rml->ciffLength, root); root->sort (); } @@ -2140,10 +2149,14 @@ void ExifManager::parseCIFF (int length, TagDirectory* root) char buffer[1024]; Tag* t; - fseek (f, rml->ciffBase + length - 4, SEEK_SET); + if (fseek(f, rml->ciffBase + length - 4, SEEK_SET)) { + return; + } int dirStart = get4 (f, INTEL) + rml->ciffBase; - fseek (f, dirStart, SEEK_SET); + if (fseek(f, dirStart, SEEK_SET)) { + return; + } int numOfTags = get2 (f, INTEL); @@ -2194,11 +2207,13 @@ void ExifManager::parseCIFF (int length, TagDirectory* root) t = new Tag (root, lookupAttrib (ifdAttribs, "Make")); t->initString (buffer); root->addTag (t); - fseek (f, strlen (buffer) - 63, SEEK_CUR); - fread (buffer, 64, 1, f); - t = new Tag (root, lookupAttrib (ifdAttribs, "Model")); - t->initString (buffer); - root->addTag (t); + if (!fseek (f, strlen (buffer) - 63, SEEK_CUR)) { + if (fread (buffer, 64, 1, f) == 1) { + t = new Tag (root, lookupAttrib (ifdAttribs, "Model")); + t->initString (buffer); + root->addTag (t); + } + } } if (type == 0x1818) { @@ -2474,7 +2489,7 @@ parse_leafdata (TagDirectory* root, ByteOrder order) char *val = (char *)&value[pos]; if (strncmp (&hdr[8], "CameraObj_ISO_speed", 19) == 0) { - iso_speed = 25 * (1 << (atoi (val) - 1)); + iso_speed = 25 * (1 << std::max((atoi (val) - 1), 0)); found_count++; } else if (strncmp (&hdr[8], "ImgProf_rotation_angle", 22) == 0) { rotation_angle = atoi (val); @@ -2503,7 +2518,7 @@ parse_leafdata (TagDirectory* root, ByteOrder order) root->addTagFront (exif); } - if (!exif->getDirectory()->getTag ("ISOSpeedRatings")) { + if (exif && !exif->getDirectory()->getTag ("ISOSpeedRatings")) { Tag *t = new Tag (exif->getDirectory(), exif->getDirectory()->getAttrib ("ISOSpeedRatings")); t->initInt (iso_speed, LONG); exif->getDirectory()->addTagFront (t); @@ -2829,7 +2844,7 @@ void ExifManager::parse (bool isRaw, bool skipIgnored) exif->initSubDir (exifdir); root->addTagFront (exif); - if (!exif->getDirectory()->getTag ("ISOSpeedRatings") && exif->getDirectory()->getTag ("ExposureIndex")) { + if (exif && !exif->getDirectory()->getTag ("ISOSpeedRatings") && exif->getDirectory()->getTag ("ExposureIndex")) { Tag* niso = new Tag (exif->getDirectory(), exif->getDirectory()->getAttrib ("ISOSpeedRatings")); niso->initInt (exif->getDirectory()->getTag ("ExposureIndex")->toInt(), SHORT); exif->getDirectory()->addTagFront (niso); diff --git a/rtexif/rtexif.h b/rtexif/rtexif.h index 1beba92ec..2b68a6754 100644 --- a/rtexif/rtexif.h +++ b/rtexif/rtexif.h @@ -155,11 +155,11 @@ public: virtual Tag* findTagUpward (const char* name) const; bool getXMPTagValue (const char* name, char* value) const; - void keepTag (int ID); - virtual void addTag (Tag* a); - virtual void addTagFront (Tag* a); - virtual void replaceTag (Tag* a); - inline Tag* getTagByIndex (int ix) + void keepTag (int ID); + void addTag (Tag* &a); + void addTagFront (Tag* &a); + void replaceTag (Tag* a); + inline Tag* getTagByIndex (int ix) { return tags[ix]; } @@ -171,7 +171,7 @@ public: virtual int calculateSize (); virtual int write (int start, unsigned char* buffer); virtual TagDirectory* clone (TagDirectory* parent); - virtual void applyChange (std::string field, Glib::ustring value); + void applyChange (const std::string &field, const Glib::ustring &value); virtual void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call ! virtual bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams, @@ -191,10 +191,10 @@ public: TagDirectoryTable(); TagDirectoryTable (TagDirectory* p, unsigned char *v, int memsize, int offs, TagType type, const TagAttrib* ta, ByteOrder border); TagDirectoryTable (TagDirectory* p, FILE* f, int memsize, int offset, TagType type, const TagAttrib* ta, ByteOrder border); - virtual ~TagDirectoryTable(); - virtual int calculateSize (); - virtual int write (int start, unsigned char* buffer); - virtual TagDirectory* clone (TagDirectory* parent); + ~TagDirectoryTable() override; + int calculateSize () override; + int write (int start, unsigned char* buffer) override; + TagDirectory* clone (TagDirectory* parent) override; }; // a class representing a single tag @@ -488,7 +488,7 @@ protected: std::map choices; public: ChoiceInterpreter () {}; - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::map::iterator r = choices.find (t->toInt()); diff --git a/rtexif/sonyminoltaattribs.cc b/rtexif/sonyminoltaattribs.cc index 76ed788c2..04cb6a548 100644 --- a/rtexif/sonyminoltaattribs.cc +++ b/rtexif/sonyminoltaattribs.cc @@ -1150,7 +1150,7 @@ public: }; } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int lensID = t->toInt(); Tag *lensInfoTag = t->getParent()->getRoot()->findTag ("LensInfo"); @@ -1297,7 +1297,7 @@ public: choices.insert (p_t (51507, "Samyang AF 35mm f/1.4")); } - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int lensID = t->toInt(); Tag *lensInfoTag = t->getParent()->getRoot()->findTag ("LensInfo"); @@ -2091,7 +2091,7 @@ class SAExposureTimeInterpreter : public Interpreter { public: SAExposureTimeInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { double a = t->toDouble(); @@ -2103,7 +2103,7 @@ public: return "n/a"; } } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT TagType astype = t->getType(); @@ -2122,7 +2122,7 @@ public: return 0.; } } - virtual int toInt (const Tag* t, int ofs, TagType astype) + int toInt (const Tag* t, int ofs, TagType astype) override { // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT int a = 0; @@ -2151,7 +2151,7 @@ class SAFNumberInterpreter : public Interpreter { public: SAFNumberInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { double a = double (t->toDouble()); @@ -2163,7 +2163,7 @@ public: return "n/a"; } } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT TagType astype = t->getType(); @@ -2182,7 +2182,7 @@ public: return 0.; } } - virtual int toInt (const Tag* t, int ofs, TagType astype) + int toInt (const Tag* t, int ofs, TagType astype) override { // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT int a = 0; @@ -2211,7 +2211,7 @@ class SAISOSettingInterpreter : public Interpreter { public: SAISOSettingInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->toInt(); @@ -2223,7 +2223,7 @@ public: return "Auto"; } } - virtual int toInt (const Tag* t, int ofs, TagType astype) + int toInt (const Tag* t, int ofs, TagType astype) override { // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT int a = 0; @@ -2252,14 +2252,14 @@ class SAExposureCompSetInterpreter : public Interpreter { public: SAExposureCompSetInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { double a = t->toDouble(); char buffer[32]; sprintf (buffer, "%.2f", a ); return buffer; } - virtual double toDouble (const Tag* t, int ofs) + double toDouble (const Tag* t, int ofs) override { // Get the value int a = t->getValue()[ofs]; @@ -2273,13 +2273,13 @@ class SAAFMicroAdjValueInterpreter : public Interpreter { public: SAAFMicroAdjValueInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; sprintf (buffer, "%d", t->getValue()[0] - 20); return buffer; } - virtual int toInt (const Tag* t, int ofs, TagType astype) + int toInt (const Tag* t, int ofs, TagType astype) override { return t->getValue()[0] - 20; } @@ -2290,7 +2290,7 @@ class SAAFMicroAdjModeInterpreter : public Interpreter { public: SAAFMicroAdjModeInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int a = t->getValue()[0] & 0x80; @@ -2300,7 +2300,7 @@ public: return "Off"; } - virtual int toInt (const Tag* t, int ofs, TagType astype) + int toInt (const Tag* t, int ofs, TagType astype) override { return (t->getValue()[0] & 0x80) == 0x80 ? 1 : 0; } @@ -2312,13 +2312,13 @@ class SAAFMicroAdjRegisteredLensesInterpreter : public Interpreter { public: SAAFMicroAdjRegisteredLensesInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; sprintf (buffer, "%d", t->getValue()[0] & 0x7f); return buffer; } - virtual int toInt (const Tag* t, int ofs, TagType astype) + int toInt (const Tag* t, int ofs, TagType astype) override { return t->getValue()[0] & 0x7f; } @@ -2329,7 +2329,7 @@ class SAFocusStatusInterpreter : public Interpreter { public: SAFocusStatusInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { std::string retval; int a = t->toInt(); @@ -2368,13 +2368,13 @@ class SAColorTemperatureSettingInterpreter : public Interpreter { public: SAColorTemperatureSettingInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; sprintf (buffer, "%d", t->toInt()); return buffer; } - virtual int toInt (const Tag* t, int ofs, TagType astype) + int toInt (const Tag* t, int ofs, TagType astype) override { int a = 0; diff --git a/rtexif/stdattribs.cc b/rtexif/stdattribs.cc index fc1383839..76ba1f633 100644 --- a/rtexif/stdattribs.cc +++ b/rtexif/stdattribs.cc @@ -327,7 +327,7 @@ class FNumberInterpreter : public Interpreter { public: FNumberInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; double v = t->toDouble(); @@ -346,7 +346,7 @@ class ApertureInterpreter : public Interpreter { public: ApertureInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; double v = pow (2.0, t->toDouble() / 2.0); @@ -365,7 +365,7 @@ class ExposureBiasInterpreter : public Interpreter { public: ExposureBiasInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; double v = t->toDouble(); @@ -384,7 +384,7 @@ class ShutterSpeedInterpreter : public Interpreter { public: ShutterSpeedInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; double d = pow (2.0, -t->toDouble()); @@ -404,7 +404,7 @@ class ExposureTimeInterpreter : public Interpreter { public: ExposureTimeInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; double d = t->toDouble(); @@ -424,7 +424,7 @@ class FocalLengthInterpreter : public Interpreter { public: FocalLengthInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char buffer[32]; double v = t->toDouble(); @@ -443,7 +443,7 @@ class UserCommentInterpreter : public Interpreter { public: UserCommentInterpreter () {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int count = t->getCount(); @@ -563,7 +563,7 @@ public: delete [] buffer; return retVal; } - virtual void fromString (Tag* t, const std::string& value) + void fromString (Tag* t, const std::string& value) override { Glib::ustring tmpStr(value); t->userCommentFromString (tmpStr); @@ -575,7 +575,7 @@ class CFAInterpreter : public Interpreter { public: CFAInterpreter() {} - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { char colors[] = "RGB"; char buffer[1024]; @@ -632,7 +632,7 @@ UTF8BinInterpreter utf8BinInterpreter; class RawImageSegmentationInterpreter : public Interpreter { public: - virtual std::string toString (Tag* t) + std::string toString (Tag* t) override { int segmentNumber = t->toInt(0, SHORT); int segmentWidth = t->toInt(2, SHORT); diff --git a/rtgui/adjuster.h b/rtgui/adjuster.h index bd7f426ef..169bd7d12 100644 --- a/rtgui/adjuster.h +++ b/rtgui/adjuster.h @@ -87,7 +87,7 @@ public: int delay; Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon1 = nullptr, Gtk::Image *imgIcon2 = nullptr, double2double_fun slider2value = nullptr, double2double_fun value2slider = nullptr); - virtual ~Adjuster (); + ~Adjuster () override; // Add an "Automatic" checkbox next to the reset button. void addAutoButton(Glib::ustring tooltip = ""); diff --git a/rtgui/batchqueue.h b/rtgui/batchqueue.h index a922e5e1f..c05ca54fe 100644 --- a/rtgui/batchqueue.h +++ b/rtgui/batchqueue.h @@ -44,7 +44,7 @@ class BatchQueue final : { public: explicit BatchQueue (FileCatalog* aFileCatalog); - ~BatchQueue (); + ~BatchQueue () override; void addEntries (const std::vector& entries, bool head = false, bool save = true); void cancelItems (const std::vector& items); @@ -62,17 +62,17 @@ public: return (!fd.empty()); } - void setProgress(double p); - void setProgressStr(const Glib::ustring& str); - void setProgressState(bool inProcessing); - void error(const Glib::ustring& descr); - rtengine::ProcessingJob* imageReady(rtengine::IImagefloat* img); + void setProgress(double p) override; + void setProgressStr(const Glib::ustring& str) override; + void setProgressState(bool inProcessing) override; + void error(const Glib::ustring& descr) override; + rtengine::ProcessingJob* imageReady(rtengine::IImagefloat* img) override; - void rightClicked (ThumbBrowserEntryBase* entry); - void doubleClicked (ThumbBrowserEntryBase* entry); - bool keyPressed (GdkEventKey* event); - void buttonPressed (LWButton* button, int actionCode, void* actionData); - void redrawNeeded (LWButton* button); + void rightClicked (ThumbBrowserEntryBase* entry) override; + void doubleClicked (ThumbBrowserEntryBase* entry) override; + bool keyPressed (GdkEventKey* event) override; + void buttonPressed (LWButton* button, int actionCode, void* actionData) override; + void redrawNeeded (LWButton* button) override; void setBatchQueueListener (BatchQueueListener* l) { @@ -86,9 +86,9 @@ public: static int calcMaxThumbnailHeight(); protected: - int getMaxThumbnailHeight() const; - void saveThumbnailHeight (int height); - int getThumbnailHeight (); + int getMaxThumbnailHeight() const override; + void saveThumbnailHeight (int height) override; + int getThumbnailHeight () override; Glib::ustring autoCompleteFileName (const Glib::ustring& fileName, const Glib::ustring& format); Glib::ustring getTempFilenameForParams( const Glib::ustring &filename ); diff --git a/rtgui/batchqueueentry.h b/rtgui/batchqueueentry.h index 3d6618256..57b263689 100644 --- a/rtgui/batchqueueentry.h +++ b/rtgui/batchqueueentry.h @@ -56,21 +56,21 @@ public: bool fast_pipeline; BatchQueueEntry (rtengine::ProcessingJob* job, const rtengine::procparams::ProcParams& pparams, Glib::ustring fname, int prevw, int prevh, Thumbnail* thm = nullptr); - ~BatchQueueEntry (); + ~BatchQueueEntry () override; - void refreshThumbnailImage (); - void calcThumbnailSize (); + void refreshThumbnailImage () override; + void calcThumbnailSize () override; - void drawProgressBar (Glib::RefPtr win, const Gdk::RGBA& foregr, const Gdk::RGBA& backgr, int x, int w, int y, int h); + void drawProgressBar (Glib::RefPtr win, const Gdk::RGBA& foregr, const Gdk::RGBA& backgr, int x, int w, int y, int h) override; void removeButtonSet (); - virtual std::vector > getIconsOnImageArea (); - virtual void getIconSize (int& w, int& h); - virtual Glib::ustring getToolTip (int x, int y); + std::vector > getIconsOnImageArea () override; + void getIconSize (int& w, int& h) override; + Glib::ustring getToolTip (int x, int y) override; // bqentryupdatelistener interface - void updateImage (guint8* img, int w, int h, int origw, int origh, guint8* newOPreview); + void updateImage (guint8* img, int w, int h, int origw, int origh, guint8* newOPreview) override; void _updateImage (guint8* img, int w, int h); // inside gtk thread }; diff --git a/rtgui/batchqueuepanel.h b/rtgui/batchqueuepanel.h index e21e01352..a1ee7326f 100644 --- a/rtgui/batchqueuepanel.h +++ b/rtgui/batchqueuepanel.h @@ -59,7 +59,7 @@ class BatchQueuePanel : public Gtk::VBox, public: explicit BatchQueuePanel (FileCatalog* aFileCatalog); - ~BatchQueuePanel(); + ~BatchQueuePanel() override; void init (RTWindow* parent); @@ -69,8 +69,8 @@ public: bool handleShortcutKey (GdkEventKey* event); // batchqueuelistener interface - void queueSizeChanged(int qsize, bool queueRunning, bool queueError, const Glib::ustring& queueErrorMessage); - bool canStartNext(); + void queueSizeChanged(int qsize, bool queueRunning, bool queueError, const Glib::ustring& queueErrorMessage) override; + bool canStartNext() override; private: void startBatchProc (); diff --git a/rtgui/batchtoolpanelcoord.cc b/rtgui/batchtoolpanelcoord.cc index 80796d0ae..55d9f3c79 100644 --- a/rtgui/batchtoolpanelcoord.cc +++ b/rtgui/batchtoolpanelcoord.cc @@ -107,7 +107,7 @@ void BatchToolPanelCoordinator::initSession () // compare all the ProcParams and describe which parameters has different (i.e. inconsistent) values in pparamsEdited pparamsEdited.initFrom (initialPP); - crop->setDimensions (100000, 100000); + //crop->setDimensions (100000, 100000); /* if (!selected.empty()) { pparams = selected[0]->getProcParams (); @@ -126,6 +126,10 @@ void BatchToolPanelCoordinator::initSession () pparams = selected[0]->getProcParams (); coarse->initBatchBehavior (); + + int w,h; + selected[0]->getOriginalSize(w,h); + crop->setDimensions (w, h); if (selected.size() == 1) { diff --git a/rtgui/batchtoolpanelcoord.h b/rtgui/batchtoolpanelcoord.h index 204750047..f5889f967 100644 --- a/rtgui/batchtoolpanelcoord.h +++ b/rtgui/batchtoolpanelcoord.h @@ -67,7 +67,7 @@ public: // wbprovider interface void getAutoWB (double& temp, double& green, double equal, double tempBias) override; - void getCamWB (double& temp, double& green); + void getCamWB (double& temp, double& green) override; // thumbnaillistener interface void procParamsChanged (Thumbnail* thm, int whoChangedIt) override; diff --git a/rtgui/bayerpreprocess.h b/rtgui/bayerpreprocess.h index 18bf35026..e06a46d31 100644 --- a/rtgui/bayerpreprocess.h +++ b/rtgui/bayerpreprocess.h @@ -41,17 +41,17 @@ public: BayerPreProcess (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; void hotDeadPixelChanged(); void setAdjusterBehavior (bool linedenoiseadd, bool greenequiladd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; void lineDenoiseDirectionChanged(); void pdafLinesFilterChanged(); }; diff --git a/rtgui/bayerprocess.h b/rtgui/bayerprocess.h index b0974e7a4..df0c39d00 100644 --- a/rtgui/bayerprocess.h +++ b/rtgui/bayerprocess.h @@ -70,24 +70,24 @@ protected: public: BayerProcess (); - ~BayerProcess (); + ~BayerProcess () override; - void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; void setAdjusterBehavior(bool falsecoloradd, bool iteradd, bool dualdemozecontrastadd, bool pssigmaadd, bool pssmoothadd, bool pseperisoadd); - void trimValues(rtengine::procparams::ProcParams* pp); - void setBatchMode(bool batchMode); - void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); + void trimValues(rtengine::procparams::ProcParams* pp) override; + void setBatchMode(bool batchMode) override; + void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void methodChanged(); void imageNumberChanged(); - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); - void checkBoxToggled(CheckBox* c, CheckValue newval); + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; + void checkBoxToggled(CheckBox* c, CheckValue newval) override; void pixelShiftMotionMethodChanged(); void pixelShiftDemosaicMethodChanged(); - void autoContrastChanged (double autoContrast); - void FrameCountChanged(int n, int frameNum); + void autoContrastChanged (double autoContrast) override; + void FrameCountChanged(int n, int frameNum) override; }; #endif diff --git a/rtgui/bayerrawexposure.h b/rtgui/bayerrawexposure.h index a368eea3f..08d415838 100644 --- a/rtgui/bayerrawexposure.h +++ b/rtgui/bayerrawexposure.h @@ -38,15 +38,15 @@ public: BayerRAWExposure (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); - void checkBoxToggled (CheckBox* c, CheckValue newval); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; + void checkBoxToggled (CheckBox* c, CheckValue newval) override; void setAdjusterBehavior (bool pexblackadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif diff --git a/rtgui/blackwhite.h b/rtgui/blackwhite.h index 43e4b5384..45f1e5b7b 100644 --- a/rtgui/blackwhite.h +++ b/rtgui/blackwhite.h @@ -39,32 +39,32 @@ class BlackWhite final : public: BlackWhite (); - ~BlackWhite (); + ~BlackWhite () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void autoOpenCurve (); - void setEditProvider (EditDataProvider *provider); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void autoOpenCurve () override; + void setEditProvider (EditDataProvider *provider) override; void autoch_toggled (); void neutral_pressed (); void updateRGBLabel (); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool bwadd, bool bwgadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; void enabledcc_toggled (); - void enabledChanged (); + void enabledChanged () override; void methodChanged (); void filterChanged (); void settingChanged (); - virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller); - void BWChanged (double redbw, double greenbw, double bluebw); + void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; + void BWChanged (double redbw, double greenbw, double bluebw) override; bool BWComputed_ (); - void curveChanged (CurveEditor* ce); + void curveChanged (CurveEditor* ce) override; void curveMode1Changed (); bool curveMode1Changed_ (); void curveMode1Changed2 (); diff --git a/rtgui/cacheimagedata.h b/rtgui/cacheimagedata.h index d204f1ff9..f146f2ce0 100644 --- a/rtgui/cacheimagedata.h +++ b/rtgui/cacheimagedata.h @@ -87,30 +87,30 @@ public: // FramesMetaData interface //------------------------------------------------------------------------- - unsigned int getRootCount () const { return -1; } - unsigned int getFrameCount () const { return frameCount; } - bool hasExif (unsigned int frame = 0) const { return false; } - rtexif::TagDirectory* getRootExifData (unsigned int root = 0) const { return nullptr; } - rtexif::TagDirectory* getFrameExifData (unsigned int frame = 0) const { return nullptr; } - rtexif::TagDirectory* getBestExifData (rtengine::ImageSource *imgSource, rtengine::procparams::RAWParams *rawParams) const { return nullptr; } - bool hasIPTC (unsigned int frame = 0) const { return false; } - rtengine::procparams::IPTCPairs getIPTCData (unsigned int frame = 0) const { return rtengine::procparams::IPTCPairs(); } - tm getDateTime (unsigned int frame = 0) const { return tm{}; } - time_t getDateTimeAsTS(unsigned int frame = 0) const { return time_t(-1); } - int getISOSpeed (unsigned int frame = 0) const { return iso; } - double getFNumber (unsigned int frame = 0) const { return fnumber; } - double getFocalLen (unsigned int frame = 0) const { return focalLen; } - double getFocalLen35mm (unsigned int frame = 0) const { return focalLen35mm; } - float getFocusDist (unsigned int frame = 0) const { return focusDist; } - double getShutterSpeed (unsigned int frame = 0) const { return shutter; } - double getExpComp (unsigned int frame = 0) const { return atof(expcomp.c_str()); } - std::string getMake (unsigned int frame = 0) const { return camMake; } - std::string getModel (unsigned int frame = 0) const { return camModel; } - std::string getLens (unsigned int frame = 0) const { return lens; } - std::string getOrientation (unsigned int frame = 0) const { return ""; } // TODO - bool getPixelShift () const { return isPixelShift; } - bool getHDR (unsigned int frame = 0) const { return isHDR; } - std::string getImageType (unsigned int frame) const { return isPixelShift ? "PS" : isHDR ? "HDR" : "STD"; } - rtengine::IIOSampleFormat getSampleFormat (unsigned int frame = 0) const { return sampleFormat; } + unsigned int getRootCount () const override { return -1; } + unsigned int getFrameCount () const override { return frameCount; } + bool hasExif (unsigned int frame = 0) const override { return false; } + rtexif::TagDirectory* getRootExifData (unsigned int root = 0) const override { return nullptr; } + rtexif::TagDirectory* getFrameExifData (unsigned int frame = 0) const override { return nullptr; } + rtexif::TagDirectory* getBestExifData (rtengine::ImageSource *imgSource, rtengine::procparams::RAWParams *rawParams) const override { return nullptr; } + bool hasIPTC (unsigned int frame = 0) const override { return false; } + rtengine::procparams::IPTCPairs getIPTCData (unsigned int frame = 0) const override { return rtengine::procparams::IPTCPairs(); } + tm getDateTime (unsigned int frame = 0) const override { return tm{}; } + time_t getDateTimeAsTS(unsigned int frame = 0) const override { return time_t(-1); } + int getISOSpeed (unsigned int frame = 0) const override { return iso; } + double getFNumber (unsigned int frame = 0) const override { return fnumber; } + double getFocalLen (unsigned int frame = 0) const override { return focalLen; } + double getFocalLen35mm (unsigned int frame = 0) const override { return focalLen35mm; } + float getFocusDist (unsigned int frame = 0) const override { return focusDist; } + double getShutterSpeed (unsigned int frame = 0) const override { return shutter; } + double getExpComp (unsigned int frame = 0) const override { return atof(expcomp.c_str()); } + std::string getMake (unsigned int frame = 0) const override { return camMake; } + std::string getModel (unsigned int frame = 0) const override { return camModel; } + std::string getLens (unsigned int frame = 0) const override { return lens; } + std::string getOrientation (unsigned int frame = 0) const override { return ""; } // TODO + bool getPixelShift () const override { return isPixelShift; } + bool getHDR (unsigned int frame = 0) const override { return isHDR; } + std::string getImageType (unsigned int frame) const override { return isPixelShift ? "PS" : isHDR ? "HDR" : "STD"; } + rtengine::IIOSampleFormat getSampleFormat (unsigned int frame = 0) const override { return sampleFormat; } }; #endif diff --git a/rtgui/cacorrection.h b/rtgui/cacorrection.h index 2de510968..198037060 100644 --- a/rtgui/cacorrection.h +++ b/rtgui/cacorrection.h @@ -34,15 +34,15 @@ public: CACorrection (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; void setAdjusterBehavior (bool badd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif diff --git a/rtgui/chmixer.h b/rtgui/chmixer.h index 0ec28da3d..7e372cbc2 100644 --- a/rtgui/chmixer.h +++ b/rtgui/chmixer.h @@ -36,16 +36,16 @@ public: ChMixer (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; void setAdjusterBehavior (bool rgbadd); - void trimValues (rtengine::procparams::ProcParams* pp); - void enabledChanged(); + void trimValues (rtengine::procparams::ProcParams* pp) override; + void enabledChanged() override; }; #endif diff --git a/rtgui/coarsepanel.h b/rtgui/coarsepanel.h index 7ac1bccc5..bd4668eea 100644 --- a/rtgui/coarsepanel.h +++ b/rtgui/coarsepanel.h @@ -37,8 +37,8 @@ public: CoarsePanel (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; void initBatchBehavior (); void rotateLeft (); diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 094c6fc5d..07af3d0a4 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -230,8 +230,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" } degree->throwOnButtonRelease(); - degree->addAutoButton (M ("TP_COLORAPP_DEGREE_AUTO_TOOLTIP")); - degree->set_tooltip_markup (M ("TP_COLORAPP_DEGREE_TOOLTIP")); + degree->addAutoButton (M ("TP_COLORAPP_CAT02ADAPTATION_TOOLTIP")); p1VBox->pack_start (*degree); // surrsource = Gtk::manage (new Gtk::CheckButton (M ("TP_COLORAPP_SURSOURCE"))); @@ -284,27 +283,25 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" 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)); +// adapscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), 0.01, 16384., 0.001, 2000.)); // EV -7 ==> EV 17 + adapscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), MINLA0, MAXLA0, 0.01, 1997.4, NULL, NULL, &wbSlider2la, &wbla2Slider)); if (adapscen->delay < options.adjusterMaxDelay) { adapscen->delay = options.adjusterMaxDelay; } adapscen->throwOnButtonRelease(); - adapscen->addAutoButton (M ("TP_COLORAPP_ADAP_AUTO_TOOLTIP")); - adapscen->set_tooltip_markup (M ("TP_COLORAPP_ADAPTSCENE_TOOLTIP")); + adapscen->addAutoButton(); p1VBox->pack_start (*adapscen); - ybscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_YBSCENE"), 1, 90, 1, 18)); + ybscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_MEANLUMINANCE"), 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")); + ybscen->addAutoButton(); p1VBox->pack_start (*ybscen); p1Frame->add (*p1VBox); @@ -579,15 +576,15 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" Gtk::Image* itempR1 = Gtk::manage (new RTImage ("circle-yellow-small.png")); Gtk::Image* igreenL1 = Gtk::manage (new RTImage ("circle-magenta-small.png")); Gtk::Image* igreenR1 = Gtk::manage (new RTImage ("circle-green-small.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)); +// adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), 0.1, 16384., 0.1, 16.)); + adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), MINLA0, MAXLA0, 0.01, 16, NULL, NULL, &wbSlider2la, &wbla2Slider)); if (adaplum->delay < options.adjusterMaxDelay) { adaplum->delay = options.adjusterMaxDelay; } adaplum->throwOnButtonRelease(); - adaplum->set_tooltip_markup (M ("TP_COLORAPP_ADAPTVIEWING_TOOLTIP")); + adaplum->set_tooltip_markup (M ("TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP")); p3VBox->pack_start (*adaplum); // Gtk::Image* iblueredL = Gtk::manage (new RTImage ("circle-blue-small.png")); @@ -600,8 +597,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" } degreeout->throwOnButtonRelease(); - degreeout->addAutoButton (M ("TP_COLORAPP_DEGREE_AUTO_TOOLTIP")); - degreeout->set_tooltip_markup (M ("TP_COLORAPP_DEGREE_TOOLTIP")); + degreeout->addAutoButton (M ("TP_COLORAPP_CAT02ADAPTATION_TOOLTIP")); p3VBox->pack_start (*degreeout); /* Gtk::Image* itempL1 = Gtk::manage (new RTImage ("circle-blue-small.png")); @@ -611,7 +607,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" */ 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)); + ybout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_MEANLUMINANCE"), 5, 90, 1, 18)); tempout->set_tooltip_markup (M ("TP_COLORAPP_TEMP_TOOLTIP")); tempout->show(); diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index 5dd8a2e82..3f95d9f74 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -38,16 +38,16 @@ class ColorAppearance final : { public: ColorAppearance (); - ~ColorAppearance (); + ~ColorAppearance () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; // void adjusterAdapToggled (Adjuster* a, bool newval); - void enabledChanged (); + void enabledChanged () override; void surroundChanged (); void surrsrcChanged (); void wbmodelChanged (); @@ -58,14 +58,14 @@ public: void datacie_toggled (); void tonecie_toggled (); // void sharpcie_toggled (); - void autoCamChanged (double ccam, double ccamout); + void autoCamChanged (double ccam, double ccamout) override; bool autoCamComputed_ (); - void adapCamChanged (double cadap); + void adapCamChanged (double cadap) override; bool adapCamComputed_ (); - void ybCamChanged (int yb); + void ybCamChanged (int yb) override; bool ybCamComputed_ (); - void curveChanged (CurveEditor* ce); + void curveChanged (CurveEditor* ce) override; void curveMode1Changed (); bool curveMode1Changed_ (); void curveMode2Changed (); @@ -76,10 +76,10 @@ public: void expandCurve (bool isExpanded); bool isCurveExpanded (); - void autoOpenCurve (); + void autoOpenCurve () override; void setAdjusterBehavior (bool degreeadd, bool adapscenadd, bool adaplumadd, bool badpixsladd, bool jlightadd, bool chromaadd, bool contrastadd, bool rstprotectionadd, bool qbrightadd, bool qcontrastadd, bool schromaadd, bool mchromaadd, bool colorhadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; void updateCurveBackgroundHistogram( const LUTu& histToneCurve, const LUTu& histLCurve, @@ -92,7 +92,7 @@ public: const LUTu& histLuma, const LUTu& histLRETI ); - virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller); + void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller) override; void updateToolState (std::vector &tpOpen); void writeOptions (std::vector &tpOpen); diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc index 3ec149a0a..ec89118df 100644 --- a/rtgui/colortoning.cc +++ b/rtgui/colortoning.cc @@ -361,14 +361,19 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR EvLabRegionAB = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_AB"); EvLabRegionSaturation = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_SATURATION"); EvLabRegionLightness = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS"); + EvLabRegionSlope = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_SLOPE"); + EvLabRegionOffset = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_OFFSET"); + EvLabRegionPower = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_POWER"); EvLabRegionHueMask = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_HUEMASK"); EvLabRegionChromaticityMask = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK"); EvLabRegionLightnessMask = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK"); + EvLabRegionMaskBlur = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR"); EvLabRegionShowMask = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK"); + EvLabRegionChannel = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_COLORTONING_LABREGION_CHANNEL"); labRegionBox = Gtk::manage(new Gtk::VBox()); labRegionList = Gtk::manage(new Gtk::ListViewText(3)); - labRegionList->set_size_request(-1, 100); + labRegionList->set_size_request(-1, 150); labRegionList->set_can_focus(false); labRegionList->set_column_title(0, "#"); labRegionList->set_column_title(1, M("TP_COLORTONING_LABREGION_LIST_TITLE")); @@ -394,6 +399,10 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR labRegionDown->add(*Gtk::manage(new RTImage("arrow-down-small.png"))); labRegionDown->signal_clicked().connect(sigc::mem_fun(*this, &ColorToning::labRegionDownPressed)); add_button(labRegionDown, vb); + labRegionCopy = Gtk::manage(new Gtk::Button()); + labRegionCopy->add(*Gtk::manage(new RTImage("arrow-right-small.png"))); + labRegionCopy->signal_clicked().connect(sigc::mem_fun(*this, &ColorToning::labRegionCopyPressed)); + add_button(labRegionCopy, vb); hb->pack_start(*vb, Gtk::PACK_SHRINK); labRegionBox->pack_start(*hb, true, true); @@ -403,9 +412,33 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR labRegionSaturation = Gtk::manage(new Adjuster(M("TP_COLORTONING_LABREGION_SATURATION"), -100, 100, 1, 0)); labRegionSaturation->setAdjusterListener(this); labRegionBox->pack_start(*labRegionSaturation); - labRegionLightness = Gtk::manage(new Adjuster(M("TP_COLORTONING_LABREGION_LIGHTNESS"), -100, 100, 1, 0)); - labRegionLightness->setAdjusterListener(this); - labRegionBox->pack_start(*labRegionLightness); + + labRegionSlope = Gtk::manage(new Adjuster(M("TP_COLORTONING_LABREGION_SLOPE"), 0.1, 4.0, 0.001, 1)); + labRegionSlope->setLogScale(4, 0.1); + labRegionSlope->setAdjusterListener(this); + labRegionBox->pack_start(*labRegionSlope); + labRegionOffset = Gtk::manage(new Adjuster(M("TP_COLORTONING_LABREGION_OFFSET"), -0.1, 0.1, 0.001, 0)); + labRegionOffset->setAdjusterListener(this); + labRegionBox->pack_start(*labRegionOffset); + labRegionPower = Gtk::manage(new Adjuster(M("TP_COLORTONING_LABREGION_POWER"), 0.1, 4.0, 0.001, 1)); + labRegionPower->setAdjusterListener(this); + labRegionPower->setLogScale(4, 0.1); + labRegionBox->pack_start(*labRegionPower); + + hb = Gtk::manage(new Gtk::HBox()); + labRegionChannel = Gtk::manage(new MyComboBoxText()); + labRegionChannel->append(M("TP_COLORTONING_LABREGION_CHANNEL_ALL")); + labRegionChannel->append(M("TP_COLORTONING_LABREGION_CHANNEL_R")); + labRegionChannel->append(M("TP_COLORTONING_LABREGION_CHANNEL_G")); + labRegionChannel->append(M("TP_COLORTONING_LABREGION_CHANNEL_B")); + labRegionChannel->set_active(0); + labRegionChannel->signal_changed().connect(sigc::mem_fun(*this, &ColorToning::labRegionChannelChanged)); + + hb->pack_start(*Gtk::manage(new Gtk::Label(M("TP_COLORTONING_LABREGION_CHANNEL") + ": ")), Gtk::PACK_SHRINK); + hb->pack_start(*labRegionChannel); + labRegionBox->pack_start(*hb); + + labRegionBox->pack_start(*Gtk::manage(new Gtk::HSeparator())); CurveEditorGroup *labRegionEditorG = Gtk::manage(new CurveEditorGroup(options.lastColorToningCurvesDir, M("TP_COLORTONING_LABREGION_MASK"))); labRegionEditorG->setCurveListener(this); @@ -440,11 +473,22 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR labRegionEditorG->show(); labRegionBox->pack_start(*labRegionEditorG, Gtk::PACK_SHRINK, 2); + labRegionMaskBlur = Gtk::manage(new Adjuster(M("TP_COLORTONING_LABREGION_MASKBLUR"), -10, 100, 0.1, 0)); + labRegionMaskBlur->setLogScale(10, 0); + labRegionMaskBlur->setAdjusterListener(this); + labRegionBox->pack_start(*labRegionMaskBlur); + labRegionShowMask = Gtk::manage(new Gtk::CheckButton(M("TP_COLORTONING_LABREGION_SHOWMASK"))); labRegionShowMask->signal_toggled().connect(sigc::mem_fun(*this, &ColorToning::labRegionShowMaskChanged)); labRegionBox->pack_start(*labRegionShowMask, Gtk::PACK_SHRINK, 4); pack_start(*labRegionBox, Gtk::PACK_EXPAND_WIDGET, 4); + + labRegionSaturation->delay = options.adjusterMaxDelay; + labRegionSlope->delay = options.adjusterMaxDelay; + labRegionOffset->delay = options.adjusterMaxDelay; + labRegionPower->delay = options.adjusterMaxDelay; + labRegionMaskBlur->delay = options.adjusterMaxDelay; //------------------------------------------------------------------------ show_all(); @@ -1335,8 +1379,14 @@ void ColorToning::adjusterChanged(Adjuster* a, double newval) listener->panelChanged (EvColorToningStrength, a->getTextValue()); } else if (a == labRegionSaturation) { listener->panelChanged(EvLabRegionSaturation, a->getTextValue()); - } else if (a == labRegionLightness) { - listener->panelChanged(EvLabRegionLightness, a->getTextValue()); + } else if (a == labRegionSlope) { + listener->panelChanged(EvLabRegionSlope, a->getTextValue()); + } else if (a == labRegionOffset) { + listener->panelChanged(EvLabRegionOffset, a->getTextValue()); + } else if (a == labRegionPower) { + listener->panelChanged(EvLabRegionPower, a->getTextValue()); + } else if (a == labRegionMaskBlur) { + listener->panelChanged(EvLabRegionMaskBlur, a->getTextValue()); } } @@ -1395,10 +1445,14 @@ void ColorToning::labRegionGet(int idx) double la, lb; labRegionAB->getParams(la, lb, r.a, r.b); r.saturation = labRegionSaturation->getValue(); - r.lightness = labRegionLightness->getValue(); + r.slope = labRegionSlope->getValue(); + r.offset = labRegionOffset->getValue(); + r.power = labRegionPower->getValue(); r.hueMask = labRegionHueMask->getCurve(); r.chromaticityMask = labRegionChromaticityMask->getCurve(); r.lightnessMask = labRegionLightnessMask->getCurve(); + r.maskBlur = labRegionMaskBlur->getValue(); + r.channel = labRegionChannel->get_active_row_number() - 1; } @@ -1462,6 +1516,21 @@ void ColorToning::labRegionDownPressed() } +void ColorToning::labRegionCopyPressed() +{ + if (labRegionSelected < int(labRegionData.size())) { + auto r = labRegionData[labRegionSelected]; + labRegionData.push_back(r); + labRegionSelected = labRegionData.size()-1; + labRegionPopulateList(); + + if (listener) { + listener->panelChanged(EvLabRegionList, M("HISTORY_CHANGED")); + } + } +} + + void ColorToning::labRegionShowMaskChanged() { if (listener) { @@ -1479,13 +1548,26 @@ void ColorToning::labRegionPopulateList() for (size_t i = 0; i < labRegionData.size(); ++i) { auto &r = labRegionData[i]; auto j = labRegionList->append(std::to_string(i+1)); - labRegionList->set_text(j, 1, Glib::ustring::compose("a=%1 b=%2 s=%3 l=%4", round_ab(r.a), round_ab(r.b), r.saturation, r.lightness)); + labRegionList->set_text(j, 1, Glib::ustring::compose("a=%1 b=%2 S=%3\ns=%4 o=%5 p=%6", round_ab(r.a), round_ab(r.b), r.saturation, r.slope, r.offset, r.power)); + const char *ch = ""; + switch (r.channel) { + case rtengine::ColorToningParams::LabCorrectionRegion::CHAN_R: + ch = "\n[Red]"; break; + case rtengine::ColorToningParams::LabCorrectionRegion::CHAN_G: + ch = "\n[Green]"; break; + case rtengine::ColorToningParams::LabCorrectionRegion::CHAN_B: + ch = "\n[Blue]"; break; + default: + ch = ""; + } labRegionList->set_text( j, 2, Glib::ustring::compose( - "%1%2%3", + "%1%2%3%4%5", hasMask(dflt.hueMask, r.hueMask) ? "H" : "", hasMask(dflt.chromaticityMask, r.chromaticityMask) ? "C" : "", - hasMask(dflt.lightnessMask, r.lightnessMask) ? "L" : "")); + hasMask(dflt.lightnessMask, r.lightnessMask) ? "L" : "", + r.maskBlur ? Glib::ustring::compose(" b=%1", r.maskBlur) : "", + ch)); } } @@ -1501,18 +1583,34 @@ void ColorToning::labRegionShow(int idx, bool list_only) if (!list_only) { labRegionAB->setParams(0, 0, r.a, r.b, false); labRegionSaturation->setValue(r.saturation); - labRegionLightness->setValue(r.lightness); + labRegionSlope->setValue(r.slope); + labRegionOffset->setValue(r.offset); + labRegionPower->setValue(r.power); labRegionHueMask->setCurve(r.hueMask); labRegionChromaticityMask->setCurve(r.chromaticityMask); labRegionLightnessMask->setCurve(r.lightnessMask); + labRegionMaskBlur->setValue(r.maskBlur); + labRegionChannel->set_active(r.channel+1); + } + labRegionList->set_text(idx, 1, Glib::ustring::compose("a=%1 b=%2 S=%3\ns=%4 o=%5 p=%6", round_ab(r.a), round_ab(r.b), r.saturation, r.slope, r.offset, r.power)); + const char *ch = ""; + switch (r.channel) { + case rtengine::ColorToningParams::LabCorrectionRegion::CHAN_R: + ch = "\n[Red]"; break; + case rtengine::ColorToningParams::LabCorrectionRegion::CHAN_G: + ch = "\n[Green]"; break; + case rtengine::ColorToningParams::LabCorrectionRegion::CHAN_B: + ch = "\n[Blue]"; break; + default: + ch = ""; } - labRegionList->set_text(idx, 1, Glib::ustring::compose("a=%1 b=%2 s=%3 l=%4", round_ab(r.a), round_ab(r.b), r.saturation, r.lightness)); labRegionList->set_text( idx, 2, Glib::ustring::compose( - "%1%2%3", + "%1%2%3%4%5", hasMask(dflt.hueMask, r.hueMask) ? "H" : "", hasMask(dflt.chromaticityMask, r.chromaticityMask) ? "C" : "", - hasMask(dflt.lightnessMask, r.lightnessMask) ? "L" : "")); + hasMask(dflt.lightnessMask, r.lightnessMask) ? "L" : "", + r.maskBlur ? Glib::ustring::compose(" b=%1", r.maskBlur) : "", ch)); Gtk::TreePath pth; pth.push_back(idx); labRegionList->get_selection()->select(pth); @@ -1522,6 +1620,14 @@ void ColorToning::labRegionShow(int idx, bool list_only) } +void ColorToning::labRegionChannelChanged() +{ + if (listener) { + listener->panelChanged(EvLabRegionChannel, labRegionChannel->get_active_text()); + } +} + + void ColorToning::setEditProvider(EditDataProvider *provider) { labRegionHueMask->setEditProvider(provider); diff --git a/rtgui/colortoning.h b/rtgui/colortoning.h index 8fb640cba..29a71b03b 100644 --- a/rtgui/colortoning.h +++ b/rtgui/colortoning.h @@ -25,41 +25,41 @@ class ColorToning final : { public: ColorToning (); - ~ColorToning(); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void trimValues (rtengine::procparams::ProcParams* pp); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + ~ColorToning() override; + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void trimValues (rtengine::procparams::ProcParams* pp) override; + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool splitAdd, bool satThresholdAdd, bool satOpacityAdd, bool strprotectAdd, bool balanceAdd); void neutral_pressed (); //void neutralCurves_pressed (); - void autoColorTonChanged (int bwct, int satthres, int satprot); + void autoColorTonChanged (int bwct, int satthres, int satprot) override; bool CTComp_ (); - void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop); - void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight); - void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop); - void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight); - void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR); + void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) override; + void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) override; + void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) override; - void enabledChanged (); - void curveChanged (CurveEditor* ce); + void enabledChanged () override; + void curveChanged (CurveEditor* ce) override; void autosatChanged (); - void autoOpenCurve (); + void autoOpenCurve () override; void methodChanged (); void twocolorChanged (bool changedbymethod); void twoColorChangedByGui (); void lumamodeChanged (); - void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller); + void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; - void setListener(ToolPanelListener *tpl); + void setListener(ToolPanelListener *tpl) override; - void setEditProvider(EditDataProvider *provider); - float blendPipetteValues(CurveEditor *ce, float chan1, float chan2, float chan3); + void setEditProvider(EditDataProvider *provider) override; + float blendPipetteValues(CurveEditor *ce, float chan1, float chan2, float chan3) override; private: void onLabRegionSelectionChanged(); @@ -67,7 +67,9 @@ private: void labRegionRemovePressed(); void labRegionUpPressed(); void labRegionDownPressed(); + void labRegionCopyPressed(); void labRegionShowMaskChanged(); + void labRegionChannelChanged(); void labRegionPopulateList(); void labRegionShow(int idx, bool list_only=false); void labRegionGet(int idx); @@ -130,10 +132,15 @@ private: rtengine::ProcEvent EvLabRegionAB; rtengine::ProcEvent EvLabRegionSaturation; rtengine::ProcEvent EvLabRegionLightness; + rtengine::ProcEvent EvLabRegionSlope; + rtengine::ProcEvent EvLabRegionOffset; + rtengine::ProcEvent EvLabRegionPower; rtengine::ProcEvent EvLabRegionHueMask; rtengine::ProcEvent EvLabRegionChromaticityMask; rtengine::ProcEvent EvLabRegionLightnessMask; + rtengine::ProcEvent EvLabRegionMaskBlur; rtengine::ProcEvent EvLabRegionShowMask; + rtengine::ProcEvent EvLabRegionChannel; Gtk::VBox *labRegionBox; Gtk::ListViewText *labRegionList; @@ -141,12 +148,17 @@ private: Gtk::Button *labRegionRemove; Gtk::Button *labRegionUp; Gtk::Button *labRegionDown; + Gtk::Button *labRegionCopy; LabGrid *labRegionAB; Adjuster *labRegionSaturation; - Adjuster *labRegionLightness; + Adjuster *labRegionSlope; + Adjuster *labRegionOffset; + Adjuster *labRegionPower; + MyComboBoxText *labRegionChannel; FlatCurveEditor *labRegionHueMask; FlatCurveEditor *labRegionChromaticityMask; FlatCurveEditor *labRegionLightnessMask; + Adjuster *labRegionMaskBlur; Gtk::CheckButton *labRegionShowMask; std::vector labRegionData; int labRegionSelected; diff --git a/rtgui/coordinateadjuster.cc b/rtgui/coordinateadjuster.cc index 209ef0902..2525a07e5 100644 --- a/rtgui/coordinateadjuster.cc +++ b/rtgui/coordinateadjuster.cc @@ -127,7 +127,6 @@ void CoordinateAdjuster::createWidgets(const std::vector &axis) Gtk::Grid *box = Gtk::manage (new Gtk::Grid()); box->set_orientation(Gtk::ORIENTATION_HORIZONTAL); - box->set_column_spacing(3); setExpandAlignProperties(currAdjuster->label, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); setExpandAlignProperties(currAdjuster->spinButton, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); diff --git a/rtgui/coordinateadjuster.h b/rtgui/coordinateadjuster.h index 08f2fb479..33ea92bb2 100644 --- a/rtgui/coordinateadjuster.h +++ b/rtgui/coordinateadjuster.h @@ -136,7 +136,7 @@ public: /// For more complex adjuster CoordinateAdjuster(CoordinateProvider *provider, CurveEditorSubGroup *parent, const std::vector &axis); - virtual ~CoordinateAdjuster(); + ~CoordinateAdjuster() override; // Update the Axis list, e.g. on Curve change, but MUST have the same axis count void setAxis(const std::vector &axis); diff --git a/rtgui/crop.cc b/rtgui/crop.cc index d5b246107..a6b418bd7 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -99,89 +99,129 @@ Crop::Crop(): maxw = 3000; maxh = 2000; - Gtk::HBox* hb1 = Gtk::manage (new Gtk::HBox ()); + methodgrid = Gtk::manage(new Gtk::Grid()); + methodgrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(methodgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - hb1->pack_start (*Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("TP_CROP_X") + ": "))); + Gtk::Label* xlab = Gtk::manage (new Gtk::Label (M("TP_CROP_X") + ":")); + setExpandAlignProperties(xlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + x = Gtk::manage (new MySpinButton ()); - x->set_size_request (60, -1); - hb1->pack_start (*x); + setExpandAlignProperties(x, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); + x->set_width_chars(6); - hb1->pack_start (*Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("TP_CROP_Y") + ": "))); + Gtk::Label* ylab = Gtk::manage (new Gtk::Label (M("TP_CROP_Y") + ":")); + setExpandAlignProperties(ylab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + y = Gtk::manage (new MySpinButton ()); - y->set_size_request (60, -1); - hb1->pack_start (*y); - - pack_start (*hb1, Gtk::PACK_SHRINK, 2); - - Gtk::HBox* hb2 = Gtk::manage (new Gtk::HBox ()); - - hb2->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_W") + ": "))); + setExpandAlignProperties(y, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); + y->set_width_chars(6); + + Gtk::Label* wlab = Gtk::manage (new Gtk::Label (M("TP_CROP_W") + ":")); + setExpandAlignProperties(wlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + w = Gtk::manage (new MySpinButton ()); - w->set_size_request (60, -1); - hb2->pack_start (*w); + setExpandAlignProperties(w, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); + w->set_width_chars(6); - hb2->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_H") + ": "))); + Gtk::Label* hlab = Gtk::manage (new Gtk::Label (M("TP_CROP_H") + ":")); + setExpandAlignProperties(hlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + h = Gtk::manage (new MySpinButton ()); - h->set_size_request (60, -1); - hb2->pack_start (*h); - - pack_start (*hb2, Gtk::PACK_SHRINK, 4); + setExpandAlignProperties(h, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); + h->set_width_chars(6); selectCrop = Gtk::manage (new Gtk::Button (M("TP_CROP_SELECTCROP"))); + setExpandAlignProperties(selectCrop, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); selectCrop->get_style_context()->add_class("independent"); selectCrop->set_image (*Gtk::manage (new RTImage ("crop-small.png"))); - pack_start (*selectCrop, Gtk::PACK_SHRINK, 2); + resetCrop = Gtk::manage (new Gtk::Button (M("TP_CROP_RESETCROP"))); + setExpandAlignProperties(resetCrop, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + resetCrop->get_style_context()->add_class("independent"); + resetCrop->set_image (*Gtk::manage (new RTImage ("undo-small.png"))); + + methodgrid->attach (*xlab, 0, 0, 1, 1); + methodgrid->attach (*x, 1, 0, 1, 1); + methodgrid->attach (*ylab, 2, 0, 1, 1); + methodgrid->attach (*y, 3, 0, 1, 1); + methodgrid->attach (*wlab, 0, 1, 1, 1); + methodgrid->attach (*w, 1, 1, 1, 1); + methodgrid->attach (*hlab, 2, 1, 1, 1); + methodgrid->attach (*h, 3, 1, 1, 1); + methodgrid->attach (*selectCrop, 0, 2, 2, 1); + methodgrid->attach (*resetCrop, 2, 2, 2, 1); + pack_start (*methodgrid, Gtk::PACK_EXPAND_WIDGET, 0 ); + + Gtk::HSeparator* methodseparator = Gtk::manage (new Gtk::HSeparator()); + methodseparator->get_style_context()->add_class("grid-row-separator"); + pack_start (*methodseparator, Gtk::PACK_SHRINK, 0); - Gtk::HBox* hb3 = Gtk::manage (new Gtk::HBox ()); + Gtk::Grid* settingsgrid = Gtk::manage(new Gtk::Grid()); + settingsgrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(settingsgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); fixr = Gtk::manage (new Gtk::CheckButton (M("TP_CROP_FIXRATIO"))); + setExpandAlignProperties(fixr, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); fixr->set_active (1); - hb3->pack_start (*fixr, Gtk::PACK_SHRINK, 4); - ratio = Gtk::manage (new MyComboBoxText ()); - hb3->pack_start (*ratio, Gtk::PACK_EXPAND_WIDGET, 4); + setExpandAlignProperties(ratio, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); orientation = Gtk::manage (new MyComboBoxText ()); - hb3->pack_start (*orientation); + setExpandAlignProperties(orientation, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - pack_start (*hb3, Gtk::PACK_SHRINK, 4); - - Gtk::HBox* hb31 = Gtk::manage (new Gtk::HBox ()); - - hb31->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_GUIDETYPE"))), Gtk::PACK_SHRINK, 4); + Gtk::Label* guidelab = Gtk::manage (new Gtk::Label (M("TP_CROP_GUIDETYPE"))); + setExpandAlignProperties(guidelab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + guide = Gtk::manage (new MyComboBoxText ()); - hb31->pack_start (*guide); + setExpandAlignProperties(guide, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + settingsgrid->attach (*fixr, 0, 0, 1, 1); + settingsgrid->attach (*ratio, 1, 0, 1, 1); + settingsgrid->attach (*orientation, 2, 0, 1, 1); + settingsgrid->attach (*guidelab, 0, 1, 1, 1); + settingsgrid->attach (*guide, 1, 1, 2, 1); + pack_start (*settingsgrid, Gtk::PACK_SHRINK, 0 ); - pack_start (*hb31, Gtk::PACK_SHRINK, 4); - // ppibox START - ppibox = Gtk::manage (new Gtk::VBox()); - ppibox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 2); + // ppigrid START + ppigrid = Gtk::manage(new Gtk::Grid()); + ppigrid->get_style_context()->add_class("grid-spacing"); + ppigrid->set_column_homogeneous (true); + setExpandAlignProperties(ppigrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - Gtk::HBox* hb4 = Gtk::manage (new Gtk::HBox ()); - hb4->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_PPI")))); + Gtk::HSeparator* ppiseparator = Gtk::manage (new Gtk::HSeparator()); + ppiseparator->get_style_context()->add_class("grid-row-separator"); + + Gtk::Grid* ppisubgrid = Gtk::manage(new Gtk::Grid()); + ppisubgrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(ppisubgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + Gtk::Label* ppilab = Gtk::manage (new Gtk::Label (M("TP_CROP_PPI"))); + setExpandAlignProperties(ppilab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + ppi = Gtk::manage (new MySpinButton ()); - ppi->set_size_request (60, -1); - hb4->pack_start (*ppi); - - sizebox = Gtk::manage (new Gtk::VBox()); + setExpandAlignProperties(ppi, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); + ppi->set_width_chars(6); + + ppisubgrid->attach (*ppilab, 0, 0, 1, 1); + ppisubgrid->attach (*ppi, 1, 0, 1, 1); sizecm = Gtk::manage (new Gtk::Label (M("GENERAL_NA") + " cm x " + M("GENERAL_NA") + " cm")); + setExpandAlignProperties(sizecm, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); + sizein = Gtk::manage (new Gtk::Label (M("GENERAL_NA") + " in x " + M("GENERAL_NA") + " in")); - - sizebox->pack_start (*sizecm, Gtk::PACK_SHRINK, 4); - sizebox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 6); - sizebox->pack_start (*sizein, Gtk::PACK_SHRINK, 4); - sizebox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 6); - sizebox->pack_start (*hb4, Gtk::PACK_SHRINK, 2); - - ppibox->pack_start (*sizebox, Gtk::PACK_SHRINK, 1); - pack_start (*ppibox, Gtk::PACK_SHRINK, 0); + setExpandAlignProperties(sizein, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); + + ppigrid->attach (*ppiseparator, 0, 0, 2, 1); + ppigrid->attach (*sizecm, 1, 1, 1, 1); + ppigrid->attach (*sizein, 1, 2, 1, 1); + ppigrid->attach (*ppisubgrid, 0, 1, 1, 2); + pack_start (*ppigrid, Gtk::PACK_SHRINK, 0 ); ppi->set_value (300); - // ppibox END + // ppigrid END // Populate the combobox for (const auto& crop_ratio : crop_ratios) { @@ -241,10 +281,25 @@ Crop::Crop(): oconn = orientation->signal_changed().connect( sigc::mem_fun(*this, &Crop::ratioChanged) ); gconn = guide->signal_changed().connect( sigc::mem_fun(*this, &Crop::notifyListener) ); selectCrop->signal_pressed().connect( sigc::mem_fun(*this, &Crop::selectPressed) ); + resetCrop->signal_pressed().connect( sigc::mem_fun(*this, &Crop::doresetCrop) ); ppi->signal_value_changed().connect( sigc::mem_fun(*this, &Crop::refreshSize) ); nx = ny = nw = nh = 0; lastRotationDeg = 0; + +//GTK318 +#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 20 + methodgrid->set_row_spacing(4); + methodgrid->set_column_spacing(4); + settingsgrid->set_row_spacing(4); + settingsgrid->set_column_spacing(4); + ppigrid->set_row_spacing(4); + ppigrid->set_column_spacing(4); + ppisubgrid->set_row_spacing(4); + ppisubgrid->set_column_spacing(4); +#endif +//GTK318 + show_all (); } @@ -482,6 +537,23 @@ void Crop::selectPressed () } } +void Crop::doresetCrop () +{ + xDirty = true; + yDirty = true; + wDirty = true; + hDirty = true; + + int X = 0; + int Y = 0; + int W = maxw; + int H = maxh; + cropResized (X, Y, W, H); + idle_register.add(notifyListenerUI, this); + + refreshSpins(); +} + void Crop::notifyListener () { @@ -640,18 +712,51 @@ void Crop::ratioChanged () void Crop::adjustCropToRatio() { if (fixr->get_active() && !fixr->get_inconsistent()) { + int W1 = nw, W2 = nw; + int H1 = nh, H2 = nh; + int X1 = nx, X2 = nx; + int Y1 = ny, Y2 = ny; -// int W = w->get_value (); -// int H = h->get_value (); - int W = nw; - int H = nh; - int X = nx; - int Y = ny; + float r = getRatio(); - if (W >= H) { - cropWidth2Resized (X, Y, W, H); + H1 = round(W1 / r); + Y1 = ny + (nh - H1)/2.0; + if (Y1 < 0) { + Y1 = 0; + } + if (H1 > maxh) { + H1 = maxh; + W1 = round(H1 * r); + X1 = nx + (nw - W1)/2.0; + } + if (Y1+H1 > maxh) { + Y1 = maxh - H1; + } + + W2 = round(H2 * r); + X2 = nx + (nw - W2)/2.0; + if (X2 < 0) { + X2 = 0; + } + if (W2 > maxw) { + W2 = maxw; + H2 = round(W2 / r); + Y2 = ny + (nh - H2)/2.0; + } + if (X2+W2 > maxw) { + X2 = maxw - W2; + } + + if (W1 * H1 >= W2 * H2) { + nx = X1; + ny = Y1; + nw = W1; + nh = H1; } else { - cropHeight2Resized (X, Y, W, H); + nx = X2; + ny = Y2; + nw = W2; + nh = H2; } } @@ -1296,5 +1401,7 @@ void Crop::setBatchMode (bool batchMode) ratio->append (M("GENERAL_UNCHANGED")); orientation->append (M("GENERAL_UNCHANGED")); guide->append (M("GENERAL_UNCHANGED")); - removeIfThere (this, ppibox); + removeIfThere (this, ppigrid); + removeIfThere (methodgrid, selectCrop); + removeIfThere (methodgrid, resetCrop); } diff --git a/rtgui/crop.h b/rtgui/crop.h index d3b5c7b6b..a16683d1b 100644 --- a/rtgui/crop.h +++ b/rtgui/crop.h @@ -41,42 +41,43 @@ class Crop final : { public: Crop(); - ~Crop(); + ~Crop() override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; void ratioChanged (); void ratioFixedChanged (); // The toggle button void refreshSize (); void selectPressed (); + void doresetCrop (); void setDimensions (int mw, int mh); - void enabledChanged (); + void enabledChanged () override; void positionChanged (); void widthChanged (); void heightChanged (); bool refreshSpins (bool notify = false); void notifyListener (); - void sizeChanged (int w, int h, int ow, int oh); + void sizeChanged (int w, int h, int ow, int oh) override; void trim (rtengine::procparams::ProcParams* pp, int ow, int oh); void readOptions (); void writeOptions (); - void cropMoved (int &x, int &y, int &w, int &h); - void cropWidth1Resized (int &x, int &y, int &w, int &h, float custom_ratio=0.f); - void cropWidth2Resized (int &x, int &y, int &w, int &h, float custom_ratio=0.f); - void cropHeight1Resized (int &x, int &y, int &w, int &h, float custom_ratio=0.f); - void cropHeight2Resized (int &x, int &y, int &w, int &h, float custom_ratio=0.f); - void cropTopLeftResized (int &x, int &y, int &w, int &h, float custom_ratio=0.f); - void cropTopRightResized (int &x, int &y, int &w, int &h, float custom_ratio=0.f); - void cropBottomLeftResized (int &x, int &y, int &w, int &h, float custom_ratio=0.f); - void cropBottomRightResized (int &x, int &y, int &w, int &h, float custom_ratio=0.f); - void cropInit (int &x, int &y, int &w, int &h); - void cropResized (int &x, int &y, int& x2, int& y2); - void cropManipReady (); - bool inImageArea (int x, int y); - double getRatio () const; + void cropMoved (int &x, int &y, int &w, int &h) override; + void cropWidth1Resized (int &x, int &y, int &w, int &h, float custom_ratio=0.f) override; + void cropWidth2Resized (int &x, int &y, int &w, int &h, float custom_ratio=0.f) override; + void cropHeight1Resized (int &x, int &y, int &w, int &h, float custom_ratio=0.f) override; + void cropHeight2Resized (int &x, int &y, int &w, int &h, float custom_ratio=0.f) override; + void cropTopLeftResized (int &x, int &y, int &w, int &h, float custom_ratio=0.f) override; + void cropTopRightResized (int &x, int &y, int &w, int &h, float custom_ratio=0.f) override; + void cropBottomLeftResized (int &x, int &y, int &w, int &h, float custom_ratio=0.f) override; + void cropBottomRightResized (int &x, int &y, int &w, int &h, float custom_ratio=0.f) override; + void cropInit (int &x, int &y, int &w, int &h) override; + void cropResized (int &x, int &y, int& x2, int& y2) override; + void cropManipReady () override; + bool inImageArea (int x, int y) override; + double getRatio () const override; void setCropPanelListener (CropPanelListener* cl) { @@ -102,7 +103,9 @@ private: MyComboBoxText* ratio; MyComboBoxText* orientation; MyComboBoxText* guide; + Gtk::Button* selectCrop; + Gtk::Button* resetCrop; CropPanelListener* clistener; int opt; MySpinButton* x; @@ -112,8 +115,9 @@ private: MySpinButton* ppi; Gtk::Label* sizecm; Gtk::Label* sizein; - Gtk::VBox* ppibox; - Gtk::VBox* sizebox; + Gtk::Grid* ppigrid; + Gtk::Grid* methodgrid; + int maxw, maxh; double nx, ny; int nw, nh; diff --git a/rtgui/crophandler.h b/rtgui/crophandler.h index 14dd5062d..2690ca002 100644 --- a/rtgui/crophandler.h +++ b/rtgui/crophandler.h @@ -51,7 +51,7 @@ class CropHandler final : { public: CropHandler (); - ~CropHandler (); + ~CropHandler () override; void setDisplayHandler (CropDisplayHandler* l) { @@ -96,11 +96,11 @@ public: int cw, int ch, int skip - ); - void getWindow(int& cwx, int& cwy, int& cww, int& cwh, int& cskip); + ) override; + void getWindow(int& cwx, int& cwy, int& cww, int& cwh, int& cskip) override; // SizeListener interface - void sizeChanged (int w, int h, int ow, int oh); + void sizeChanged (int w, int h, int ow, int oh) override; void update (); diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index bb4b049a3..900be7bf5 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -44,7 +44,7 @@ CropWindow::CropWindow (ImageArea* parent, bool isLowUpdatePriority_, bool isDet crop_custom_ratio(0.f) { initZoomSteps(); - + Glib::RefPtr context = parent->get_pango_context () ; Pango::FontDescription fontd = context->get_font_description (); fontd.set_weight (Pango::WEIGHT_BOLD); @@ -275,6 +275,10 @@ void CropWindow::scroll (int state, GdkScrollDirection direction, int x, int y, } else { delta = deltaY; } + if (delta == 0.0 && direction == GDK_SCROLL_SMOOTH) { + // sometimes this case happens. To avoid zooming into the wrong direction in this case, we just do nothing + return; + } bool isUp = direction == GDK_SCROLL_UP || (direction == GDK_SCROLL_SMOOTH && delta < 0.0); if ((state & GDK_CONTROL_MASK) && onArea(ColorPicker, x, y)) { // resizing a color picker @@ -351,7 +355,7 @@ void CropWindow::buttonPress (int button, int type, int bstate, int x, int y) if ((bstate & GDK_SHIFT_MASK) && cropHandler.cropParams.w > 0 && cropHandler.cropParams.h > 0) { crop_custom_ratio = float(cropHandler.cropParams.w) / float(cropHandler.cropParams.h); } - + if (iarea->getToolMode () == TMColorPicker) { if (hoveredPicker) { if ((bstate & GDK_CONTROL_MASK) && !(bstate & GDK_SHIFT_MASK)) { @@ -1385,7 +1389,7 @@ void CropWindow::expose (Cairo::RefPtr cr) } } bool useBgColor = (state == SNormal || state == SDragPicker || state == SDeletePicker || state == SEditDrag1); - + if (cropHandler.cropPixbuf) { imgW = cropHandler.cropPixbuf->get_width (); imgH = cropHandler.cropPixbuf->get_height (); @@ -1653,7 +1657,7 @@ void CropWindow::expose (Cairo::RefPtr cr) const int shThreshold = options.shadowThreshold; const float ShawdowFac = 64.f / (options.shadowThreshold + 1); const float HighlightFac = 64.f / (256 - options.highlightThreshold); - const bool showclippedAny = (!showR && !showG && !showB && !showL); // will show clipping if any (all) of RGB chanels is (shadow) clipped + const bool showclippedAny = (!showR && !showG && !showB && !showL); // will show clipping if any (all) of RGB channels is (shadow) clipped #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) @@ -1960,7 +1964,7 @@ void CropWindow::zoomIn (bool toCursor, int cursorX, int cursorY) int x1 = cropHandler.cropParams.x + cropHandler.cropParams.w / 2; int y1 = cropHandler.cropParams.y + cropHandler.cropParams.h / 2; double cropd = sqrt(cropHandler.cropParams.h * cropHandler.cropParams.h + cropHandler.cropParams.w * cropHandler.cropParams.w) * zoomSteps[cropZoom].zoom; - double imd = sqrt(imgW * imgW + imgH + imgH); + double imd = sqrt(imgW * imgW + imgH * imgH); double d; // the more we can see of the crop, the more gravity towards crop center diff --git a/rtgui/cropwindow.h b/rtgui/cropwindow.h index 71729e66e..395b1b621 100644 --- a/rtgui/cropwindow.h +++ b/rtgui/cropwindow.h @@ -134,7 +134,7 @@ class CropWindow : public LWButtonListener, public CropDisplayHandler, public Ed public: CropHandler cropHandler; CropWindow (ImageArea* parent, bool isLowUpdatePriority_, bool isDetailWindow); - ~CropWindow (); + ~CropWindow () override; void setDecorated (bool decorated) { @@ -150,19 +150,19 @@ public: } void deleteColorPickers (); - void screenCoordToCropBuffer (int phyx, int phyy, int& cropx, int& cropy); - void screenCoordToImage (int phyx, int phyy, int& imgx, int& imgy); + void screenCoordToCropBuffer (int phyx, int phyy, int& cropx, int& cropy) override; + void screenCoordToImage (int phyx, int phyy, int& imgx, int& imgy) override; void screenCoordToCropCanvas (int phyx, int phyy, int& prevx, int& prevy); - void imageCoordToCropCanvas (int imgx, int imgy, int& phyx, int& phyy); - void imageCoordToScreen (int imgx, int imgy, int& phyx, int& phyy); - void imageCoordToCropBuffer (int imgx, int imgy, int& phyx, int& phyy); - void imageCoordToCropImage (int imgx, int imgy, int& phyx, int& phyy); - int scaleValueToImage (int value); - float scaleValueToImage (float value); - double scaleValueToImage (double value); - int scaleValueToCanvas (int value); - float scaleValueToCanvas (float value); - double scaleValueToCanvas (double value); + void imageCoordToCropCanvas (int imgx, int imgy, int& phyx, int& phyy) override; + void imageCoordToScreen (int imgx, int imgy, int& phyx, int& phyy) override; + void imageCoordToCropBuffer (int imgx, int imgy, int& phyx, int& phyy) override; + void imageCoordToCropImage (int imgx, int imgy, int& phyx, int& phyy) override; + int scaleValueToImage (int value) override; + float scaleValueToImage (float value) override; + double scaleValueToImage (double value) override; + int scaleValueToCanvas (int value) override; + float scaleValueToCanvas (float value) override; + double scaleValueToCanvas (double value) override; double getZoomFitVal (); void setPosition (int x, int y); void getPosition (int& x, int& y); @@ -197,8 +197,8 @@ public: void setEditSubscriber (EditSubscriber* newSubscriber); // interface lwbuttonlistener - void buttonPressed (LWButton* button, int actionCode, void* actionData); - void redrawNeeded (LWButton* button); + void buttonPressed (LWButton* button, int actionCode, void* actionData) override; + void redrawNeeded (LWButton* button) override; // crop handling void getCropRectangle (int& x, int& y, int& w, int& h); @@ -220,10 +220,10 @@ public: void delCropWindowListener (CropWindowListener* l); // crophandlerlistener interface - void cropImageUpdated (); - void cropWindowChanged (); - void initialImageArrived (); - void setDisplayPosition (int x, int y); + void cropImageUpdated () override; + void cropWindowChanged () override; + void initialImageArrived () override; + void setDisplayPosition (int x, int y) override; void remoteMove (int deltaX, int deltaY); void remoteMoveReady (); diff --git a/rtgui/curveeditor.h b/rtgui/curveeditor.h index afd4a1211..14699b42a 100644 --- a/rtgui/curveeditor.h +++ b/rtgui/curveeditor.h @@ -88,7 +88,7 @@ protected: public: CurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, CurveEditorSubGroup* ceSubGroup); - virtual ~CurveEditor (); + ~CurveEditor () override; void typeSelectionChanged (int n); void curveTypeToggled(); bool isUnChanged (); @@ -127,12 +127,12 @@ public: sigc::signal signal_curvepoint_click(); sigc::signal signal_curvepoint_release(); - void switchOffEditMode (); - bool mouseOver(const int modifierKey); - bool button1Pressed(const int modifierKey); - bool button1Released(); - bool drag1(const int modifierKey); - CursorShape getCursor(const int objectID); + void switchOffEditMode () override; + bool mouseOver(const int modifierKey) override; + bool button1Pressed(const int modifierKey) override; + bool button1Released() override; + bool drag1(const int modifierKey) override; + CursorShape getCursor(const int objectID) override; }; @@ -161,7 +161,7 @@ protected: public: DiagonalCurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, CurveEditorSubGroup* ceSubGroup); - std::vector getCurve (); + std::vector getCurve () override; void setRangeLabels(Glib::ustring r1, Glib::ustring r2, Glib::ustring r3, Glib::ustring r4); void getRangeLabels(Glib::ustring &r1, Glib::ustring &r2, Glib::ustring &r3, Glib::ustring &r4); void setRangeDefaultMilestones(double m1, double m2, double m3); @@ -191,15 +191,15 @@ protected: public: FlatCurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, CurveEditorSubGroup* ceSubGroup, bool isPeriodic = true); - virtual void setIdentityValue (const double iValue = 0.5) + void setIdentityValue (const double iValue = 0.5) override { identityValue = iValue; } - virtual double getIdentityValue () + double getIdentityValue () override { return identityValue; }; - std::vector getCurve (); + std::vector getCurve () override; // set the reset curve for a given curve type. This is optional; all curve type have a default reset curve void setResetCurve(FlatCurveType cType, const std::vector &resetCurve); diff --git a/rtgui/curveeditorgroup.h b/rtgui/curveeditorgroup.h index ffd522fae..80a1a95a4 100644 --- a/rtgui/curveeditorgroup.h +++ b/rtgui/curveeditorgroup.h @@ -71,7 +71,7 @@ public: */ CurveEditorGroup(Glib::ustring& curveDir, Glib::ustring groupLabel = ""); - ~CurveEditorGroup(); + ~CurveEditorGroup() override; void newLine(); void curveListComplete(); void setBatchMode (bool batchMode); @@ -97,8 +97,8 @@ protected: void hideCurrentCurve (); void updateGUI (CurveEditor* ce); void curveResetPressed (); - void curveChanged (); - float blendPipetteValues(CurveEditor* ce, float chan1, float chan2, float chan3); + void curveChanged () override; + float blendPipetteValues(CurveEditor* ce, float chan1, float chan2, float chan3) override; void setUnChanged (bool uc, CurveEditor* ce); }; diff --git a/rtgui/darkframe.h b/rtgui/darkframe.h index 0660c953d..c385a2153 100644 --- a/rtgui/darkframe.h +++ b/rtgui/darkframe.h @@ -55,8 +55,8 @@ public: DarkFrame (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; void darkFrameChanged (); void darkFrameReset (); diff --git a/rtgui/defringe.h b/rtgui/defringe.h index 81b870675..1aa6cc303 100644 --- a/rtgui/defringe.h +++ b/rtgui/defringe.h @@ -41,18 +41,18 @@ protected: public: Defringe (); - ~Defringe (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void autoOpenCurve (); - void curveChanged (); + ~Defringe () override; + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void autoOpenCurve () override; + void curveChanged () override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); - virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; + void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; }; diff --git a/rtgui/dehaze.h b/rtgui/dehaze.h index 0ae7749e4..322e0bf0c 100644 --- a/rtgui/dehaze.h +++ b/rtgui/dehaze.h @@ -39,15 +39,15 @@ public: Dehaze(); - void read(const rtengine::procparams::ProcParams *pp, const ParamsEdited *pedited=nullptr); - void write(rtengine::procparams::ProcParams *pp, ParamsEdited *pedited=nullptr); - void setDefaults(const rtengine::procparams::ProcParams *defParams, const ParamsEdited *pedited=nullptr); - void setBatchMode(bool batchMode); + void read(const rtengine::procparams::ProcParams *pp, const ParamsEdited *pedited=nullptr) override; + void write(rtengine::procparams::ProcParams *pp, ParamsEdited *pedited=nullptr) override; + void setDefaults(const rtengine::procparams::ProcParams *defParams, const ParamsEdited *pedited=nullptr) override; + void setBatchMode(bool batchMode) override; - void adjusterChanged(Adjuster *a, double newval); - void enabledChanged(); + void adjusterChanged(Adjuster *a, double newval) override; + void enabledChanged() override; void showDepthMapChanged(); void setAdjusterBehavior(bool strengthAdd); - void adjusterAutoToggled(Adjuster* a, bool newval) {} + void adjusterAutoToggled(Adjuster* a, bool newval) override {} }; diff --git a/rtgui/diagonalcurveeditorsubgroup.cc b/rtgui/diagonalcurveeditorsubgroup.cc index c23b25f9a..4cbde55cc 100644 --- a/rtgui/diagonalcurveeditorsubgroup.cc +++ b/rtgui/diagonalcurveeditorsubgroup.cc @@ -52,20 +52,34 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, // custom curve customCurveGrid = new Gtk::Grid (); customCurveGrid->set_orientation(Gtk::ORIENTATION_VERTICAL); - customCurveGrid->set_row_spacing(2); - customCurveGrid->set_column_spacing(2); + customCurveGrid->get_style_context()->add_class("curve-mainbox"); customCurve = Gtk::manage (new MyDiagonalCurve ()); customCurve->setType (DCT_Spline); + + Gtk::Grid* customCurveBox= Gtk::manage (new Gtk::Grid ()); + customCurveBox->get_style_context()->add_class("curve-curvebox"); + customCurveBox->add(*customCurve); Gtk::Grid* custombbox = Gtk::manage (new Gtk::Grid ()); // curvebboxpos 0=above, 1=right, 2=below, 3=left + custombbox->get_style_context()->add_class("curve-buttonbox"); - if (options.curvebboxpos == 0 || options.curvebboxpos == 2) { + if (options.curvebboxpos == 0) { custombbox->set_orientation(Gtk::ORIENTATION_HORIZONTAL); setExpandAlignProperties(custombbox, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - } else { + customCurveGrid->get_style_context()->add_class("top"); + } else if (options.curvebboxpos == 2) { + custombbox->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + setExpandAlignProperties(custombbox, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + customCurveGrid->get_style_context()->add_class("bottom"); + } else if (options.curvebboxpos == 1) { custombbox->set_orientation(Gtk::ORIENTATION_VERTICAL); setExpandAlignProperties(custombbox, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); + customCurveGrid->get_style_context()->add_class("right"); + } else if (options.curvebboxpos == 3){ + custombbox->set_orientation(Gtk::ORIENTATION_VERTICAL); + setExpandAlignProperties(custombbox, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); + customCurveGrid->get_style_context()->add_class("left"); } editPointCustom = Gtk::manage (new Gtk::ToggleButton ()); @@ -90,22 +104,23 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, custombbox->attach_next_to(*saveCustom, sideEnd, 1, 1); customCoordAdjuster = Gtk::manage (new CoordinateAdjuster(customCurve, this)); + customCoordAdjuster->get_style_context()->add_class("curve-spinbuttonbox"); // Button box position: 0=above, 1=right, 2=below, 3=left - customCurveGrid->add(*customCurve); + customCurveGrid->add(*customCurveBox); customCurve->set_hexpand(true); if (options.curvebboxpos == 0) { - customCurveGrid->attach_next_to(*custombbox, *customCurve, Gtk::POS_TOP, 1, 1); - customCurveGrid->attach_next_to(*customCoordAdjuster, *customCurve, Gtk::POS_BOTTOM, 1, 1); + customCurveGrid->attach_next_to(*custombbox, *customCurveBox, Gtk::POS_TOP, 1, 1); + customCurveGrid->attach_next_to(*customCoordAdjuster, *customCurveBox, Gtk::POS_BOTTOM, 1, 1); } else if (options.curvebboxpos == 1) { - customCurveGrid->attach_next_to(*custombbox, *customCurve, Gtk::POS_RIGHT, 1, 1); - customCurveGrid->attach_next_to(*customCoordAdjuster, *customCurve, Gtk::POS_BOTTOM, 2, 1); + customCurveGrid->attach_next_to(*custombbox, *customCurveBox, Gtk::POS_RIGHT, 1, 1); + customCurveGrid->attach_next_to(*customCoordAdjuster, *customCurveBox, Gtk::POS_BOTTOM, 2, 1); } else if (options.curvebboxpos == 2) { - customCurveGrid->attach_next_to(*customCoordAdjuster, *customCurve, Gtk::POS_BOTTOM, 1, 1); + customCurveGrid->attach_next_to(*customCoordAdjuster, *customCurveBox, Gtk::POS_BOTTOM, 1, 1); customCurveGrid->attach_next_to(*custombbox, *customCoordAdjuster, Gtk::POS_BOTTOM, 1, 1); } else if (options.curvebboxpos == 3) { - customCurveGrid->attach_next_to(*custombbox, *customCurve, Gtk::POS_LEFT, 1, 1); + customCurveGrid->attach_next_to(*custombbox, *customCurveBox, Gtk::POS_LEFT, 1, 1); customCurveGrid->attach_next_to(*customCoordAdjuster, *custombbox, Gtk::POS_BOTTOM, 2, 1); } @@ -128,21 +143,35 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, // NURBS curve NURBSCurveGrid = new Gtk::Grid (); - NURBSCurveGrid->set_row_spacing(4); - NURBSCurveGrid->set_column_spacing(4); NURBSCurveGrid->set_orientation(Gtk::ORIENTATION_VERTICAL); + NURBSCurveGrid->get_style_context()->add_class("curve-mainbox"); NURBSCurve = Gtk::manage (new MyDiagonalCurve ()); NURBSCurve->setType (DCT_NURBS); + + Gtk::Grid* NURBSCurveBox= Gtk::manage (new Gtk::Grid ()); + NURBSCurveBox->get_style_context()->add_class("curve-curvebox"); + NURBSCurveBox->add(*NURBSCurve); Gtk::Grid* NURBSbbox = Gtk::manage (new Gtk::Grid ()); + NURBSbbox->get_style_context()->add_class("curve-buttonbox"); - if (options.curvebboxpos == 0 || options.curvebboxpos == 2) { + if (options.curvebboxpos == 0) { NURBSbbox->set_orientation(Gtk::ORIENTATION_HORIZONTAL); setExpandAlignProperties(NURBSbbox, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - } else { + NURBSCurveGrid->get_style_context()->add_class("top"); + } else if (options.curvebboxpos == 2) { + NURBSbbox->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + setExpandAlignProperties(NURBSbbox, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + NURBSCurveGrid->get_style_context()->add_class("bottom"); + } else if (options.curvebboxpos == 1) { NURBSbbox->set_orientation(Gtk::ORIENTATION_VERTICAL); setExpandAlignProperties(NURBSbbox, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); + NURBSCurveGrid->get_style_context()->add_class("right"); + } else if (options.curvebboxpos == 3){ + NURBSbbox->set_orientation(Gtk::ORIENTATION_VERTICAL); + setExpandAlignProperties(NURBSbbox, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); + NURBSCurveGrid->get_style_context()->add_class("left"); } editPointNURBS = Gtk::manage (new Gtk::ToggleButton ()); @@ -167,22 +196,23 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, NURBSbbox->attach_next_to(*saveNURBS, sideEnd, 1, 1); NURBSCoordAdjuster = Gtk::manage (new CoordinateAdjuster(NURBSCurve, this)); + NURBSCoordAdjuster->get_style_context()->add_class("curve-spinbuttonbox"); // Button box position: 0=above, 1=right, 2=below, 3=left - NURBSCurveGrid->add(*NURBSCurve); + NURBSCurveGrid->add(*NURBSCurveBox); NURBSCurve->set_hexpand(true); if (options.curvebboxpos == 0) { - NURBSCurveGrid->attach_next_to(*NURBSbbox, *NURBSCurve, Gtk::POS_TOP, 1, 1); - NURBSCurveGrid->attach_next_to(*NURBSCoordAdjuster, *NURBSCurve, Gtk::POS_BOTTOM, 1, 1); + NURBSCurveGrid->attach_next_to(*NURBSbbox, *NURBSCurveBox, Gtk::POS_TOP, 1, 1); + NURBSCurveGrid->attach_next_to(*NURBSCoordAdjuster, *NURBSCurveBox, Gtk::POS_BOTTOM, 1, 1); } else if (options.curvebboxpos == 1) { - NURBSCurveGrid->attach_next_to(*NURBSbbox, *NURBSCurve, Gtk::POS_RIGHT, 1, 1); - NURBSCurveGrid->attach_next_to(*NURBSCoordAdjuster, *NURBSCurve, Gtk::POS_BOTTOM, 2, 1); + NURBSCurveGrid->attach_next_to(*NURBSbbox, *NURBSCurveBox, Gtk::POS_RIGHT, 1, 1); + NURBSCurveGrid->attach_next_to(*NURBSCoordAdjuster, *NURBSCurveBox, Gtk::POS_BOTTOM, 2, 1); } else if (options.curvebboxpos == 2) { - NURBSCurveGrid->attach_next_to(*NURBSCoordAdjuster, *NURBSCurve, Gtk::POS_BOTTOM, 1, 1); + NURBSCurveGrid->attach_next_to(*NURBSCoordAdjuster, *NURBSCurveBox, Gtk::POS_BOTTOM, 1, 1); NURBSCurveGrid->attach_next_to(*NURBSbbox, *NURBSCoordAdjuster, Gtk::POS_BOTTOM, 1, 1); } else if (options.curvebboxpos == 3) { - NURBSCurveGrid->attach_next_to(*NURBSbbox, *NURBSCurve, Gtk::POS_LEFT, 1, 1); + NURBSCurveGrid->attach_next_to(*NURBSbbox, *NURBSCurveBox, Gtk::POS_LEFT, 1, 1); NURBSCurveGrid->attach_next_to(*NURBSCoordAdjuster, *NURBSbbox, Gtk::POS_BOTTOM, 2, 1); } @@ -205,25 +235,40 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, // parametric curve paramCurveGrid = new Gtk::Grid (); - paramCurveGrid->set_row_spacing(4); - paramCurveGrid->set_column_spacing(4); paramCurveGrid->set_orientation(Gtk::ORIENTATION_VERTICAL); + paramCurveGrid->get_style_context()->add_class("curve-mainbox"); paramCurve = Gtk::manage (new MyDiagonalCurve ()); paramCurve->setType (DCT_Parametric); + + Gtk::Grid* paramCurveBox= Gtk::manage (new Gtk::Grid ()); + paramCurveBox->get_style_context()->add_class("curve-curvebox"); + paramCurveBox->add(*paramCurve); Gtk::Grid* parambbox = Gtk::manage (new Gtk::Grid ()); + parambbox->get_style_context()->add_class("curve-buttonbox"); - if (options.curvebboxpos == 0 || options.curvebboxpos == 2) { + if (options.curvebboxpos == 0) { parambbox->set_orientation(Gtk::ORIENTATION_HORIZONTAL); setExpandAlignProperties(parambbox, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - } else { + paramCurveGrid->get_style_context()->add_class("top"); + } else if (options.curvebboxpos == 2) { + parambbox->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + setExpandAlignProperties(parambbox, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + paramCurveGrid->get_style_context()->add_class("bottom"); + } else if (options.curvebboxpos == 1) { parambbox->set_orientation(Gtk::ORIENTATION_VERTICAL); setExpandAlignProperties(parambbox, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); + paramCurveGrid->get_style_context()->add_class("right"); + } else if (options.curvebboxpos == 3){ + parambbox->set_orientation(Gtk::ORIENTATION_VERTICAL); + setExpandAlignProperties(parambbox, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); + paramCurveGrid->get_style_context()->add_class("left"); } shcSelector = Gtk::manage (new SHCSelector ()); - shcSelector->set_name("CurveSHCSelector"); // To handle the 4px gap between the SHCSelector and the curve through CSS + shcSelector->set_name("CurveSHCSelector"); + paramCurveBox->attach_next_to(*shcSelector, *paramCurve, Gtk::POS_BOTTOM, 1, 1); editParam = Gtk::manage (new Gtk::ToggleButton()); initButton(*editParam, Glib::ustring("crosshair-node-curve.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); @@ -272,8 +317,7 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, // paramCurveSliderBox needed to set vspacing(4) between curve+shc and sliders without vspacing between each slider Gtk::Grid* paramCurveSliderBox = Gtk::manage (new Gtk::Grid()); paramCurveSliderBox->set_orientation(Gtk::ORIENTATION_VERTICAL); - paramCurveSliderBox->set_column_spacing(2); - paramCurveSliderBox->set_row_spacing(2); + paramCurveSliderBox->get_style_context()->add_class("curve-sliderbox"); paramCurveSliderBox->attach_next_to(*evhighlights, Gtk::POS_TOP, 1, 1); paramCurveSliderBox->attach_next_to(*evlights, Gtk::POS_TOP, 1, 1); @@ -283,24 +327,20 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, paramCurveGrid->show_all (); // Button box position: 0=above, 1=right, 2=below, 3=left - paramCurveGrid->add(*paramCurve); + paramCurveGrid->add(*paramCurveBox); paramCurve->set_hexpand(true); if (options.curvebboxpos == 0) { - paramCurveGrid->attach_next_to(*parambbox, *paramCurve, Gtk::POS_TOP, 1, 1); - paramCurveGrid->attach_next_to(*shcSelector, *paramCurve, Gtk::POS_BOTTOM, 1, 1); - paramCurveGrid->attach_next_to(*paramCurveSliderBox, *shcSelector, Gtk::POS_BOTTOM, 1, 1); + paramCurveGrid->attach_next_to(*parambbox, *paramCurveBox, Gtk::POS_TOP, 1, 1); + paramCurveGrid->attach_next_to(*paramCurveSliderBox, *paramCurveBox, Gtk::POS_BOTTOM, 1, 1); } else if (options.curvebboxpos == 1) { - paramCurveGrid->attach_next_to(*shcSelector, *paramCurve, Gtk::POS_BOTTOM, 1, 1); - paramCurveGrid->attach_next_to(*parambbox, *paramCurve, Gtk::POS_RIGHT, 1, 2); - paramCurveGrid->attach_next_to(*paramCurveSliderBox, *shcSelector, Gtk::POS_BOTTOM, 2, 1); + paramCurveGrid->attach_next_to(*parambbox, *paramCurveBox, Gtk::POS_RIGHT, 1, 1); + paramCurveGrid->attach_next_to(*paramCurveSliderBox, *paramCurveBox, Gtk::POS_BOTTOM, 2, 1); } else if (options.curvebboxpos == 2) { - paramCurveGrid->attach_next_to(*shcSelector, *paramCurve, Gtk::POS_BOTTOM, 1, 1); - paramCurveGrid->attach_next_to(*parambbox, *shcSelector, Gtk::POS_BOTTOM, 1, 1); + paramCurveGrid->attach_next_to(*parambbox, *paramCurveBox, Gtk::POS_BOTTOM, 1, 1); paramCurveGrid->attach_next_to(*paramCurveSliderBox, *parambbox, Gtk::POS_BOTTOM, 1, 1); } else if (options.curvebboxpos == 3) { - paramCurveGrid->attach_next_to(*shcSelector, *paramCurve, Gtk::POS_BOTTOM, 1, 1); - paramCurveGrid->attach_next_to(*parambbox, *paramCurve, Gtk::POS_LEFT, 1, 2); + paramCurveGrid->attach_next_to(*parambbox, *paramCurveBox, Gtk::POS_LEFT, 1, 1); paramCurveGrid->attach_next_to(*paramCurveSliderBox, *parambbox, Gtk::POS_BOTTOM, 2, 1); } diff --git a/rtgui/diagonalcurveeditorsubgroup.h b/rtgui/diagonalcurveeditorsubgroup.h index c9dafeadd..39cc86973 100644 --- a/rtgui/diagonalcurveeditorsubgroup.h +++ b/rtgui/diagonalcurveeditorsubgroup.h @@ -75,37 +75,37 @@ protected: public: DiagonalCurveEditorSubGroup(CurveEditorGroup* prt, Glib::ustring& curveDir); - virtual ~DiagonalCurveEditorSubGroup(); + ~DiagonalCurveEditorSubGroup() override; DiagonalCurveEditor* addCurve(Glib::ustring curveLabel = ""); - virtual void updateBackgroundHistogram (CurveEditor* ce); - void switchGUI(); - void refresh(CurveEditor *curveToRefresh); - void editModeSwitchedOff (); - void pipetteMouseOver(EditDataProvider *provider, int modifierKey); - bool pipetteButton1Pressed(EditDataProvider *provider, int modifierKey); - void pipetteButton1Released(EditDataProvider *provider); - void pipetteDrag(EditDataProvider *provider, int modifierKey); - void showCoordinateAdjuster(CoordinateProvider *provider); - void stopNumericalAdjustment(); + void updateBackgroundHistogram (CurveEditor* ce) override; + void switchGUI() override; + void refresh(CurveEditor *curveToRefresh) override; + void editModeSwitchedOff () override; + void pipetteMouseOver(EditDataProvider *provider, int modifierKey) override; + bool pipetteButton1Pressed(EditDataProvider *provider, int modifierKey) override; + void pipetteButton1Released(EditDataProvider *provider) override; + void pipetteDrag(EditDataProvider *provider, int modifierKey) override; + void showCoordinateAdjuster(CoordinateProvider *provider) override; + void stopNumericalAdjustment() override; - bool curveReset (CurveEditor *ce); + bool curveReset (CurveEditor *ce) override; protected: - void storeCurveValues (CurveEditor* ce, const std::vector& p); - void storeDisplayedCurve (); - void restoreDisplayedHistogram (); + void storeCurveValues (CurveEditor* ce, const std::vector& p) override; + void storeDisplayedCurve () override; + void restoreDisplayedHistogram () override; void savePressed (); void loadPressed (); void copyPressed (); void pastePressed (); void editPointToggled(Gtk::ToggleButton *button); void editToggled (Gtk::ToggleButton *button); - void removeEditor (); - const std::vector getCurveFromGUI (int type); - void shcChanged (); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void removeEditor () override; + const std::vector getCurveFromGUI (int type) override; + void shcChanged () override; + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; bool adjusterEntered (GdkEventCrossing* ev, int ac); bool adjusterLeft (GdkEventCrossing* ev, int ac); void setSubGroupRangeLabels(Glib::ustring r1, Glib::ustring r2, Glib::ustring r3, Glib::ustring r4); diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index b37b4f045..b992550e7 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -227,7 +227,7 @@ void DirBrowser::updateDirTree (const Gtk::TreeModel::iterator& iter) void DirBrowser::updateVolumes () { - int nvolumes = GetLogicalDrives (); + unsigned int nvolumes = GetLogicalDrives (); if (nvolumes != volumes) { GThreadLock lock; diff --git a/rtgui/dirbrowser.h b/rtgui/dirbrowser.h index e8eefdd36..9d004f5f9 100644 --- a/rtgui/dirbrowser.h +++ b/rtgui/dirbrowser.h @@ -84,12 +84,12 @@ private: bool expandSuccess; #ifdef WIN32 - int volumes; + unsigned int volumes; public: void updateVolumes (); void updateDirTree (const Gtk::TreeModel::iterator& iter); void updateDirTreeRoot (); - void winDirChanged (); + void winDirChanged () override; private: void addRoot (char letter); #endif @@ -101,7 +101,7 @@ private: public: DirBrowser (); - ~DirBrowser(); + ~DirBrowser() override; void fillDirTree (); void on_sort_column_changed() const; diff --git a/rtgui/dirpyrdenoise.h b/rtgui/dirpyrdenoise.h index 26a55ba20..2ee1863ab 100644 --- a/rtgui/dirpyrdenoise.h +++ b/rtgui/dirpyrdenoise.h @@ -38,25 +38,25 @@ class DirPyrDenoise final : { public: DirPyrDenoise (); - ~DirPyrDenoise (); + ~DirPyrDenoise () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void curveChanged (CurveEditor* ce); - void setEditProvider (EditDataProvider *provider); - void autoOpenCurve (); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void curveChanged (CurveEditor* ce) override; + void setEditProvider (EditDataProvider *provider) override; + void autoOpenCurve () override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; void medianChanged (); - void chromaChanged (double autchroma, double autred, double autblue); + void chromaChanged (double autchroma, double autred, double autblue) override; bool chromaComputed_ (); - void noiseChanged (double nresid, double highresid); + void noiseChanged (double nresid, double highresid) override; bool noiseComputed_ (); - void noiseTilePrev (int tileX, int tileY, int prevX, int prevY, int sizeT, int sizeP); + void noiseTilePrev (int tileX, int tileY, int prevX, int prevY, int sizeT, int sizeP) override; bool TilePrevComputed_ (); // void perform_toggled (); @@ -72,10 +72,10 @@ public: void methodmedChanged (); void rgbmethodChanged (); void smethodChanged (); - virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller); + void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; void setAdjusterBehavior (bool lumaadd, bool lumdetadd, bool chromaadd, bool chromaredadd, bool chromablueadd, bool gammaadd, bool passesadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; Glib::ustring getSettingString (); private: diff --git a/rtgui/dirpyrequalizer.h b/rtgui/dirpyrequalizer.h index 3b5549e55..d7903116b 100644 --- a/rtgui/dirpyrequalizer.h +++ b/rtgui/dirpyrequalizer.h @@ -55,28 +55,28 @@ protected: public: DirPyrEqualizer (); - virtual ~DirPyrEqualizer (); + ~DirPyrEqualizer () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool skinadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; void cbdlMethodChanged(); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged(); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged() override; void gamutlabToggled (); void lumaneutralPressed (); void lumacontrastPlusPressed (); void lumacontrastMinusPressed (); - void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop); - void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight); - void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop); - void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight); - void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR); + void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) override; + void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) override; + void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) override; }; #endif diff --git a/rtgui/distortion.h b/rtgui/distortion.h index b1134e426..ce1e81046 100644 --- a/rtgui/distortion.h +++ b/rtgui/distortion.h @@ -37,15 +37,15 @@ public: Distortion (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool vadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; void idPressed (); void setLensGeomListener (LensGeomListener* l) { diff --git a/rtgui/edit.h b/rtgui/edit.h index f7c4f7292..786339745 100644 --- a/rtgui/edit.h +++ b/rtgui/edit.h @@ -352,9 +352,9 @@ public: Circle (rtengine::Coord& center, int radius, bool filled = false, bool radiusInImageSpace = false); Circle (int centerX, int centerY, int radius, bool filled = false, bool radiusInImageSpace = false); - void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); + void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; }; class Line : public Geometry @@ -367,9 +367,9 @@ public: Line (rtengine::Coord& begin, rtengine::Coord& end); Line (int beginX, int beginY, int endX, int endY); - void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); + void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; }; class Polyline : public Geometry @@ -380,9 +380,9 @@ public: Polyline (); - void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); + void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; }; class Rectangle : public Geometry @@ -398,9 +398,9 @@ public: void setXYXY(int left, int top, int right, int bottom); void setXYWH(rtengine::Coord topLeft, rtengine::Coord widthHeight); void setXYXY(rtengine::Coord topLeft, rtengine::Coord bottomRight); - void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); + void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; }; class OPIcon : public Geometry // OP stands for "On Preview" @@ -435,9 +435,9 @@ public: const Cairo::RefPtr getActiveImg(); const Cairo::RefPtr getDraggedImg(); const Cairo::RefPtr getInsensitiveImg(); - void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); + void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; + void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; }; class OPAdjuster : public Geometry // OP stands for "On Preview" diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 1f46d60e7..f44e682f2 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -1640,6 +1640,10 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) iareapanel->imageArea->previewModePanel->toggleB(); return true; + case GDK_KEY_p: //preview mode Sharpening Contrast mask + iareapanel->imageArea->indClippedPanel->toggleSharpMask(); + return true; + case GDK_KEY_v: //preview mode Luminosity iareapanel->imageArea->previewModePanel->toggleL(); return true; diff --git a/rtgui/editorpanel.h b/rtgui/editorpanel.h index 29ca70554..de5360646 100644 --- a/rtgui/editorpanel.h +++ b/rtgui/editorpanel.h @@ -56,11 +56,11 @@ class EditorPanel final : { public: explicit EditorPanel (FilePanel* filePanel = nullptr); - ~EditorPanel (); + ~EditorPanel () override; void open (Thumbnail* tmb, rtengine::InitialImage* isrc); void setAspect (); - void on_realize (); + void on_realize () override; void leftPaneButtonReleased (GdkEventButton *event); void rightPaneButtonReleased (GdkEventButton *event); @@ -83,10 +83,10 @@ public: return realized; } // ProgressListener interface - void setProgress(double p); - void setProgressStr(const Glib::ustring& str); - void setProgressState(bool inProcessing); - void error(const Glib::ustring& descr); + void setProgress(double p) override; + void setProgressStr(const Glib::ustring& str) override; + void setProgressState(bool inProcessing) override; + void error(const Glib::ustring& descr) override; void error(const Glib::ustring& title, const Glib::ustring& descr); void displayError(const Glib::ustring& title, const Glib::ustring& descr); // this is called by error in the gtk thread @@ -98,14 +98,14 @@ public: const rtengine::ProcEvent& ev, const Glib::ustring& descr, const ParamsEdited* paramsEdited = nullptr - ); - void clearParamChanges(); + ) override; + void clearParamChanges() override; // thumbnaillistener interface - void procParamsChanged (Thumbnail* thm, int whoChangedIt); + void procParamsChanged (Thumbnail* thm, int whoChangedIt) override; // HistoryBeforeLineListener - void historyBeforeLineChanged (const rtengine::procparams::ProcParams& params); + void historyBeforeLineChanged (const rtengine::procparams::ProcParams& params) override; // HistogramListener void histogramChanged( @@ -123,7 +123,7 @@ public: const LUTu& histBlueRaw, const LUTu& histChroma, const LUTu& histLRETI - ); + ) override; // event handlers void info_toggled (); diff --git a/rtgui/editwindow.h b/rtgui/editwindow.h index 3c13936f5..42c8ec20e 100644 --- a/rtgui/editwindow.h +++ b/rtgui/editwindow.h @@ -40,9 +40,6 @@ private: void restoreWindow(); bool updateResolution(); void setAppIcon(); - bool on_configure_event(GdkEventConfigure* event); - bool on_delete_event(GdkEventAny* event); - void on_realize (); public: // Check if the system has more than one display and option is set @@ -62,9 +59,12 @@ public: void toFront(); bool keyPressed (GdkEventKey* event); + bool on_configure_event(GdkEventConfigure* event) override; + bool on_delete_event(GdkEventAny* event) override; //bool on_window_state_event(GdkEventWindowState* event); void on_mainNB_switch_page(Gtk::Widget* page, guint page_num); void set_title_decorated(Glib::ustring fname); + void on_realize () override; }; #endif diff --git a/rtgui/epd.h b/rtgui/epd.h index c40133c3a..f2073a976 100644 --- a/rtgui/epd.h +++ b/rtgui/epd.h @@ -36,14 +36,14 @@ public: EdgePreservingDecompositionUI(); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; void setAdjusterBehavior (bool stAdd, bool gAdd, bool esAdd, bool scAdd, bool rAdd); }; diff --git a/rtgui/exifpanel.cc b/rtgui/exifpanel.cc index 42cbba0a5..ee2785924 100644 --- a/rtgui/exifpanel.cc +++ b/rtgui/exifpanel.cc @@ -264,7 +264,7 @@ void ExifPanel::addDirectory (const TagDirectory* dir, Gtk::TreeModel::Children Tag* t2 = (const_cast (dir))->getTagByIndex (j); const TagAttrib* currAttrib = t2->getAttrib(); - if (currAttrib && ((options.lastShowAllExif) || (!options.lastShowAllExif && currAttrib->action != AC_SYSTEM))) { + if (currAttrib && (options.lastShowAllExif || currAttrib->action != AC_SYSTEM)) { addSeparator(); hasContent = true; break; diff --git a/rtgui/exifpanel.h b/rtgui/exifpanel.h index fbaed22f9..9db4cb7fe 100644 --- a/rtgui/exifpanel.h +++ b/rtgui/exifpanel.h @@ -97,11 +97,11 @@ private: public: ExifPanel (); - virtual ~ExifPanel(); + ~ExifPanel() override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void setImageData (const rtengine::FramesMetaData* id); diff --git a/rtgui/fattaltonemap.h b/rtgui/fattaltonemap.h index fb6f1acd6..76e850c4e 100644 --- a/rtgui/fattaltonemap.h +++ b/rtgui/fattaltonemap.h @@ -36,14 +36,14 @@ public: FattalToneMapping(); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; void setAdjusterBehavior(bool amountAdd, bool thresholdAdd, bool anchorAdd); }; diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index f83e39146..8a508c747 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -127,9 +127,7 @@ void findOriginalEntries (const std::vector& entries) FileBrowser::FileBrowser () : menuLabel(nullptr), -#ifdef WIN32 miOpenDefaultViewer(nullptr), -#endif selectDF(nullptr), thisIsDF(nullptr), autoDF(nullptr), diff --git a/rtgui/filebrowser.h b/rtgui/filebrowser.h index 5debe9a6c..f15c7c5e8 100644 --- a/rtgui/filebrowser.h +++ b/rtgui/filebrowser.h @@ -136,7 +136,7 @@ protected: public: FileBrowser (); - ~FileBrowser (); + ~FileBrowser () override; void addEntry (FileBrowserEntry* entry); // can be called from any thread void addEntry_ (FileBrowserEntry* entry); // this must be executed inside the gtk thread @@ -164,17 +164,17 @@ public: return numFiltered; } - void buttonPressed (LWButton* button, int actionCode, void* actionData); - void redrawNeeded (LWButton* button); - bool checkFilter (ThumbBrowserEntryBase* entry); - void rightClicked (ThumbBrowserEntryBase* entry); - void doubleClicked (ThumbBrowserEntryBase* entry); - bool keyPressed (GdkEventKey* event); + void buttonPressed (LWButton* button, int actionCode, void* actionData) override; + void redrawNeeded (LWButton* button) override; + bool checkFilter (ThumbBrowserEntryBase* entry) override; + void rightClicked (ThumbBrowserEntryBase* entry) override; + void doubleClicked (ThumbBrowserEntryBase* entry) override; + bool keyPressed (GdkEventKey* event) override; - void saveThumbnailHeight (int height); - int getThumbnailHeight (); + void saveThumbnailHeight (int height) override; + int getThumbnailHeight () override; - bool isInTabMode() + bool isInTabMode() override { return tbl ? tbl->isInTabMode() : false; } @@ -191,18 +191,18 @@ public: void openDefaultViewer (int destination); #endif - void thumbRearrangementNeeded (); + void thumbRearrangementNeeded () override; void _thumbRearrangementNeeded (); - void selectionChanged (); + void selectionChanged () override; void setExportPanel (ExportPanel* expanel); // exportpanel interface - void exportRequested(); + void exportRequested() override; - void storeCurrentValue(); - void updateProfileList(); - void restoreValue(); + void storeCurrentValue() override; + void updateProfileList() override; + void restoreValue() override; type_trash_changed trash_changed(); }; diff --git a/rtgui/filebrowserentry.h b/rtgui/filebrowserentry.h index 40a1eb975..03a652c6b 100644 --- a/rtgui/filebrowserentry.h +++ b/rtgui/filebrowserentry.h @@ -67,7 +67,7 @@ class FileBrowserEntry : public ThumbBrowserEntryBase, bool onArea (CursorArea a, int x, int y); void updateCursor (int x, int y); void drawStraightenGuide (Cairo::RefPtr c); - void customBackBufferUpdate (Cairo::RefPtr c); + void customBackBufferUpdate (Cairo::RefPtr c) override; public: @@ -78,8 +78,8 @@ public: static Cairo::RefPtr ps; FileBrowserEntry (Thumbnail* thm, const Glib::ustring& fname); - ~FileBrowserEntry (); - void draw (Cairo::RefPtr cc); + ~FileBrowserEntry () override; + void draw (Cairo::RefPtr cc) override; void setImageAreaToolListener (ImageAreaToolListener* l) { @@ -88,23 +88,23 @@ public: FileThumbnailButtonSet* getThumbButtonSet (); - void refreshThumbnailImage (); - void refreshQuickThumbnailImage (); - void calcThumbnailSize (); + void refreshThumbnailImage () override; + void refreshQuickThumbnailImage () override; + void calcThumbnailSize () override; - virtual std::vector > getIconsOnImageArea (); - virtual std::vector > getSpecificityIconsOnImageArea (); - virtual void getIconSize (int& w, int& h); + std::vector > getIconsOnImageArea () override; + std::vector > getSpecificityIconsOnImageArea () override; + void getIconSize (int& w, int& h) override; // thumbnaillistener interface - void procParamsChanged (Thumbnail* thm, int whoChangedIt); + void procParamsChanged (Thumbnail* thm, int whoChangedIt) override; // thumbimageupdatelistener interface - void updateImage(rtengine::IImage8* img, double scale, const rtengine::procparams::CropParams& cropParams); + void updateImage(rtengine::IImage8* img, double scale, const rtengine::procparams::CropParams& cropParams) override; void _updateImage(rtengine::IImage8* img, double scale, const rtengine::procparams::CropParams& cropParams); // inside gtk thread - virtual bool motionNotify (int x, int y); - virtual bool pressNotify (int button, int type, int bstate, int x, int y); - virtual bool releaseNotify (int button, int type, int bstate, int x, int y); + bool motionNotify (int x, int y) override; + bool pressNotify (int button, int type, int bstate, int x, int y) override; + bool releaseNotify (int button, int type, int bstate, int x, int y) override; }; #endif diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 55e293718..0b45d3e3d 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -1623,26 +1623,6 @@ BrowserFilter FileCatalog::getFilter () anyRankFilterActive || anyCLabelFilterActive || anyEditedFilterActive; } - if( options.rtSettings.verbose ) { - printf ("\n**************** FileCatalog::getFilter *** AFTER STEP 1 \n"); - - for (int i = 0; i <= 5; i++) { - printf ("filter.showRanked[%i] = %i\n", i, filter.showRanked[i]); - } - - for (int i = 0; i <= 5; i++) { - printf ("filter.showCLabeled[%i] = %i\n", i, filter.showCLabeled[i]); - } - - for (int i = 0; i < 2; i++) { - printf ("filter.showEdited[%i] = %i\n", i, filter.showEdited[i]); - } - - for (int i = 0; i < 2; i++) { - printf ("filter.showRecentlySaved[%i] = %i\n", i, filter.showRecentlySaved[i]); - } - } - filter.multiselect = false; /* @@ -1672,28 +1652,6 @@ BrowserFilter FileCatalog::getFilter () filter.showEdited[i] = anyEditedFilterActive ? bEdited[i]->get_active() : true; filter.showRecentlySaved[i] = anyRecentlySavedFilterActive ? bRecentlySaved[i]->get_active() : true; } - - if( options.rtSettings.verbose ) { - printf ("\n**************** FileCatalog::getFilter *** AFTER STEP 2 \n"); - - for (int i = 0; i <= 5; i++) { - printf ("filter.showRanked[%i] = %i\n", i, filter.showRanked[i]); - } - - for (int i = 0; i <= 5; i++) { - printf ("filter.showCLabeled[%i] = %i\n", i, filter.showCLabeled[i]); - } - - for (int i = 0; i < 2; i++) { - printf ("filter.showEdited[%i] = %i\n", i, filter.showEdited[i]); - } - - for (int i = 0; i < 2; i++) { - printf ("filter.showRecentlySaved[%i] = %i\n", i, filter.showRecentlySaved[i]); - } - - printf ("filter.multiselect = %i\n", filter.multiselect); - } } diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 0af52fd28..407535ba0 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -164,14 +164,14 @@ public: ToolBar* toolBar; FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel); - ~FileCatalog(); + ~FileCatalog() override; void dirSelected (const Glib::ustring& dirname, const Glib::ustring& openfile); void closeDir (); void refreshEditedState (const std::set& efiles); // previewloaderlistener interface - void previewReady (int dir_id, FileBrowserEntry* fdn); - void previewsFinished (int dir_id); + void previewReady (int dir_id, FileBrowserEntry* fdn) override; + void previewsFinished (int dir_id) override; void previewsFinishedUI (); void _refreshProgressBar (); @@ -195,10 +195,10 @@ public: } // filterpanel interface - void exifFilterChanged (); + void exifFilterChanged () override; // exportpanel interface - void exportRequested(); + void exportRequested() override; Glib::ustring lastSelectedDir () { @@ -212,15 +212,15 @@ public: void refreshThumbImages (); void refreshHeight (); - void filterApplied(); - void openRequested(const std::vector& tbe); - void deleteRequested(const std::vector& tbe, bool inclBatchProcessed); - void copyMoveRequested(const std::vector& tbe, bool moveRequested); - void developRequested(const std::vector& tbe, bool fastmode); - void renameRequested(const std::vector& tbe); - void selectionChanged(const std::vector& tbe); - void clearFromCacheRequested(const std::vector& tbe, bool leavenotrace); - bool isInTabMode() const; + void filterApplied() override; + void openRequested(const std::vector& tbe) override; + void deleteRequested(const std::vector& tbe, bool inclBatchProcessed) override; + void copyMoveRequested(const std::vector& tbe, bool moveRequested) override; + void developRequested(const std::vector& tbe, bool fastmode) override; + void renameRequested(const std::vector& tbe) override; + void selectionChanged(const std::vector& tbe) override; + void clearFromCacheRequested(const std::vector& tbe, bool leavenotrace) override; + bool isInTabMode() const override; void emptyTrash (); bool trashIsEmpty (); @@ -247,7 +247,7 @@ public: void filterChanged (); void runFilterDialog (); - void on_realize(); + void on_realize() override; void reparseDirectory (); void _openImage (std::vector tmb); diff --git a/rtgui/filepanel.cc b/rtgui/filepanel.cc index f75983ac0..23b7c3983 100644 --- a/rtgui/filepanel.cc +++ b/rtgui/filepanel.cc @@ -384,16 +384,6 @@ void FilePanel::optionsChanged () bool FilePanel::handleShortcutKey (GdkEventKey* event) { - bool ctrl = event->state & GDK_CONTROL_MASK; - - if (!ctrl) { - switch(event->keyval) { - } - } else { - switch (event->keyval) { - } - } - if(tpc->getToolBar() && tpc->getToolBar()->handleShortcutKey(event)) { return true; } diff --git a/rtgui/filepanel.h b/rtgui/filepanel.h index 8be0229bc..df61cb60d 100644 --- a/rtgui/filepanel.h +++ b/rtgui/filepanel.h @@ -40,7 +40,7 @@ class FilePanel final : { public: FilePanel (); - ~FilePanel (); + ~FilePanel () override; Gtk::Paned* placespaned; Gtk::HPaned* dirpaned; @@ -58,7 +58,7 @@ public: parent = p; } void init (); // don't call it directly, the constructor calls it as idle source - void on_realize (); + void on_realize () override; void setAspect(); void open (const Glib::ustring& d); // open a file or a directory void refreshEditedState (const std::set& efiles) @@ -71,8 +71,8 @@ public: void saveOptions (); // interface fileselectionlistener - bool fileSelected(Thumbnail* thm); - bool addBatchQueueJobs(const std::vector& entries); + bool fileSelected(Thumbnail* thm) override; + bool addBatchQueueJobs(const std::vector& entries) override; void optionsChanged (); bool imageLoaded( Thumbnail* thm, ProgressConnector * ); diff --git a/rtgui/filmsimulation.h b/rtgui/filmsimulation.h index 72ef019c5..5f66b579e 100644 --- a/rtgui/filmsimulation.h +++ b/rtgui/filmsimulation.h @@ -11,7 +11,7 @@ class ClutComboBox : public MyComboBox { public: - ClutComboBox(const Glib::ustring &path); + explicit ClutComboBox(const Glib::ustring &path); //int fillFromDir (const Glib::ustring& path); int foundClutsCount() const; Glib::ustring getSelectedClut(); @@ -34,7 +34,7 @@ private: Glib::RefPtr m_model; ClutColumns m_columns; int count; - ClutModel(const Glib::ustring &path); + explicit ClutModel(const Glib::ustring &path); int parseDir (const Glib::ustring& path); }; @@ -53,17 +53,17 @@ class FilmSimulation : public ToolParamBlock, public AdjusterListener, public Fo public: FilmSimulation(); - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void setBatchMode(bool batchMode); - void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void setBatchMode(bool batchMode) override; + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; void setAdjusterBehavior(bool strength); - void trimValues(rtengine::procparams::ProcParams* pp); + void trimValues(rtengine::procparams::ProcParams* pp) override; private: void onClutSelected(); - void enabledChanged(); + void enabledChanged() override; void updateDisable( bool value ); diff --git a/rtgui/flatcurveeditorsubgroup.cc b/rtgui/flatcurveeditorsubgroup.cc index 27b7ac940..376bb55c2 100644 --- a/rtgui/flatcurveeditorsubgroup.cc +++ b/rtgui/flatcurveeditorsubgroup.cc @@ -47,21 +47,35 @@ FlatCurveEditorSubGroup::FlatCurveEditorSubGroup (CurveEditorGroup* prt, Glib::u // ControlPoints curve CPointsCurveGrid = new Gtk::Grid (); - CPointsCurveGrid->set_row_spacing(2); - CPointsCurveGrid->set_column_spacing(2); CPointsCurveGrid->set_orientation(Gtk::ORIENTATION_VERTICAL); + CPointsCurveGrid->get_style_context()->add_class("curve-mainbox"); CPointsCurve = Gtk::manage (new MyFlatCurve ()); CPointsCurve->setType (FCT_MinMaxCPoints); + + Gtk::Grid* CPointsCurveBox = Gtk::manage (new Gtk::Grid ()); + CPointsCurveBox->get_style_context()->add_class("curve-curvebox"); + CPointsCurveBox->add(*CPointsCurve); Gtk::Grid* CPointsbbox = Gtk::manage (new Gtk::Grid ()); // curvebboxpos 0=above, 1=right, 2=below, 3=left + CPointsbbox->get_style_context()->add_class("curve-buttonbox"); - if (options.curvebboxpos == 0 || options.curvebboxpos == 2) { + if (options.curvebboxpos == 0) { CPointsbbox->set_orientation(Gtk::ORIENTATION_HORIZONTAL); setExpandAlignProperties(CPointsbbox, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - } else { + CPointsCurveGrid->get_style_context()->add_class("top"); + } else if (options.curvebboxpos == 2) { + CPointsbbox->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + setExpandAlignProperties(CPointsbbox, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + CPointsCurveGrid->get_style_context()->add_class("bottom"); + } else if (options.curvebboxpos == 1) { CPointsbbox->set_orientation(Gtk::ORIENTATION_VERTICAL); setExpandAlignProperties(CPointsbbox, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); + CPointsCurveGrid->get_style_context()->add_class("right"); + } else if (options.curvebboxpos == 3){ + CPointsbbox->set_orientation(Gtk::ORIENTATION_VERTICAL); + setExpandAlignProperties(CPointsbbox, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); + CPointsCurveGrid->get_style_context()->add_class("left"); } editCPoints = Gtk::manage (new Gtk::ToggleButton()); @@ -92,23 +106,24 @@ FlatCurveEditorSubGroup::FlatCurveEditorSubGroup (CurveEditorGroup* prt, Glib::u axis.at(2).setValues(M("CURVEEDITOR_AXIS_LEFT_TAN"), 5, 0.01, 0.1, 0., 1.); axis.at(3).setValues(M("CURVEEDITOR_AXIS_RIGHT_TAN"), 5, 0.01, 0.1, 0., 1.); CPointsCoordAdjuster = Gtk::manage (new CoordinateAdjuster(CPointsCurve, this, axis)); + CPointsCoordAdjuster->get_style_context()->add_class("curve-spinbuttonbox"); } // Button box position: 0=above, 1=right, 2=below, 3=left - CPointsCurveGrid->add(*CPointsCurve); + CPointsCurveGrid->add(*CPointsCurveBox); CPointsCurve->set_hexpand(true); if (options.curvebboxpos == 0) { - CPointsCurveGrid->attach_next_to(*CPointsbbox, *CPointsCurve, Gtk::POS_TOP, 1, 1); - CPointsCurveGrid->attach_next_to(*CPointsCoordAdjuster, *CPointsCurve, Gtk::POS_BOTTOM, 1, 1); + CPointsCurveGrid->attach_next_to(*CPointsbbox, *CPointsCurveBox, Gtk::POS_TOP, 1, 1); + CPointsCurveGrid->attach_next_to(*CPointsCoordAdjuster, *CPointsCurveBox, Gtk::POS_BOTTOM, 1, 1); } else if (options.curvebboxpos == 1) { - CPointsCurveGrid->attach_next_to(*CPointsbbox, *CPointsCurve, Gtk::POS_RIGHT, 1, 1); - CPointsCurveGrid->attach_next_to(*CPointsCoordAdjuster, *CPointsCurve, Gtk::POS_BOTTOM, 2, 1); + CPointsCurveGrid->attach_next_to(*CPointsbbox, *CPointsCurveBox, Gtk::POS_RIGHT, 1, 1); + CPointsCurveGrid->attach_next_to(*CPointsCoordAdjuster, *CPointsCurveBox, Gtk::POS_BOTTOM, 2, 1); } else if (options.curvebboxpos == 2) { - CPointsCurveGrid->attach_next_to(*CPointsCoordAdjuster, *CPointsCurve, Gtk::POS_BOTTOM, 1, 1); + CPointsCurveGrid->attach_next_to(*CPointsCoordAdjuster, *CPointsCurveBox, Gtk::POS_BOTTOM, 1, 1); CPointsCurveGrid->attach_next_to(*CPointsbbox, *CPointsCoordAdjuster, Gtk::POS_BOTTOM, 1, 1); } else if (options.curvebboxpos == 3) { - CPointsCurveGrid->attach_next_to(*CPointsbbox, *CPointsCurve, Gtk::POS_LEFT, 1, 1); + CPointsCurveGrid->attach_next_to(*CPointsbbox, *CPointsCurveBox, Gtk::POS_LEFT, 1, 1); CPointsCurveGrid->attach_next_to(*CPointsCoordAdjuster, *CPointsbbox, Gtk::POS_BOTTOM, 2, 1); } diff --git a/rtgui/flatcurveeditorsubgroup.h b/rtgui/flatcurveeditorsubgroup.h index 0dc040cfe..ab2abedfb 100644 --- a/rtgui/flatcurveeditorsubgroup.h +++ b/rtgui/flatcurveeditorsubgroup.h @@ -46,32 +46,32 @@ protected: public: FlatCurveEditorSubGroup(CurveEditorGroup* prt, Glib::ustring& curveDir); - virtual ~FlatCurveEditorSubGroup(); + ~FlatCurveEditorSubGroup() override; FlatCurveEditor* addCurve(Glib::ustring curveLabel = "", bool periodic = true); //virtual void updateBackgroundHistogram (CurveEditor* ce); - void switchGUI(); - void refresh(CurveEditor *curveToRefresh); - void editModeSwitchedOff(); - void pipetteMouseOver(EditDataProvider *provider, int modifierKey); - bool pipetteButton1Pressed(EditDataProvider *provider, int modifierKey); - void pipetteButton1Released(EditDataProvider *provider); - void pipetteDrag(EditDataProvider *provider, int modifierKey); - void showCoordinateAdjuster(CoordinateProvider *provider); - void stopNumericalAdjustment(); + void switchGUI() override; + void refresh(CurveEditor *curveToRefresh) override; + void editModeSwitchedOff() override; + void pipetteMouseOver(EditDataProvider *provider, int modifierKey) override; + bool pipetteButton1Pressed(EditDataProvider *provider, int modifierKey) override; + void pipetteButton1Released(EditDataProvider *provider) override; + void pipetteDrag(EditDataProvider *provider, int modifierKey) override; + void showCoordinateAdjuster(CoordinateProvider *provider) override; + void stopNumericalAdjustment() override; - bool curveReset (CurveEditor *ce); + bool curveReset (CurveEditor *ce) override; protected: - void storeCurveValues (CurveEditor* ce, const std::vector& p); - void storeDisplayedCurve (); - void restoreDisplayedHistogram (); + void storeCurveValues (CurveEditor* ce, const std::vector& p) override; + void storeDisplayedCurve () override; + void restoreDisplayedHistogram () override; void savePressed (); void loadPressed (); void copyPressed (); void pastePressed (); - void removeEditor (); - const std::vector getCurveFromGUI (int type); + void removeEditor () override; + const std::vector getCurveFromGUI (int type) override; void editPointToggled(Gtk::ToggleButton *button); void editToggled (Gtk::ToggleButton *button); }; diff --git a/rtgui/flatfield.h b/rtgui/flatfield.h index 599589b68..46e2f6ddd 100644 --- a/rtgui/flatfield.h +++ b/rtgui/flatfield.h @@ -62,17 +62,17 @@ protected: public: FlatField (); - ~FlatField (); + ~FlatField () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; void setAdjusterBehavior (bool clipctrladd); - void trimValues (rtengine::procparams::ProcParams* pp); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); + void trimValues (rtengine::procparams::ProcParams* pp) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; void flatFieldFileChanged (); void flatFieldFile_Reset (); void flatFieldAutoSelectChanged (); @@ -82,7 +82,7 @@ public: { ffp = p; }; - void flatFieldAutoClipValueChanged(int n = 0); + void flatFieldAutoClipValueChanged(int n = 0) override; }; #endif diff --git a/rtgui/gradient.h b/rtgui/gradient.h index c34364cb5..8812d6670 100644 --- a/rtgui/gradient.h +++ b/rtgui/gradient.h @@ -35,29 +35,29 @@ protected: public: Gradient (); - ~Gradient (); + ~Gradient () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; void setAdjusterBehavior (bool degreeadd, bool featheradd, bool strengthadd, bool centeradd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; void updateGeometry (const int centerX, const int centerY, const double feather, const double degree, const int fullWidth=-1, const int fullHeight=-1); - void setEditProvider (EditDataProvider* provider); + void setEditProvider (EditDataProvider* provider) override; // EditSubscriber interface - CursorShape getCursor(const int objectID); - bool mouseOver(const int modifierKey); - bool button1Pressed(const int modifierKey); - bool button1Released(); - bool drag1(const int modifierKey); - void switchOffEditMode (); + CursorShape getCursor(const int objectID) override; + bool mouseOver(const int modifierKey) override; + bool button1Pressed(const int modifierKey) override; + bool button1Released() override; + bool drag1(const int modifierKey) override; + void switchOffEditMode () override; }; #endif diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index 37dc3f903..38876d40a 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -149,7 +149,7 @@ private: public: explicit ExpanderBox( Gtk::Container *p); - ~ExpanderBox( ) + ~ExpanderBox( ) override { delete pC; } @@ -285,9 +285,9 @@ public: class MyScrolledWindow : public Gtk::ScrolledWindow { - bool on_scroll_event (GdkEventScroll* event); - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; + bool on_scroll_event (GdkEventScroll* event) override; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; public: MyScrolledWindow(); @@ -299,7 +299,7 @@ public: class MyScrolledToolbar : public Gtk::ScrolledWindow { - bool on_scroll_event (GdkEventScroll* event); + bool on_scroll_event (GdkEventScroll* event) override; void get_preferred_height (int &minimumHeight, int &naturalHeight); public: @@ -313,9 +313,9 @@ class MyComboBox : public Gtk::ComboBox { int naturalWidth, minimumWidth; - bool on_scroll_event (GdkEventScroll* event); - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + bool on_scroll_event (GdkEventScroll* event) override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; public: MyComboBox (); @@ -331,9 +331,9 @@ class MyComboBoxText : public Gtk::ComboBoxText int naturalWidth, minimumWidth; sigc::connection myConnection; - bool on_scroll_event (GdkEventScroll* event); - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + bool on_scroll_event (GdkEventScroll* event) override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; public: explicit MyComboBoxText (bool has_entry = false); @@ -350,8 +350,8 @@ class MySpinButton : public Gtk::SpinButton { protected: - bool on_scroll_event (GdkEventScroll* event); - bool on_key_press_event (GdkEventKey* event); + bool on_scroll_event (GdkEventScroll* event) override; + bool on_key_press_event (GdkEventKey* event) override; public: MySpinButton (); @@ -364,8 +364,8 @@ public: class MyHScale : public Gtk::HScale { - bool on_scroll_event (GdkEventScroll* event); - bool on_key_press_event (GdkEventKey* event); + bool on_scroll_event (GdkEventScroll* event) override; + bool on_key_press_event (GdkEventKey* event) override; }; /** @@ -388,9 +388,9 @@ private: sigc::signal selection_changed_; protected: - bool on_scroll_event (GdkEventScroll* event); - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + bool on_scroll_event (GdkEventScroll* event) override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; void set_none(); @@ -484,8 +484,8 @@ class MyProgressBar : public Gtk::ProgressBar private: int w; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; public: explicit MyProgressBar(int width); diff --git a/rtgui/histogrampanel.h b/rtgui/histogrampanel.h index 9a8f58938..f34b07c39 100644 --- a/rtgui/histogrampanel.h +++ b/rtgui/histogrampanel.h @@ -81,7 +81,7 @@ protected: public: HistogramRGBArea(); - ~HistogramRGBArea(); + ~HistogramRGBArea() override; void updateBackBuffer (int r, int g, int b, const Glib::ustring &profile = "", const Glib::ustring &profileW = ""); bool getShow (); @@ -93,17 +93,17 @@ public: void update (int val, int rh, int gh, int bh); void updateOptions (bool r, bool g, bool b, bool l, bool c, bool raw, bool show); - void on_realize(); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); - bool on_button_press_event (GdkEventButton* event); + void on_realize() override; + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; + bool on_button_press_event (GdkEventButton* event) override; void factorChanged (double newFactor); private: - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int h, int &minimum_width, int &natural_width) const; + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int h, int &minimum_width, int &natural_width) const override; }; @@ -141,7 +141,7 @@ protected: public: explicit HistogramArea(DrawModeListener *fml = nullptr); - ~HistogramArea(); + ~HistogramArea() override; void updateBackBuffer (); void update( @@ -155,21 +155,21 @@ public: const LUTu& histBlueRaw ); void updateOptions (bool r, bool g, bool b, bool l, bool c, bool raw, int mode); - void on_realize(); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); - bool on_button_press_event (GdkEventButton* event); - bool on_button_release_event (GdkEventButton* event); - bool on_motion_notify_event (GdkEventMotion* event); + void on_realize() override; + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; + bool on_button_press_event (GdkEventButton* event) override; + bool on_button_release_event (GdkEventButton* event) override; + bool on_motion_notify_event (GdkEventMotion* event) override; type_signal_factor_changed signal_factor_changed(); private: void drawCurve(Cairo::RefPtr &cr, LUTu & data, double scale, int hsize, int vsize); void drawMarks(Cairo::RefPtr &cr, LUTu & data, double scale, int hsize, int & ui, int & oi); - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; }; class HistogramPanel : public Gtk::Grid, public PointerMotionListener, public DrawModeListener @@ -216,7 +216,7 @@ protected: public: HistogramPanel (); - ~HistogramPanel (); + ~HistogramPanel () override; void histogramChanged( const LUTu& histRed, @@ -231,7 +231,7 @@ public: histogramArea->update(histRed, histGreen, histBlue, histLuma, histChroma, histRedRaw, histGreenRaw, histBlueRaw); } // pointermotionlistener interface - void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw = false); + void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw = false) override; // TODO should be protected void setHistRGBInvalid (); @@ -249,7 +249,7 @@ public: void resized (Gtk::Allocation& req); // drawModeListener interface - void toggleButtonMode (); + void toggleButtonMode () override; }; #endif diff --git a/rtgui/history.h b/rtgui/history.h index 4b9499502..196b29b67 100644 --- a/rtgui/history.h +++ b/rtgui/history.h @@ -111,8 +111,8 @@ public: const rtengine::ProcEvent& ev, const Glib::ustring& descr, const ParamsEdited* paramsEdited = nullptr - ); - void clearParamChanges (); + ) override; + void clearParamChanges () override; void historySelectionChanged (); void bookmarkSelectionChanged (); diff --git a/rtgui/hsvequalizer.h b/rtgui/hsvequalizer.h index 2d80bb626..8d34b486b 100644 --- a/rtgui/hsvequalizer.h +++ b/rtgui/hsvequalizer.h @@ -42,19 +42,19 @@ protected: public: HSVEqualizer (); - virtual ~HSVEqualizer (); + ~HSVEqualizer () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void curveChanged (CurveEditor* ce); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void curveChanged (CurveEditor* ce) override; //void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited=NULL); - void setBatchMode (bool batchMode); - void setEditProvider (EditDataProvider *provider); - void autoOpenCurve (); - virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller); + void setBatchMode (bool batchMode) override; + void setEditProvider (EditDataProvider *provider) override; + void autoOpenCurve () override; + void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; //void adjusterChanged (Adjuster* a, double newval); - void enabledChanged(); + void enabledChanged() override; }; #endif diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index a2c1c60d4..584412120 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -41,7 +41,7 @@ extern const Settings* settings; const char* sTRCPreset[] = {"BT709_g2.2_s4.5", "sRGB_g2.4_s12.92", "linear_g1.0", "standard_g2.2", "standard_g1.8", "High_g1.3_s3.35", "Low_g2.6_s6.9", "Lab_g3.0s9.03296"}; //gamma free ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) - : Gtk::Dialog (M ("MAIN_BUTTON_ICCPROFCREATOR"), *rtwindow, true) + : Gtk::Dialog(M("MAIN_BUTTON_ICCPROFCREATOR"), *rtwindow, true) , primariesPreset(options.ICCPC_primariesPreset) , redPrimaryX(options.ICCPC_redPrimaryX) , redPrimaryY(options.ICCPC_redPrimaryY) @@ -141,22 +141,26 @@ ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) setExpandAlignProperties(trcPresets, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); std::vector outputTRCPresets; outputTRCPresets.push_back(M("ICCPROFCREATOR_CUSTOM")); + for (unsigned int i = 0; i < sizeof(sTRCPreset) / sizeof(sTRCPreset[0]); i++) { outputTRCPresets.push_back(sTRCPreset[i]); } + for (size_t i = 0; i < outputTRCPresets.size(); i++) { trcPresets->append(outputTRCPresets[i]); } + mainGrid->attach(*trcPresets, 1, 2, 1, 1); //--------------------------------- sliders gampos and slpos - aGamma = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_GAMMA"), 1, 3.5, 0.01, 2.4)); + aGamma = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_GAMMA"), 1, 3.5, 0.00001, 2.4)); setExpandAlignProperties(aGamma, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); if (aGamma->delay < options.adjusterMaxDelay) { aGamma->delay = options.adjusterMaxDelay; } + aGamma->show(); mainGrid->attach(*aGamma, 1, 3, 1, 1); //gamma @@ -166,6 +170,7 @@ ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) if (aSlope->delay < options.adjusterMaxDelay) { aSlope->delay = options.adjusterMaxDelay; } + aSlope->show(); mainGrid->attach(*aSlope, 1, 4, 1, 1); //slope @@ -222,10 +227,10 @@ ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) setExpandAlignProperties(eCopyright, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); copygrid->attach(*eCopyright, 0, 0, 1, 1); resetCopyright = Gtk::manage(new Gtk::Button()); - resetCopyright->add (*Gtk::manage (new RTImage ("undo-small.png", "redo-small.png"))); + resetCopyright->add(*Gtk::manage(new RTImage("undo-small.png", "redo-small.png"))); setExpandAlignProperties(resetCopyright, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); - resetCopyright->set_relief (Gtk::RELIEF_NONE); - resetCopyright->set_tooltip_markup (M("ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP")); + resetCopyright->set_relief(Gtk::RELIEF_NONE); + resetCopyright->set_tooltip_markup(M("ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP")); resetCopyright->get_style_context()->add_class(GTK_STYLE_CLASS_FLAT); resetCopyright->set_can_focus(false); copygrid->attach(*resetCopyright, 1, 0, 1, 1); @@ -273,6 +278,7 @@ ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) } trcPresets->set_active(0); + if (gammaPreset != "Custom") { trcPresets->set_active_text(gammaPreset); } @@ -309,6 +315,7 @@ ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) } iccVersion->set_active(0); + if (profileVersion == "v2") { iccVersion->set_active(1); } @@ -319,17 +326,17 @@ ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) //--------------- Action area button - Gtk::Button* save = Gtk::manage (new Gtk::Button (M ("GENERAL_SAVE_AS"))); - save->signal_clicked().connect ( sigc::mem_fun (*this, &ICCProfileCreator::savePressed) ); - get_action_area()->pack_start (*save); + Gtk::Button* save = Gtk::manage(new Gtk::Button(M("GENERAL_SAVE_AS"))); + save->signal_clicked().connect(sigc::mem_fun(*this, &ICCProfileCreator::savePressed)); + get_action_area()->pack_start(*save); - Gtk::Button* close = Gtk::manage (new Gtk::Button (M ("GENERAL_CLOSE"))); - close->signal_clicked().connect ( sigc::mem_fun (*this, &ICCProfileCreator::closePressed) ); - get_action_area()->pack_start (*close); + Gtk::Button* close = Gtk::manage(new Gtk::Button(M("GENERAL_CLOSE"))); + close->signal_clicked().connect(sigc::mem_fun(*this, &ICCProfileCreator::closePressed)); + get_action_area()->pack_start(*close); //--------------- Show childrens - show_all_children (); + show_all_children(); //--------------- Connecting the signals @@ -355,20 +362,21 @@ void ICCProfileCreator::closePressed() void ICCProfileCreator::updateICCVersion() { - if (cIlluminant->get_active_text() != M("ICCPROFCREATOR_ILL_DEF") || primaries->get_active_text() == M("ICCPROFCREATOR_CUSTOM")) { - iccVersion->set_active_text(M("ICCPROFCREATOR_PROF_V4")); - iccVersion->set_sensitive(false); - } else { - iccVersion->set_sensitive(true); - } +// if (cIlluminant->get_active_text() != M("ICCPROFCREATOR_ILL_DEF") || primaries->get_active_text() == M("ICCPROFCREATOR_CUSTOM")) { + // iccVersion->set_active_text(M("ICCPROFCREATOR_PROF_V4")); + // iccVersion->set_sensitive(false); +// } else { + // iccVersion->set_sensitive(true); +// } + + iccVersion->set_sensitive(true); } void ICCProfileCreator::adjusterChanged(Adjuster* a, double newval) { if (a == aPrimariesRedX || a == aPrimariesRedY || - a == aPrimariesGreenX || a == aPrimariesGreenY || - a == aPrimariesBlueX || a == aPrimariesBlueY) - { + a == aPrimariesGreenX || a == aPrimariesGreenY || + a == aPrimariesBlueX || a == aPrimariesBlueY) { if (primaries->get_active_row_number() > 0) { ConnectionBlocker blocker(primariesconn); primaries->set_active(0); @@ -389,7 +397,7 @@ void ICCProfileCreator::adjusterAutoToggled(Adjuster* a, bool newval) void ICCProfileCreator::primariesChanged() { if (primaries->get_active_row_number() > 0) { - float p[6]; + double p[6]; ColorTemp temp; Glib::ustring activeValue = primaries->get_active_text(); Glib::ustring primPresetName = getPrimariesPresetName(activeValue); @@ -401,6 +409,7 @@ void ICCProfileCreator::primariesChanged() aPrimariesBlueX->setValue(p[4]); aPrimariesBlueY->setValue(p[5]); } + updateICCVersion(); } @@ -494,9 +503,10 @@ Glib::ustring ICCProfileCreator::getPrimariesPresetName(const Glib::ustring &pre } } -void ICCProfileCreator::getPrimaries(const Glib::ustring &preset, float *p, ColorTemp &temp) +void ICCProfileCreator::getPrimaries(const Glib::ustring &preset, double *p, ColorTemp &temp) { temp = ColorTemp::D50; + if (preset == "Widegamut") { p[0] = 0.7350; //Widegamut primaries p[1] = 0.2650; @@ -595,9 +605,11 @@ void ICCProfileCreator::getPrimaries(const Glib::ustring &preset, float *p, Colo Glib::ustring ICCProfileCreator::getGammaPresetName(const Glib::ustring &preset) { Glib::ustring name(trcPresets->get_active_text()); + if (name == M("ICCPROFCREATOR_CUSTOM")) { name = "Custom"; } + return name; } @@ -646,6 +658,8 @@ void ICCProfileCreator::onResetCopyright() void ICCProfileCreator::savePressed() { cmsHPROFILE newProfile = nullptr; + cmsHPROFILE profile_v2_except = nullptr; + Glib::ustring sNewProfile; Glib::ustring sPrimariesPreset; Glib::ustring sGammaPreset; @@ -653,47 +667,116 @@ void ICCProfileCreator::savePressed() storeValues(); // -------------------------------------------- Compute the default file name + // -----------------setmedia white point for monitor profile sRGB or AdobeRGB in case of profile used for monitor--------------------- + //instead of calculations made by LCMS..small differences + bool isD65 = (primariesPreset == "sRGB" || primariesPreset == "Adobe" || primariesPreset == "Rec2020" || primariesPreset == "BruceRGB"); + bool isD60 = (primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0"); + bool isD50 = (primariesPreset == "ProPhoto" || primariesPreset == "Widegamut" || primariesPreset == "BestRGB" || primariesPreset == "BetaRGB"); + // v2except = (profileVersion == "v2" && (primariesPreset == "sRGB" || primariesPreset == "Adobe" || primariesPreset == "Rec2020" || primariesPreset == "BruceRGB" || primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0") && illuminant == "DEF"); + // v2except = (profileVersion == "v2" && (isD65 || isD60 || isD50) && illuminant == "DEF"); + v2except = (profileVersion == "v2");// && (isD65 || isD60 || isD50)); //necessary for V2 profile - if (primariesPreset == "ACES-AP0" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESp0)) { - sNewProfile = options.rtSettings.ACESp0; - sPrimariesPreset = "ACES-AP0"; - } else if (primariesPreset == "ACES-AP1" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESp1)) { - sNewProfile = options.rtSettings.ACESp1; - sPrimariesPreset = "ACES-AP1"; - } else if (primariesPreset == "Adobe" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.adobe)) { - sNewProfile = options.rtSettings.adobe; - sPrimariesPreset = "Medium"; - } else if (primariesPreset == "ProPhoto" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.prophoto)) { - sNewProfile = options.rtSettings.prophoto; - sPrimariesPreset = "Large"; - } else if (primariesPreset == "Rec2020" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.rec2020)) { - sNewProfile = options.rtSettings.rec2020; - sPrimariesPreset = "Rec2020"; - } else if (primariesPreset == "sRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.srgb)) { - sNewProfile = options.rtSettings.srgb; - sPrimariesPreset = "sRGB"; - } else if (primariesPreset == "Widegamut" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.widegamut)) { - sNewProfile = options.rtSettings.widegamut; - sPrimariesPreset = "Wide"; - } else if (primariesPreset == "BestRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.best)) { - sNewProfile = options.rtSettings.best; - sPrimariesPreset = "Best"; - } else if (primariesPreset == "BetaRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.beta)) { - sNewProfile = options.rtSettings.beta; - sPrimariesPreset = "Beta"; - } else if (primariesPreset == "BruceRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.bruce)) { - sNewProfile = options.rtSettings.bruce; - sPrimariesPreset = "Bruce"; - } else if (primariesPreset == "custom") { - sNewProfile = options.rtSettings.srgb; - sPrimariesPreset = "Custom"; - } else { - // Should not occurs - if (rtengine::settings->verbose) { - printf("\"%s\": unknown working profile! - use LCMS2 substitution\n", primariesPreset.c_str()); + + if (!v2except) { + std::string is_RTv4 = ""; + + //used partially for v4, and in case of if we want to back to old manner for v2 + if (primariesPreset == "ACES-AP0" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESp0)) { + sNewProfile = options.rtSettings.ACESp0; + sPrimariesPreset = "ACES-AP0"; + } else if (primariesPreset == "ACES-AP1" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESp1)) { + sNewProfile = options.rtSettings.ACESp1; + sPrimariesPreset = "ACES-AP1"; + } else if (primariesPreset == "Adobe" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.adobe)) { + sNewProfile = options.rtSettings.adobe; + sPrimariesPreset = "Medium"; + } else if (primariesPreset == "ProPhoto" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.prophoto)) { + is_RTv4 = options.rtSettings.prophoto.substr(0, 4); + + if (is_RTv4 == "RTv4") { + options.rtSettings.prophoto = "RTv2_Large"; + }; + + sNewProfile = options.rtSettings.prophoto; + + sPrimariesPreset = "Large"; + } else if (primariesPreset == "Rec2020" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.rec2020)) { + sNewProfile = options.rtSettings.rec2020; + sPrimariesPreset = "Rec2020"; + } else if (primariesPreset == "sRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.srgb)) { + sNewProfile = options.rtSettings.srgb; + sPrimariesPreset = "sRGB"; + } else if (primariesPreset == "Widegamut" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.widegamut)) { + is_RTv4 = options.rtSettings.widegamut.substr(0, 4); + + if (is_RTv4 == "RTv4") { + options.rtSettings.widegamut = "RTv2_Wide"; + }; + + sNewProfile = options.rtSettings.widegamut; + + sPrimariesPreset = "Wide"; + } else if (primariesPreset == "BestRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.best)) { + is_RTv4 = options.rtSettings.best.substr(0, 4); + + if (is_RTv4 == "RTv4") { + options.rtSettings.best = "RTv2_Best"; + }; + + sNewProfile = options.rtSettings.best; + + sPrimariesPreset = "Best"; + } else if (primariesPreset == "BetaRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.beta)) { + sNewProfile = options.rtSettings.beta; + is_RTv4 = options.rtSettings.beta.substr(0, 4); + + if (is_RTv4 == "RTv4") { + options.rtSettings.widegamut = "RTv2_Beta"; + }; + + sPrimariesPreset = "Beta"; + } else if (primariesPreset == "BruceRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.bruce)) { + sNewProfile = options.rtSettings.bruce; + sPrimariesPreset = "Bruce"; + } else if (primariesPreset == "custom") { + sNewProfile = options.rtSettings.srgb; + sPrimariesPreset = "Custom"; + } else { + // Should not occurs + if (rtengine::settings->verbose) { + printf("\"%s\": unknown working profile! - use LCMS2 substitution\n", primariesPreset.c_str()); + } + + return; + } + } else { + //new model for v2 profile different from D50 by entering directly XYZ values and media white point + sNewProfile = "RTv2_Beta";//for copy generate others v2 profile. To change date of new profile, I used "ICC profile inspector" and "save as" + + if (primariesPreset == "ACES-AP0") { + sPrimariesPreset = "ACES-AP0"; + } else if (primariesPreset == "ACES-AP1") { + sPrimariesPreset = "ACES-AP1"; + } else if (primariesPreset == "Adobe") { + sPrimariesPreset = "Medium"; + } else if (primariesPreset == "Rec2020") { + sPrimariesPreset = "Rec2020"; + } else if (primariesPreset == "BruceRGB") { + sPrimariesPreset = "Bruce"; + } else if (primariesPreset == "sRGB") { + sPrimariesPreset = "sRGB"; + } else if (primariesPreset == "ProPhoto") { + sPrimariesPreset = "Large"; + } else if (primariesPreset == "Widegamut") { + sPrimariesPreset = "Wide"; + } else if (primariesPreset == "BestRGB") { + sPrimariesPreset = "Best"; + } else if (primariesPreset == "BetaRGB") { + sPrimariesPreset = "Beta"; + } else if (primariesPreset == "custom") { + sPrimariesPreset = "Custom"; } - return; } //begin adaptation rTRC gTRC bTRC @@ -702,16 +785,23 @@ void ICCProfileCreator::savePressed() printf("Output Gamma - profile Primaries as RT profile: \"%s\"\n", sNewProfile.c_str()); } - newProfile = rtengine::ICCStore::getInstance()->getProfile(sNewProfile); //get output profile + if (!v2except) { + newProfile = rtengine::ICCStore::getInstance()->getProfile(sNewProfile); //get output profile + } else { + profile_v2_except = rtengine::ICCStore::getInstance()->getProfile(sNewProfile); //get output profile - if (newProfile == nullptr) { - - if (rtengine::settings->verbose) { - printf("\"%s\" ICC output profile not found!\n", sNewProfile.c_str()); - } - return; } + /* + if (newProfile == nullptr ) { + + if (rtengine::settings->verbose) { + printf("\"%s\" ICC output profile not found!\n", sNewProfile.c_str()); + } + + return; + } + */ //change desc Tag , to "free gamma", or "BT709", etc. Glib::ustring fName; Glib::ustring sPrimariesAndIlluminant; @@ -719,6 +809,7 @@ void ICCProfileCreator::savePressed() double presetSlope = 12.92310; const double eps = 0.000000001; // not divide by zero getGamma(gammaPreset, presetGamma, presetSlope); + if (gammaPreset == "High_g1.3_s3.35") { sGammaPreset = "High_g=1.3_s=3.35"; ga[0] = 1.3 ; //for high dynamic images @@ -726,6 +817,9 @@ void ICCProfileCreator::savePressed() ga[2] = 0.001721; ga[3] = 0.298507; ga[4] = 0.005746; + presetGamma = 1.3; + presetSlope = 3.35; + } else if (gammaPreset == "Low_g2.6_s6.9") { sGammaPreset = "Low_g=2.6_s=6.9"; ga[0] = 2.6 ; //gamma 2.6 variable : for low contrast images @@ -733,20 +827,35 @@ void ICCProfileCreator::savePressed() ga[2] = 0.108839; ga[3] = 0.144928; ga[4] = 0.076332; + presetGamma = 2.6; + presetSlope = 6.9; + } else if (gammaPreset == "sRGB_g2.4_s12.92") { sGammaPreset = "sRGB_g=2.4_s=12.92310"; ga[0] = 2.40; //sRGB 2.4 12.92 - RT default as Lightroom - ga[1] = 0.947858; - ga[2] = 0.052142; - ga[3] = 0.077399; - ga[4] = 0.039293; + ga[1] = 0.947867; + ga[2] = 0.052133; + ga[3] = 0.077381; + ga[4] = 0.039286; + //g3 = 0.00340 + //g4 = 0.0550 + //g5 = 0.449842 + presetGamma = 2.4; + presetSlope = 12.92310; + } else if (gammaPreset == "BT709_g2.2_s4.5") { sGammaPreset = "BT709_g=2.2_s=4.5"; - ga[0] = 2.22; //BT709 2.2 4.5 - my preferred as D.Coffin + ga[0] = 2.22; //BT709 2.22 4.5 - my preferred as D.Coffin ga[1] = 0.909995; ga[2] = 0.090005; ga[3] = 0.222222; ga[4] = 0.081071; + //g3=0.018016 + //g4=0.098907 + //g5=0.517448 + presetGamma = 2.22; + presetSlope = 4.5; + } else if (gammaPreset == "linear_g1.0") { sGammaPreset = "Linear_g=1.0"; ga[0] = 1.0; //gamma=1 linear : for high dynamic images (cf D.Coffin...) @@ -754,6 +863,9 @@ void ICCProfileCreator::savePressed() ga[2] = 0.; ga[3] = 1. / eps; ga[4] = 0.; + presetGamma = 1.0; + presetSlope = 0.0; + } else if (gammaPreset == "standard_g2.2") { sGammaPreset = "g=2.2"; ga[0] = 2.2; //gamma=2.2(as gamma of Adobe, Widegamut...) @@ -761,6 +873,8 @@ void ICCProfileCreator::savePressed() ga[2] = 0.; ga[3] = 1. / eps; ga[4] = 0.; + presetGamma = 2.19921875; + presetSlope = 0.0; } else if (gammaPreset == "standard_g1.8") { sGammaPreset = "g=1.8"; ga[0] = 1.8; //gamma=1.8(as gamma of Prophoto) @@ -768,6 +882,9 @@ void ICCProfileCreator::savePressed() ga[2] = 0.; ga[3] = 1. / eps; ga[4] = 0.; + presetGamma = 1.80078125; + presetSlope = 0.0; + } else if (gammaPreset == "Lab_g3.0s9.03296") { sGammaPreset = "LAB_g3.0_s9.03296"; ga[0] = 3.0; //Lab gamma =3 slope=9.03296 @@ -775,6 +892,9 @@ void ICCProfileCreator::savePressed() ga[2] = 0.1379; ga[3] = 0.1107; ga[4] = 0.08; + presetGamma = 3.0; + presetSlope = 9.03926; + } else if (gammaPreset == "Custom") { rtengine::GammaValues g_a; //gamma parameters double pwr = 1.0 / gamma; @@ -786,17 +906,18 @@ void ICCProfileCreator::savePressed() ga[4] = g_a[3] * ts; //printf("g_a.gamma0=%f g_a.gamma1=%f g_a.gamma2=%f g_a.gamma3=%f g_a.gamma4=%f\n", g_a.gamma0,g_a.gamma1,g_a.gamma2,g_a.gamma3,g_a.gamma4); ga[0] = gamma; - ga[1] = 1. /(1.0 + g_a[4]); - ga[2] = g_a[4] /(1.0 + g_a[4]); + ga[1] = 1. / (1.0 + g_a[4]); + ga[2] = g_a[4] / (1.0 + g_a[4]); ga[3] = 1. / slope2; //printf("ga[0]=%f ga[1]=%f ga[2]=%f ga[3]=%f ga[4]=%f\n", ga[0],ga[1],ga[2],ga[3],ga[4]); sGammaPreset = Glib::ustring::compose("g%1_s%2", - Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(2), gamma), - Glib::ustring::format (std::setw(6), std::fixed, std::setprecision(5), slope)); + Glib::ustring::format(std::setw(6), std::fixed, std::setprecision(6), gamma), + Glib::ustring::format(std::setw(6), std::fixed, std::setprecision(5), slope)); presetGamma = gamma; presetSlope = slope; } + ga[5] = 0.0; ga[6] = 0.0; @@ -804,8 +925,7 @@ void ICCProfileCreator::savePressed() sPrimariesAndIlluminant = sPrimariesPreset; if (profileVersion == "v4" && illuminant != "DEF") { - sPrimariesPreset += "-" + illuminant; - // printf("outpr=%s \n",outPr.c_str()); + sPrimariesPreset += "-" + illuminant; } Glib::ustring profileDesc; @@ -815,16 +935,17 @@ void ICCProfileCreator::savePressed() Glib::ustring sSlope; if (gammaPreset == "Custom") { - sGamma = Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(2), gamma); - sSlope = Glib::ustring::format (std::setw(6), std::fixed, std::setprecision(5), slope); + sGamma = Glib::ustring::format(std::setw(6), std::fixed, std::setprecision(6), gamma); + sSlope = Glib::ustring::format(std::setw(6), std::fixed, std::setprecision(5), slope); fName = Glib::ustring::compose("RT%1_%2_g%3_s%4.icc", profileVersion, sPrimariesAndIlluminant, sGamma, sSlope); profileDesc = sPrimariesPreset; } else { - sGamma = Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(2), presetGamma); - sSlope = Glib::ustring::format (std::setw(6), std::fixed, std::setprecision(5), presetSlope); + sGamma = Glib::ustring::format(std::setw(6), std::fixed, std::setprecision(6), presetGamma); + sSlope = Glib::ustring::format(std::setw(6), std::fixed, std::setprecision(5), presetSlope); fName = Glib::ustring::compose("RT%1_%2_%3.icc", profileVersion, sPrimariesAndIlluminant, sGammaPreset); profileDesc = sPrimariesPreset + sGammaPreset; } + sGammaSlopeParam = Glib::ustring::compose("g%1s%2!", sGamma, sSlope); sGammaSlopeDesc = Glib::ustring::compose("g=%1 s=%2", sGamma, sSlope); @@ -876,15 +997,16 @@ void ICCProfileCreator::savePressed() } while (1); // --------------- main tags ------------------ - - if (profileVersion == "v4") { - cmsSetProfileVersion(newProfile, 4.3); - } else { - cmsSetProfileVersion(newProfile, 2.0); - } + /* + if (profileVersion == "v4") { + cmsSetProfileVersion(newProfile, 4.3); + } else { + cmsSetProfileVersion(newProfile, 2.0); + } + */ //change - float p[6]; //primaries + double p[6]; //primaries ga[6] = 0.0; ColorTemp temp; @@ -897,8 +1019,16 @@ void ICCProfileCreator::savePressed() {p[4], p[5], 1.0} // blue }; + if (v2except) { + cmsSetDeviceClass(profile_v2_except, cmsSigDisplayClass); + cmsSetPCS(profile_v2_except, cmsSigXYZData); + cmsSetHeaderRenderingIntent(profile_v2_except, 0); + } + + if (profileVersion == "v4" && illuminant != "DEF") { double tempv4 = 5000.; + if (illuminant == "D41") { tempv4 = 4100.; } else if (illuminant == "D50") { @@ -914,36 +1044,322 @@ void ICCProfileCreator::savePressed() } else if (illuminant == "stdA") { tempv4 = 5003.; } + cmsWhitePointFromTemp(&xyD, tempv4); + + if (illuminant == "D65") { + xyD = {0.312700492, 0.329000939, 1.0}; + } + + if (illuminant == "D60") { + xyD = {0.32168, 0.33767, 1.0}; + } + + if (illuminant == "D50") { + xyD = {0.3457, 0.3585, 1.0};//white D50 near LCMS values but not perfect...it's a compromise!! + } + + if (illuminant == "stdA") { + xyD = {0.447573, 0.407440, 1.0}; + } + } else { - cmsWhitePointFromTemp(&xyD, (double)temp); + if (v2except) { + + cmsCIEXYZ XYZ; + double Wx = 1.0; + double Wy = 1.0; + double Wz = 1.0; + + if (illuminant == "DEF") { + { + Wx = 0.95045471; + Wz = 1.08905029; + XYZ = {Wx, 1.0, Wz};//white D65 + } + + if (primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0") { + Wx = 0.952646075; + Wz = 1.008825184; + XYZ = {Wx, 1.0, Wz};//white D60 + } + + if (isD50) { + Wx = 0.964295676; + Wz = 0.825104603; + XYZ = {Wx, 1.0, Wz};//white D50 room (prophoto) near LCMS values but not perfect...it's a compromise!! + } + } else { + if (illuminant == "D65") { + Wx = 0.95045471; + Wz = 1.08905029; + } else if (illuminant == "D50") { + Wx = 0.964295676; + Wz = 0.825104603; + } else if (illuminant == "D55") { + Wx = 0.956565934; + Wz = 0.920253249; + } else if (illuminant == "D60") { + Wx = 0.952646075; + Wz = 1.008825184; + } else if (illuminant == "D41") { + Wx = 0.991488263; + Wz = 0.631604625; + } else if (illuminant == "D80") { + Wx = 0.950095542; + Wz = 1.284213976; + } else if (illuminant == "stdA") { + Wx = 1.098500393; + Wz = 0.355848714; + } + + XYZ = {Wx, 1.0, Wz}; + + } + + cmsCIExyY blackpoint; + + { + blackpoint = {0., 0., 0.}; + } + + cmsWriteTag(profile_v2_except, cmsSigMediaBlackPointTag, &blackpoint); + cmsWriteTag(profile_v2_except, cmsSigMediaWhitePointTag, &XYZ); + cmsCIEXYZ rt; + cmsCIEXYZ bt; + cmsCIEXYZ gt; + + //calculate XYZ matrix for each primaries and each temp (D50, D65...) + + // reduce coordinate of primaries + //printf("p0=%f p1=%f p2=%f p3=%f p4=%f p5=%f \n", p[0], p[1], p[2], p[3],p[4], p[5]); + double Xr = p[0] / p[1]; + double Yr = 1.0; + double Zr = (1.0 - p[0] - p[1]) / p[1]; + double Xg = p[2] / p[3]; + double Yg = 1.0; + double Zg = (1.0 - p[2] - p[3]) / p[3]; + double Xb = p[4] / p[5]; + double Yb = 1.0; + double Zb = (1.0 - p[4] - p[5]) / p[5]; + + using Triple = std::array; + + using Matrix = std::array; + + Matrix input_prim; + Matrix inv_input_prim = {}; + + input_prim[0][0] = Xr; + input_prim[0][1] = Yr; + input_prim[0][2] = Zr; + input_prim[1][0] = Xg; + input_prim[1][1] = Yg; + input_prim[1][2] = Zg; + input_prim[2][0] = Xb; + input_prim[2][1] = Yb; + input_prim[2][2] = Zb; + + //printf("in=%f in01=%f in22=%f\n", input_prim[0][0], input_prim[0][1], input_prim[2][2]); + if (!rtengine::invertMatrix(input_prim, inv_input_prim)) { + std::cout << "Matrix is not invertible, skipping" << std::endl; + } + + //printf("inv=%f inv01=%f inv22=%f\n", inv_input_prim[0][0], inv_input_prim[0][1], inv_input_prim[2][2]); + + //white point D50 used by LCMS + double Wdx = 0.96420; + double Wdy = 1.0; + double Wdz = 0.82490; + + double Sr = Wx * inv_input_prim [0][0] + Wy * inv_input_prim [1][0] + Wz * inv_input_prim [2][0]; + double Sg = Wx * inv_input_prim [0][1] + Wy * inv_input_prim [1][1] + Wz * inv_input_prim [2][1]; + double Sb = Wx * inv_input_prim [0][2] + Wy * inv_input_prim [1][2] + Wz * inv_input_prim [2][2]; + //printf("sr=%f sg=%f sb=%f\n", Sr, Sg, Sb); + + //XYZ matrix for primaries and temp + Matrix mat_xyz = {}; + mat_xyz[0][0] = Sr * Xr; + mat_xyz[0][1] = Sr * Yr; + mat_xyz[0][2] = Sr * Zr; + mat_xyz[1][0] = Sg * Xg; + mat_xyz[1][1] = Sg * Yg; + mat_xyz[1][2] = Sg * Zg; + mat_xyz[2][0] = Sb * Xb; + mat_xyz[2][1] = Sb * Yb; + mat_xyz[2][2] = Sb * Zb; + //printf("mat0=%f mat22=%f\n", mat_xyz[0][0], mat_xyz[2][2]); + + //chromatic adaptation Bradford + Matrix MaBradford = {}; + MaBradford[0][0] = 0.8951; + MaBradford[0][1] = -0.7502; + MaBradford[0][2] = 0.0389; + MaBradford[1][0] = 0.2664; + MaBradford[1][1] = 1.7135; + MaBradford[1][2] = -0.0685; + MaBradford[2][0] = -0.1614; + MaBradford[2][1] = 0.0367; + MaBradford[2][2] = 1.0296; + + Matrix Ma_oneBradford = {}; + Ma_oneBradford[0][0] = 0.9869929; + Ma_oneBradford[0][1] = 0.4323053; + Ma_oneBradford[0][2] = -0.0085287; + Ma_oneBradford[1][0] = -0.1470543; + Ma_oneBradford[1][1] = 0.5183603; + Ma_oneBradford[1][2] = 0.0400428; + Ma_oneBradford[2][0] = 0.1599627; + Ma_oneBradford[2][1] = 0.0492912; + Ma_oneBradford[2][2] = 0.9684867; + + //R G B source + double Rs = Wx * MaBradford[0][0] + Wy * MaBradford[1][0] + Wz * MaBradford[2][0]; + double Gs = Wx * MaBradford[0][1] + Wy * MaBradford[1][1] + Wz * MaBradford[2][1]; + double Bs = Wx * MaBradford[0][2] + Wy * MaBradford[1][2] + Wz * MaBradford[2][2]; + + // R G B destination + double Rd = Wdx * MaBradford[0][0] + Wdy * MaBradford[1][0] + Wdz * MaBradford[2][0]; + double Gd = Wdx * MaBradford[0][1] + Wdy * MaBradford[1][1] + Wdz * MaBradford[2][1]; + double Bd = Wdx * MaBradford[0][2] + Wdy * MaBradford[1][2] + Wdz * MaBradford[2][2]; + + //cone destination + Matrix cone_dest_sourc = {}; + cone_dest_sourc [0][0] = Rd / Rs; + cone_dest_sourc [0][1] = 0.; + cone_dest_sourc [0][2] = 0.; + cone_dest_sourc [1][0] = 0.; + cone_dest_sourc [1][1] = Gd / Gs; + cone_dest_sourc [1][2] = 0.; + cone_dest_sourc [2][0] = 0.; + cone_dest_sourc [2][1] = 0.; + cone_dest_sourc [2][2] = Bd / Bs; + + Matrix cone_ma_one = {}; + + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + cone_ma_one[i][j] = 0; + + for (int k = 0; k < 3; ++k) { + cone_ma_one[i][j] += cone_dest_sourc [i][k] * Ma_oneBradford[k][j]; + } + } + } + + //generate adaptation bradford matrix + Matrix adapt_chroma = {}; + + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + adapt_chroma [i][j] = 0; + + for (int k = 0; k < 3; ++k) { + adapt_chroma[i][j] += MaBradford[i][k] * cone_ma_one[k][j]; + } + } + } + + //real matrix XYZ for primaries, temp, Bradford + Matrix mat_xyz_brad = {}; + + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + mat_xyz_brad[i][j] = 0; + + for (int k = 0; k < 3; ++k) { + mat_xyz_brad[i][j] += mat_xyz[i][k] * adapt_chroma[k][j]; + } + } + } + + +// printf("adc=%1.10f ad2=%1.10f ad22=%1.10f\n", mat_xyz_brad[0][0], mat_xyz_brad[1][0], mat_xyz_brad[2][2]); + //end generate XYZ matrix + + //write tags + rt = {mat_xyz_brad[0][0], mat_xyz_brad[0][1], mat_xyz_brad[0][2]}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + gt = {mat_xyz_brad[1][0], mat_xyz_brad[1][1], mat_xyz_brad[1][2]}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + bt = {mat_xyz_brad[2][0], mat_xyz_brad[2][1], mat_xyz_brad[2][2]}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + + + } else { + cmsWhitePointFromTemp(&xyD, (double)temp); + } } - if (illuminant == "stdA") { - xyD = {0.447573, 0.407440, 1.0}; + + if (isD65 && illuminant == "DEF") { + xyD = {0.312700492, 0.329000939, 1.0}; + } + + if (isD60 && illuminant == "DEF") { + xyD = {0.32168, 0.33767, 1.0}; + } + + if (isD50 && illuminant == "DEF") { + xyD = {0.3457, 0.3585, 1.0}; } // Calculate output profile's rTRC gTRC bTRC + + cmsToneCurve* GammaTRC[3]; - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, ga); + + if (gammaPreset == "standard_g2.2") { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 2.19921875);//spec Adobe + } else if (gammaPreset == "standard_g1.8") { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.80078125); + } else if (gammaPreset == "linear_g1.0") { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.0); + } else if(gammaPreset == "Custom" && slope == 0.0) { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, gamma); + } else { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, ga); + } + + if (profileVersion == "v4") { newProfile = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); + } else if (profileVersion == "v2") { + if (v2except) { + cmsSetProfileVersion(profile_v2_except, 2.2); + } else { + cmsSetProfileVersion(newProfile, 2.2); + } } - cmsWriteTag(newProfile, cmsSigRedTRCTag, GammaTRC[0]); - cmsWriteTag(newProfile, cmsSigGreenTRCTag, GammaTRC[1]); - cmsWriteTag(newProfile, cmsSigBlueTRCTag, GammaTRC[2]); + if (!v2except) { + cmsWriteTag(newProfile, cmsSigRedTRCTag, GammaTRC[0]); + cmsWriteTag(newProfile, cmsSigGreenTRCTag, GammaTRC[1]); + cmsWriteTag(newProfile, cmsSigBlueTRCTag, GammaTRC[2]); + } else { + cmsWriteTag(profile_v2_except, cmsSigRedTRCTag, GammaTRC[0]); + cmsWriteTag(profile_v2_except, cmsSigGreenTRCTag, GammaTRC[1]); + cmsWriteTag(profile_v2_except, cmsSigBlueTRCTag, GammaTRC[2]); + } // --------------- set dmnd tag ------------------ cmsMLU *dmnd; dmnd = cmsMLUalloc(nullptr, 1); cmsMLUsetASCII(dmnd, "en", "US", "RawTherapee"); - cmsWriteTag(newProfile, cmsSigDeviceMfgDescTag, dmnd); + + if (!v2except) { + cmsWriteTag(newProfile, cmsSigDeviceMfgDescTag, dmnd); + } else { + cmsWriteTag(profile_v2_except, cmsSigDeviceMfgDescTag, dmnd); + } + cmsMLUfree(dmnd); - // --------------- set dmdd tag ------------------ + + +// --------------- set dmdd tag ------------------ if (profileVersion == "v2") { //write in tag 'dmdd' values of current gamma and slope to retrieve after in Output profile @@ -951,27 +1367,43 @@ void ICCProfileCreator::savePressed() wGammaSlopeParam << sGammaSlopeParam; cmsMLU *dmdd = cmsMLUalloc(nullptr, 1); + // Language code (2 letters code) : https://www.iso.org/obp/ui/ // Country code (2 letters code) : http://www.loc.gov/standards/iso639-2/php/code_list.php if (sGammaSlopeParam.is_ascii()) { if (cmsMLUsetASCII(dmdd, "en", "US", sGammaSlopeParam.c_str())) { - if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, dmdd)) { - printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + if (!v2except) { + if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, dmdd)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + } else { + if (!cmsWriteTag(profile_v2_except, cmsSigDeviceModelDescTag, dmdd)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + } } } else if (cmsMLUsetWide(dmdd, "en", "US", wGammaSlopeParam.str().c_str())) { - if (!cmsWriteTag(newProfile, cmsSigDeviceModelDescTag, dmdd)) { - printf("Error: Can't write cmsSigDeviceModelDescTag!\n"); + if (!v2except) { + if (!cmsWriteTag(newProfile, cmsSigDeviceModelDescTag, dmdd)) { + printf("Error: Can't write cmsSigDeviceModelDescTag!\n"); + } + } else { + if (!cmsWriteTag(profile_v2_except, cmsSigDeviceModelDescTag, dmdd)) { + printf("Error: Can't write cmsSigDeviceModelDescTag!\n"); + } } } else { printf("Error: cmsMLUsetWide failed for dmdd \"%s\" !\n", sGammaSlopeParam.c_str()); } + cmsMLUfree(dmdd); } - // --------------- set desc tag ------------------ +// --------------- set desc tag ------------------ Glib::ustring sDescription; + if (!description.empty()) { if (cAppendParamsToDesc->get_active()) { sDescription = description + " / " + sGammaSlopeDesc; @@ -986,41 +1418,67 @@ void ICCProfileCreator::savePressed() } } - //write in tag 'dmdd' values of current gamma and slope to retrieve after in Output profile +//write in tag 'dmdd' values of current gamma and slope to retrieve after in Output profile std::wostringstream wDescription; wDescription << sDescription; cmsMLU *descMLU = cmsMLUalloc(nullptr, 1); - // Language code (2 letters code) : https://www.iso.org/obp/ui/ - // Country code (2 letters code) : http://www.loc.gov/standards/iso639-2/php/code_list.php + +// Language code (2 letters code) : https://www.iso.org/obp/ui/ +// Country code (2 letters code) : http://www.loc.gov/standards/iso639-2/php/code_list.php if (sDescription.is_ascii()) { if (cmsMLUsetASCII(descMLU, "en", "US", sDescription.c_str())) { + if (!v2except) { + if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, descMLU)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + } else { + if (!cmsWriteTag(profile_v2_except, cmsSigProfileDescriptionTag, descMLU)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + } + } + + } else if (cmsMLUsetWide(descMLU, "en", "US", wDescription.str().c_str())) { + if (!v2except) { + if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, descMLU)) { printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); } - } - } else if (cmsMLUsetWide(descMLU, "en", "US", wDescription.str().c_str())) { - if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, descMLU)) { - printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } else { + if (!cmsWriteTag(profile_v2_except, cmsSigProfileDescriptionTag, descMLU)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } } } else { printf("Error: cmsMLUsetWide failed for desc \"%s\" !\n", sDescription.c_str()); } + cmsMLUfree(descMLU); - // --------------- set cprt tag ------------------ +// --------------- set cprt tag ------------------ std::wostringstream wCopyright; wCopyright << copyright; cmsMLU *copyMLU = cmsMLUalloc(nullptr, 1); + if (cmsMLUsetWide(copyMLU, "en", "US", wCopyright.str().c_str())) { - if (!cmsWriteTag(newProfile, cmsSigCopyrightTag, copyMLU)) { - printf("Error: Can't write cmsSigCopyrightTag!\n"); + if (!v2except) { + + if (!cmsWriteTag(newProfile, cmsSigCopyrightTag, copyMLU)) { + printf("Error: Can't write cmsSigCopyrightTag!\n"); + } + } else { + if (!cmsWriteTag(profile_v2_except, cmsSigCopyrightTag, copyMLU)) { + printf("Error: Can't write cmsSigCopyrightTag!\n"); + } + } } else { printf("Error: cmsMLUsetWide failed for cprt \"%s\" !\n", copyright.c_str()); } + cmsMLUfree(copyMLU); @@ -1030,8 +1488,12 @@ void ICCProfileCreator::savePressed() cmsCIEXYZ *blueT = static_cast(cmsReadTag(newProfile, cmsSigBlueMatrixColumnTag)); printf("rx=%f gx=%f bx=%f ry=%f gy=%f by=%f rz=%f gz=%f bz=%f\n", redT->X, greenT->X, blueT->X, redT->Y, greenT->Y, blueT->Y, redT->Z, greenT->Z, blueT->Z); */ + if (!v2except) { + cmsSaveProfileToFile(newProfile, absoluteFName.c_str()); + } else { + cmsSaveProfileToFile(profile_v2_except, absoluteFName.c_str()); - cmsSaveProfileToFile(newProfile, absoluteFName.c_str()); + } cmsFreeToneCurve(GammaTRC[0]); } diff --git a/rtgui/iccprofilecreator.h b/rtgui/iccprofilecreator.h index 4ec73ff5c..23e5b86c8 100644 --- a/rtgui/iccprofilecreator.h +++ b/rtgui/iccprofilecreator.h @@ -1,107 +1,107 @@ -/* - * This file is part of RawTherapee. - * - * Copyright (c) 2018 Jacques DESMIS - * Copyright (c) 2018 Jean-Christophe FRISCH - * - * 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 . - */ -#pragma once - -#include -#include "adjuster.h" -#include "options.h" -#include -#include "rtwindow.h" - -class ICCProfileCreator : public Gtk::Dialog, public AdjusterListener -{ - -private: - - enum class ColorTemp { - D50 = 5003, // for Widegamut, Prophoto Best, Beta -> D50 - D60 = 6005, // for ACESc -> D60 - D65 = 6504 // for sRGB, AdobeRGB, Bruce Rec2020 -> D65 - }; - - cmsFloat64Number ga[7]; // 7 parameters for smoother curves - - //------------------------ Params ----------------------- - Glib::ustring primariesPreset; - double redPrimaryX; - double redPrimaryY; - double greenPrimaryX; - double greenPrimaryY; - double bluePrimaryX; - double bluePrimaryY; - Glib::ustring gammaPreset; - double gamma; - double slope; - bool appendParamsToDesc; - - Glib::ustring profileVersion; - Glib::ustring illuminant; - Glib::ustring description; - Glib::ustring copyright; - //------------------------------------------------------- - - RTWindow *parent; - - Adjuster* aGamma; - Adjuster* aSlope; - Adjuster* aPrimariesRedX; - Adjuster* aPrimariesRedY; - Adjuster* aPrimariesGreenX; - Adjuster* aPrimariesGreenY; - Adjuster* aPrimariesBlueX; - Adjuster* aPrimariesBlueY; - - Gtk::Grid* primariesGrid; - MyComboBoxText* iccVersion; - MyComboBoxText* trcPresets; - sigc::connection trcpresetsconn; - MyComboBoxText* primaries; - sigc::connection primariesconn; - MyComboBoxText* cIlluminant; - sigc::connection illconn; - Gtk::Entry* eDescription; - Gtk::Entry* eCopyright; - Gtk::Button* resetCopyright; - Gtk::CheckButton *cAppendParamsToDesc; - - //Glib::ustring lastPath; - - void initWithDefaults (); - void storeDefaults (); - void storeValues(); - - void updateICCVersion(); - void primariesChanged(); - void illuminantChanged(); - void trcPresetsChanged(); - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - static std::vector getGamma(); - Glib::ustring getPrimariesPresetName(const Glib::ustring &preset); - void getPrimaries(const Glib::ustring &preset, float *p, ColorTemp &temp); - Glib::ustring getGammaPresetName(const Glib::ustring &preset); - void getGamma(const Glib::ustring &preset, double &gamma, double &slope); - void savePressed(); - void closePressed(); - void onResetCopyright(); - -public: - explicit ICCProfileCreator (RTWindow *rtwindow); -}; +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Jacques DESMIS + * Copyright (c) 2018 Jean-Christophe FRISCH + * + * 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 . + */ +#pragma once + +#include +#include "adjuster.h" +#include "options.h" +#include +#include "rtwindow.h" + +class ICCProfileCreator : public Gtk::Dialog, public AdjusterListener +{ + +private: + + enum class ColorTemp { + D50 = 5003, // for Widegamut, Prophoto Best, Beta -> D50 + D60 = 6005, // for ACESc -> D60 + D65 = 6504 // for sRGB, AdobeRGB, Bruce Rec2020 -> D65 + }; + + cmsFloat64Number ga[7]; // 7 parameters for smoother curves + + //------------------------ Params ----------------------- + Glib::ustring primariesPreset; + double redPrimaryX; + double redPrimaryY; + double greenPrimaryX; + double greenPrimaryY; + double bluePrimaryX; + double bluePrimaryY; + Glib::ustring gammaPreset; + double gamma; + double slope; + bool appendParamsToDesc; + bool v2except; + Glib::ustring profileVersion; + Glib::ustring illuminant; + Glib::ustring description; + Glib::ustring copyright; + //------------------------------------------------------- + + RTWindow *parent; + + Adjuster* aGamma; + Adjuster* aSlope; + Adjuster* aPrimariesRedX; + Adjuster* aPrimariesRedY; + Adjuster* aPrimariesGreenX; + Adjuster* aPrimariesGreenY; + Adjuster* aPrimariesBlueX; + Adjuster* aPrimariesBlueY; + + Gtk::Grid* primariesGrid; + MyComboBoxText* iccVersion; + MyComboBoxText* trcPresets; + sigc::connection trcpresetsconn; + MyComboBoxText* primaries; + sigc::connection primariesconn; + MyComboBoxText* cIlluminant; + sigc::connection illconn; + Gtk::Entry* eDescription; + Gtk::Entry* eCopyright; + Gtk::Button* resetCopyright; + Gtk::CheckButton *cAppendParamsToDesc; + + //Glib::ustring lastPath; + + void initWithDefaults (); + void storeDefaults (); + void storeValues(); + + void updateICCVersion(); + void primariesChanged(); + void illuminantChanged(); + void trcPresetsChanged(); + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + static std::vector getGamma(); + Glib::ustring getPrimariesPresetName(const Glib::ustring &preset); + void getPrimaries(const Glib::ustring &preset, double *p, ColorTemp &temp); + Glib::ustring getGammaPresetName(const Glib::ustring &preset); + void getGamma(const Glib::ustring &preset, double &gamma, double &slope); + void savePressed(); + void closePressed(); + void onResetCopyright(); + +public: + explicit ICCProfileCreator (RTWindow *rtwindow); +}; diff --git a/rtgui/icmpanel.h b/rtgui/icmpanel.h index bd4aa493e..b1106b6e1 100644 --- a/rtgui/icmpanel.h +++ b/rtgui/icmpanel.h @@ -121,12 +121,12 @@ private: public: ICMPanel(); - void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode(bool batchMode); - void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode(bool batchMode) override; + void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; void wpChanged(); void wtrcinChanged(); diff --git a/rtgui/ilabel.h b/rtgui/ilabel.h index 26b29061f..1f5340fa2 100644 --- a/rtgui/ilabel.h +++ b/rtgui/ilabel.h @@ -28,9 +28,9 @@ class ILabel : public Gtk::DrawingArea public: explicit ILabel (const Glib::ustring &lab); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); - void on_realize(); - void on_style_updated (); + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; + void on_realize() override; + void on_style_updated () override; }; #endif diff --git a/rtgui/imagearea.h b/rtgui/imagearea.h index de9ba1f71..f95045532 100644 --- a/rtgui/imagearea.h +++ b/rtgui/imagearea.h @@ -59,11 +59,11 @@ protected: ImageAreaToolListener* listener; CropWindow* getCropWindow (int x, int y); - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; int fullImageWidth, fullImageHeight; public: @@ -75,7 +75,7 @@ public: ImageArea* iLinkedImageArea; // used to set a reference to the Before image area, which is set when before/after view is enabled explicit ImageArea (ImageAreaPanel* p); - ~ImageArea (); + ~ImageArea () override; rtengine::StagedImageProcessor* getImProcCoordinator() const; void setImProcCoordinator(rtengine::StagedImageProcessor* ipc_); @@ -97,15 +97,15 @@ public: void infoEnabled (bool e); // widget base events - void on_realize (); - bool on_draw (const ::Cairo::RefPtr< Cairo::Context> &cr); - bool on_motion_notify_event (GdkEventMotion* event); - bool on_button_press_event (GdkEventButton* event); - bool on_button_release_event (GdkEventButton* event); - bool on_scroll_event (GdkEventScroll* event); - bool on_leave_notify_event (GdkEventCrossing* event); + void on_realize () override; + bool on_draw (const ::Cairo::RefPtr< Cairo::Context> &cr) override; + bool on_motion_notify_event (GdkEventMotion* event) override; + bool on_button_press_event (GdkEventButton* event) override; + bool on_button_release_event (GdkEventButton* event) override; + bool on_scroll_event (GdkEventScroll* event) override; + bool on_leave_notify_event (GdkEventCrossing* event) override; void on_resized (Gtk::Allocation& req); - void on_style_updated (); + void on_style_updated () override; void syncBeforeAfterViews (); void setCropGUIListener (CropGUIListener* l); @@ -140,18 +140,18 @@ public: void setZoom (double zoom); // EditDataProvider interface - void subscribe(EditSubscriber *subscriber); - void unsubscribe(); - void getImageSize (int &w, int&h); + void subscribe(EditSubscriber *subscriber) override; + void unsubscribe() override; + void getImageSize (int &w, int&h) override; // CropWindowListener interface - void cropPositionChanged (CropWindow* cw); - void cropWindowSizeChanged (CropWindow* cw); - void cropZoomChanged (CropWindow* cw); - void initialImageArrived (); + void cropPositionChanged (CropWindow* cw) override; + void cropWindowSizeChanged (CropWindow* cw) override; + void cropZoomChanged (CropWindow* cw) override; + void initialImageArrived () override; // LockablePickerToolListener interface - void switchPickerVisibility (bool isVisible); + void switchPickerVisibility (bool isVisible) override; CropWindow* getMainCropWindow () { diff --git a/rtgui/imageareapanel.h b/rtgui/imageareapanel.h index a0c5c8df2..13fd6650b 100644 --- a/rtgui/imageareapanel.h +++ b/rtgui/imageareapanel.h @@ -35,7 +35,7 @@ public: ImageArea* imageArea; ImageAreaPanel (); - ~ImageAreaPanel (); + ~ImageAreaPanel () override; void zoomChanged (); diff --git a/rtgui/impulsedenoise.h b/rtgui/impulsedenoise.h index 14b51eb7a..79484dc65 100644 --- a/rtgui/impulsedenoise.h +++ b/rtgui/impulsedenoise.h @@ -34,17 +34,17 @@ public: ImpulseDenoise (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; void setAdjusterBehavior (bool threshadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif diff --git a/rtgui/indclippedpanel.h b/rtgui/indclippedpanel.h index 95e870e95..c026d4611 100644 --- a/rtgui/indclippedpanel.h +++ b/rtgui/indclippedpanel.h @@ -35,7 +35,7 @@ protected: public: explicit IndicateClippedPanel(ImageArea* ia); - ~IndicateClippedPanel(); + ~IndicateClippedPanel() override; void buttonToggled(Gtk::ToggleButton* tb); void toggleClipped(bool highlights); // inverts a toggle programmatically diff --git a/rtgui/inspector.h b/rtgui/inspector.h index ac8f52ee2..d5ed327b8 100644 --- a/rtgui/inspector.h +++ b/rtgui/inspector.h @@ -51,14 +51,14 @@ private: sigc::connection delayconn; Glib::ustring next_image_path; - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; void deleteBuffers(); bool doSwitchImage(); public: Inspector(); - ~Inspector(); + ~Inspector() override; /** @brief Mouse movement to a new position * @param pos Location of the mouse, in percentage (i.e. [0;1] range) relative to the full size image ; -1,-1 == out of the image @@ -92,11 +92,11 @@ public: return active; }; - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; }; diff --git a/rtgui/iptcpanel.h b/rtgui/iptcpanel.h index b216cf638..5574fe884 100644 --- a/rtgui/iptcpanel.h +++ b/rtgui/iptcpanel.h @@ -71,9 +71,9 @@ private: public: IPTCPanel (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void setImageData (const rtengine::FramesMetaData* id); diff --git a/rtgui/labcurve.h b/rtgui/labcurve.h index d15f7d144..eb582035a 100644 --- a/rtgui/labcurve.h +++ b/rtgui/labcurve.h @@ -62,20 +62,20 @@ protected: public: LCurve (); - ~LCurve (); + ~LCurve () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void autoOpenCurve (); - void setEditProvider (EditDataProvider *provider); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void autoOpenCurve () override; + void setEditProvider (EditDataProvider *provider) override; void setAdjusterBehavior (bool bradd, bool contradd, bool satadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; - void curveChanged (CurveEditor* ce); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void curveChanged (CurveEditor* ce) override; + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; void avoidcolorshift_toggled (); void lcredsk_toggled(); @@ -92,9 +92,9 @@ public: const LUTu& histLRETI ); - virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller); + void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; - void enabledChanged(); + void enabledChanged() override; }; #endif diff --git a/rtgui/labgrid.h b/rtgui/labgrid.h index 35e259996..00266c91b 100644 --- a/rtgui/labgrid.h +++ b/rtgui/labgrid.h @@ -66,7 +66,6 @@ private: sigc::connection delayconn; static const int inset = 2; - bool grid_visible; bool low_enabled; bool notifyListener(); @@ -86,14 +85,14 @@ public: bool lowEnabled() const; void setLowEnabled(bool yes); - bool on_draw(const ::Cairo::RefPtr &crf); - void on_style_updated (); - bool on_button_press_event(GdkEventButton *event); - bool on_button_release_event(GdkEventButton *event); - bool on_motion_notify_event(GdkEventMotion *event); - Gtk::SizeRequestMode get_request_mode_vfunc() const; - void get_preferred_width_vfunc(int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; + bool on_draw(const ::Cairo::RefPtr &crf) override; + void on_style_updated () override; + bool on_button_press_event(GdkEventButton *event) override; + bool on_button_release_event(GdkEventButton *event) override; + bool on_motion_notify_event(GdkEventMotion *event) override; + Gtk::SizeRequestMode get_request_mode_vfunc() const override; + void get_preferred_width_vfunc(int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; }; diff --git a/rtgui/lensgeom.h b/rtgui/lensgeom.h index 29b0c7f20..20bb4b7eb 100644 --- a/rtgui/lensgeom.h +++ b/rtgui/lensgeom.h @@ -37,16 +37,16 @@ protected: public: LensGeometry (); - ~LensGeometry (); + ~LensGeometry () override; Gtk::Box* getPackBox () { return packBox; } - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; void fillPressed (); void autoCropPressed (); diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index a725ae9f8..e110792ec 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -29,275 +29,270 @@ using namespace rtengine; using namespace rtengine::procparams; -LensProfilePanel::LFDbHelper *LensProfilePanel::lf(nullptr); - -LensProfilePanel::LensProfilePanel () : +LensProfilePanel::LensProfilePanel() : FoldableToolPanel(this, "lensprof", M("TP_LENSPROFILE_LABEL")), lcModeChanged(false), lcpFileChanged(false), useDistChanged(false), useVignChanged(false), useCAChanged(false), - isRaw(true), - metadata(nullptr), useLensfunChanged(false), lensfunAutoChanged(false), lensfunCameraChanged(false), - lensfunLensChanged(false) + lensfunLensChanged(false), + allowFocusDep(true), + isRaw(true), + metadata(nullptr), + modesGrid(Gtk::manage(new Gtk::Grid())), + distGrid(Gtk::manage((new Gtk::Grid()))), + corrUnchangedRB(Gtk::manage((new Gtk::RadioButton(M("GENERAL_UNCHANGED"))))), + corrOffRB(Gtk::manage((new Gtk::RadioButton(corrGroup, M("GENERAL_NONE"))))), + corrLensfunAutoRB(Gtk::manage((new Gtk::RadioButton(corrGroup, M("TP_LENSPROFILE_CORRECTION_AUTOMATCH"))))), + corrLensfunManualRB(Gtk::manage((new Gtk::RadioButton(corrGroup, M("TP_LENSPROFILE_CORRECTION_MANUAL"))))), + corrLcpFileRB(Gtk::manage((new Gtk::RadioButton(corrGroup, M("TP_LENSPROFILE_CORRECTION_LCPFILE"))))), + corrLcpFileChooser(Gtk::manage((new MyFileChooserButton(M("TP_LENSPROFILE_LABEL"), Gtk::FILE_CHOOSER_ACTION_OPEN)))), + lensfunCamerasLbl(Gtk::manage((new Gtk::Label(M("EXIFFILTER_CAMERA"))))), + lensfunCameras(Gtk::manage((new MyComboBox()))), + lensfunLensesLbl(Gtk::manage((new Gtk::Label(M("EXIFFILTER_LENS"))))), + lensfunLenses(Gtk::manage((new MyComboBox()))), + warning(Gtk::manage((new Gtk::Image()))), + ckbUseDist(Gtk::manage((new Gtk::CheckButton(M("TP_LENSPROFILE_USE_GEOMETRIC"))))), + ckbUseVign(Gtk::manage((new Gtk::CheckButton(M("TP_LENSPROFILE_USE_VIGNETTING"))))), + ckbUseCA(Gtk::manage((new Gtk::CheckButton(M("TP_LENSPROFILE_USE_CA"))))) { if (!lf) { lf = new LFDbHelper(); } - corrUnchanged = Gtk::manage(new Gtk::RadioButton(M("GENERAL_UNCHANGED"))); - pack_start(*corrUnchanged); + // Main containers: - corrGroup = corrUnchanged->get_group(); + modesGrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(modesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - corrOff = Gtk::manage(new Gtk::RadioButton(corrGroup, M("GENERAL_NONE"))); - pack_start(*corrOff); - - corrLensfunAuto = Gtk::manage(new Gtk::RadioButton(corrGroup, M("LENSPROFILE_CORRECTION_AUTOMATCH"))); - pack_start(*corrLensfunAuto); - - corrLensfunManual = Gtk::manage(new Gtk::RadioButton(corrGroup, M("LENSPROFILE_CORRECTION_MANUAL"))); - pack_start(*corrLensfunManual); + distGrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(distGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + // Mode choice widgets: + + Gtk::Label* const corrHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_MODE_HEADER"))); + setExpandAlignProperties(corrHeaderLbl, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + + corrUnchangedRB->hide(); + corrGroup = corrUnchangedRB->get_group(); + + setExpandAlignProperties(corrLcpFileChooser, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + // Manually-selected profile widgets: + + setExpandAlignProperties(lensfunCamerasLbl, false, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); - lensfunCameras = Gtk::manage(new MyComboBox()); lensfunCameras->set_model(lf->lensfunCameraModel); lensfunCameras->pack_start(lf->lensfunModelCam.model); - Gtk::CellRendererText* cellRenderer = dynamic_cast(lensfunCameras->get_first_cell()); - cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; - cellRenderer->property_ellipsize_set() = true; lensfunCameras->setPreferredWidth(50, 120); + setExpandAlignProperties(lensfunCameras, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + Gtk::CellRendererText* const camerasCellRenderer = static_cast(lensfunCameras->get_first_cell()); + camerasCellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; + camerasCellRenderer->property_ellipsize_set() = true; + + setExpandAlignProperties(lensfunLensesLbl, false, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); - lensfunLenses = Gtk::manage(new MyComboBox()); lensfunLenses->set_model(lf->lensfunLensModel); lensfunLenses->pack_start(lf->lensfunModelLens.prettylens); - cellRenderer = dynamic_cast(lensfunLenses->get_first_cell()); - cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; - cellRenderer->property_ellipsize_set() = true; lensfunLenses->setPreferredWidth(50, 120); - - Gtk::HBox *hb = Gtk::manage(new Gtk::HBox()); - hb->pack_start(*Gtk::manage(new Gtk::Label(M("EXIFFILTER_CAMERA"))), Gtk::PACK_SHRINK, 4); - hb->pack_start(*lensfunCameras); - pack_start(*hb); + setExpandAlignProperties(lensfunLenses, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + Gtk::CellRendererText* const lensesCellRenderer = static_cast(lensfunLenses->get_first_cell()); + lensesCellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; + lensesCellRenderer->property_ellipsize_set() = true; - hb = Gtk::manage(new Gtk::HBox()); - hb->pack_start(*Gtk::manage(new Gtk::Label(M("EXIFFILTER_LENS"))), Gtk::PACK_SHRINK, 4); - hb->pack_start(*lensfunLenses); - warning = Gtk::manage(new Gtk::Image()); warning->set_from_icon_name("dialog-warning", Gtk::ICON_SIZE_LARGE_TOOLBAR); - warning->set_tooltip_text(M("LENSPROFILE_LENS_WARNING")); + warning->set_tooltip_text(M("TP_LENSPROFILE_LENS_WARNING")); warning->hide(); - hb->pack_start(*warning, Gtk::PACK_SHRINK, 4); - pack_start(*hb); - corrLcpFile = Gtk::manage(new Gtk::RadioButton(corrGroup)); - hbLCPFile = Gtk::manage(new Gtk::HBox()); - hbLCPFile->pack_start(*corrLcpFile, Gtk::PACK_SHRINK); + // LCP file filter config: - lLCPFileHead = Gtk::manage(new Gtk::Label(M("LENSPROFILE_CORRECTION_LCPFILE"))); - hbLCPFile->pack_start(*lLCPFileHead, Gtk::PACK_SHRINK, 4); - - fcbLCPFile = Gtk::manage(new MyFileChooserButton(M("TP_LENSPROFILE_LABEL"), Gtk::FILE_CHOOSER_ACTION_OPEN)); - - Glib::RefPtr filterLCP = Gtk::FileFilter::create(); + const Glib::RefPtr filterLCP = Gtk::FileFilter::create(); filterLCP->set_name(M("FILECHOOSER_FILTER_LCP")); filterLCP->add_pattern("*.lcp"); filterLCP->add_pattern("*.LCP"); - fcbLCPFile->add_filter(filterLCP); + corrLcpFileChooser->add_filter(filterLCP); - Glib::ustring defDir = LCPStore::getInstance()->getDefaultCommonDirectory(); + const Glib::ustring defDir = LCPStore::getInstance()->getDefaultCommonDirectory(); if (!defDir.empty()) { #ifdef WIN32 - fcbLCPFile->set_show_hidden(true); // ProgramData is hidden on Windows + corrLcpFileChooser->set_show_hidden(true); // ProgramData is hidden on Windows #endif - fcbLCPFile->set_current_folder(defDir); + corrLcpFileChooser->set_current_folder(defDir); } else if (!options.lastLensProfileDir.empty()) { - fcbLCPFile->set_current_folder(options.lastLensProfileDir); + corrLcpFileChooser->set_current_folder(options.lastLensProfileDir); } - bindCurrentFolder(*fcbLCPFile, options.lastLensProfileDir); - hbLCPFile->pack_start(*fcbLCPFile); + bindCurrentFolder(*corrLcpFileChooser, options.lastLensProfileDir); - pack_start(*hbLCPFile, Gtk::PACK_SHRINK, 4); + // Choice of properties to correct, applicable to all modes: - ckbUseDist = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USEDIST"))); - pack_start (*ckbUseDist, Gtk::PACK_SHRINK, 4); - ckbUseVign = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USEVIGN"))); - pack_start (*ckbUseVign, Gtk::PACK_SHRINK, 4); - ckbUseCA = Gtk::manage (new Gtk::CheckButton (M("TP_LENSPROFILE_USECA"))); - pack_start (*ckbUseCA, Gtk::PACK_SHRINK, 4); + Gtk::Label* const useHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_USE_HEADER"))); + setExpandAlignProperties(useHeaderLbl, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - conLCPFile = fcbLCPFile->signal_file_set().connect( sigc::mem_fun(*this, &LensProfilePanel::onLCPFileChanged)); //, true); - conUseDist = ckbUseDist->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseDistChanged) ); - ckbUseVign->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseVignChanged) ); - ckbUseCA->signal_toggled().connect( sigc::mem_fun(*this, &LensProfilePanel::onUseCAChanged) ); + // Populate modes grid: + + modesGrid->attach(*corrHeaderLbl, 0, 0, 2, 1); + modesGrid->attach(*corrUnchangedRB, 0, 1, 2, 1); + modesGrid->attach(*corrOffRB, 0, 2, 2, 1); + modesGrid->attach(*corrLensfunAutoRB, 0, 3, 2, 1); + modesGrid->attach(*corrLensfunManualRB, 0, 4, 2, 1); + + modesGrid->attach(*lensfunCamerasLbl, 0, 5, 1, 1); + modesGrid->attach(*lensfunCameras, 1, 5, 1, 1); + modesGrid->attach(*lensfunLensesLbl, 0, 6, 1, 1); + modesGrid->attach(*lensfunLenses, 1, 6, 1, 1); + modesGrid->attach(*warning, 2, 6, 1, 1); + + modesGrid->attach(*corrLcpFileRB, 0, 7, 1, 1); + modesGrid->attach(*corrLcpFileChooser, 1, 7, 1, 1); + + // Populate distortions grid: + + distGrid->attach(*useHeaderLbl, 0, 0, 1, 1); + distGrid->attach(*ckbUseDist, 0, 1, 1, 1); + distGrid->attach(*ckbUseVign, 0, 2, 1, 1); + distGrid->attach(*ckbUseCA, 0, 3, 1, 1); + + // Attach grids: + + pack_start(*modesGrid); + pack_start(*distGrid); + + // Signals: + + conLCPFile = corrLcpFileChooser->signal_file_set().connect(sigc::mem_fun(*this, &LensProfilePanel::onLCPFileChanged)); + conUseDist = ckbUseDist->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onUseDistChanged)); + ckbUseVign->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onUseVignChanged)); + ckbUseCA->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onUseCAChanged)); lensfunCameras->signal_changed().connect(sigc::mem_fun(*this, &LensProfilePanel::onLensfunCameraChanged)); lensfunLenses->signal_changed().connect(sigc::mem_fun(*this, &LensProfilePanel::onLensfunLensChanged)); - corrOff->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrOff)); - corrLensfunAuto->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunAuto)); - corrLensfunManual->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunManual)); - corrLcpFile->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLcpFile)); - - corrUnchanged->hide(); - - allowFocusDep = true; + corrOffRB->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrOffRB)); + corrLensfunAutoRB->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunAutoRB)); + corrLensfunManualRB->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunManualRB)); + corrLcpFileRB->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLcpFileRB)); } void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited) { - disableListener (); + disableListener(); conUseDist.block(true); if (!batchMode) { - corrUnchanged->hide(); + corrUnchangedRB->hide(); } - corrLensfunAuto->set_sensitive(true); + corrLensfunAutoRB->set_sensitive(true); - switch(pp->lensProf.lcMode) { - case procparams::LensProfParams::LcMode::LCP : - corrLcpFile->set_active(true); + switch (pp->lensProf.lcMode) { + case procparams::LensProfParams::LcMode::LCP: { + corrLcpFileRB->set_active(true); + setManualParamsVisibility(false); break; - case procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH : - corrLensfunAuto->set_active(true); + } + + case procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH: { + corrLensfunAutoRB->set_active(true); break; - case procparams::LensProfParams::LcMode::LENSFUNMANUAL : - corrLensfunManual->set_active(true); + } + + case procparams::LensProfParams::LcMode::LENSFUNMANUAL: { + corrLensfunManualRB->set_active(true); break; - case procparams::LensProfParams::LcMode::NONE : - corrOff->set_active(true); + } + + case procparams::LensProfParams::LcMode::NONE: { + corrOffRB->set_active(true); + setManualParamsVisibility(false); + break; + } } if (pp->lensProf.lcpFile.empty()) { - Glib::ustring lastFolder = fcbLCPFile->get_current_folder(); - fcbLCPFile->set_current_folder(lastFolder); - fcbLCPFile->unselect_all(); - bindCurrentFolder(*fcbLCPFile, options.lastLensProfileDir); + const Glib::ustring lastFolder = corrLcpFileChooser->get_current_folder(); + corrLcpFileChooser->set_current_folder(lastFolder); + corrLcpFileChooser->unselect_all(); + bindCurrentFolder(*corrLcpFileChooser, options.lastLensProfileDir); updateDisabled(false); - } else if (LCPStore::getInstance()->isValidLCPFileName(pp->lensProf.lcpFile)) { - fcbLCPFile->set_filename (pp->lensProf.lcpFile); - if(corrLcpFile->get_active()) { + } + else if (LCPStore::getInstance()->isValidLCPFileName(pp->lensProf.lcpFile)) { + corrLcpFileChooser->set_filename(pp->lensProf.lcpFile); + + if (corrLcpFileRB->get_active()) { updateDisabled(true); } - } else { - fcbLCPFile->unselect_filename(fcbLCPFile->get_filename()); + } + else { + corrLcpFileChooser->unselect_filename(corrLcpFileChooser->get_filename()); updateDisabled(false); } - const LFDatabase *db = LFDatabase::getInstance(); + const LFDatabase* const db = LFDatabase::getInstance(); LFCamera c; - + if (!setLensfunCamera(pp->lensProf.lfCameraMake, pp->lensProf.lfCameraModel) && !pp->lensProf.lfManual()) { if (metadata) { c = db->findCamera(metadata->getMake(), metadata->getModel()); setLensfunCamera(c.getMake(), c.getModel()); } } + if (!setLensfunLens(pp->lensProf.lfLens) && !pp->lensProf.lfManual()) { if (metadata) { - LFLens l = db->findLens(c, metadata->getLens()); + const LFLens l = db->findLens(c, metadata->getLens()); setLensfunLens(l.getLens()); } } - + lcModeChanged = lcpFileChanged = useDistChanged = useVignChanged = useCAChanged = false; useLensfunChanged = lensfunAutoChanged = lensfunCameraChanged = lensfunLensChanged = false; if (!batchMode && !checkLensfunCanCorrect(true)) { - if (corrLensfunAuto->get_active()) { - corrOff->set_active(true); + if (corrLensfunAutoRB->get_active()) { + corrOffRB->set_active(true); } - corrLensfunAuto->set_sensitive(false); + + corrLensfunAutoRB->set_sensitive(false); } - if (corrLensfunManual->get_active() && !checkLensfunCanCorrect(false)) { - corrOff->set_active(true); + if (corrLensfunManualRB->get_active() && !checkLensfunCanCorrect(false)) { + corrOffRB->set_active(true); } updateLensfunWarning(); - ckbUseDist->set_active (pp->lensProf.useDist); - ckbUseVign->set_active (pp->lensProf.useVign && isRaw); + ckbUseDist->set_active(pp->lensProf.useDist); + ckbUseVign->set_active(pp->lensProf.useVign && isRaw); ckbUseCA->set_active(pp->lensProf.useCA && isRaw && ckbUseCA->get_sensitive()); - - enableListener (); + + enableListener(); conUseDist.block(false); } - -void LensProfilePanel::updateLensfunWarning() +void LensProfilePanel::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) { - warning->hide(); - if (corrLensfunManual->get_active() || corrLensfunAuto->get_active()) { - const LFDatabase *db = LFDatabase::getInstance(); - - auto itc = lensfunCameras->get_active(); - if (!itc) { - return; - } - LFCamera c = db->findCamera((*itc)[lf->lensfunModelCam.make], (*itc)[lf->lensfunModelCam.model]); - auto itl = lensfunLenses->get_active(); - if (!itl) { - return; - } - LFLens l = db->findLens(LFCamera(), (*itl)[lf->lensfunModelLens.lens]); - float lenscrop = l.getCropFactor(); - float camcrop = c.getCropFactor(); - if (lenscrop <= 0 || camcrop <= 0 || lenscrop / camcrop >= 1.01f) { - warning->show(); - } - ckbUseVign->set_sensitive(l.hasVignettingCorrection()); - ckbUseDist->set_sensitive(l.hasDistortionCorrection()); - ckbUseCA->set_sensitive(l.hasCACorrection()); - if (!isRaw || !l.hasVignettingCorrection()) { - ckbUseVign->set_active(false); - } - if (!l.hasDistortionCorrection()) { - ckbUseDist->set_active(false); - } - if (!l.hasCACorrection()) { - ckbUseCA->set_active(false); - } - } -} - -void LensProfilePanel::setRawMeta(bool raw, const rtengine::FramesMetaData* pMeta) -{ - if (!raw || pMeta->getFocusDist() <= 0) { - disableListener(); - - // CA is very focus layer dependent, otherwise it might even worsen things - allowFocusDep = false; - ckbUseCA->set_active(false); - ckbUseCA->set_sensitive(false); - - enableListener(); - } - - isRaw = raw; - metadata = pMeta; -} - -void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) -{ - if (corrLcpFile->get_active()) { + if (corrLcpFileRB->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LCP; - } else if(corrLensfunManual->get_active()) { + } + else if (corrLensfunManualRB->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LENSFUNMANUAL; - } else if(corrLensfunAuto->get_active()) { + } + else if (corrLensfunAutoRB->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH; - } else if(corrOff->get_active()) { + } + else if (corrOffRB->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::NONE; } - if (LCPStore::getInstance()->isValidLCPFileName(fcbLCPFile->get_filename())) { - pp->lensProf.lcpFile = fcbLCPFile->get_filename(); + if (LCPStore::getInstance()->isValidLCPFileName(corrLcpFileChooser->get_filename())) { + pp->lensProf.lcpFile = corrLcpFileChooser->get_filename(); } else { pp->lensProf.lcpFile = ""; } @@ -306,7 +301,8 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited pp->lensProf.useVign = ckbUseVign->get_active(); pp->lensProf.useCA = ckbUseCA->get_active(); - auto itc = lensfunCameras->get_active(); + const auto itc = lensfunCameras->get_active(); + if (itc) { pp->lensProf.lfCameraMake = (*itc)[lf->lensfunModelCam.make]; pp->lensProf.lfCameraModel = (*itc)[lf->lensfunModelCam.model]; @@ -314,7 +310,9 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited pp->lensProf.lfCameraMake = ""; pp->lensProf.lfCameraModel = ""; } - auto itl = lensfunLenses->get_active(); + + const auto itl = lensfunLenses->get_active(); + if (itl) { pp->lensProf.lfLens = (*itl)[lf->lensfunModelLens.lens]; } else { @@ -335,19 +333,37 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited } } +void LensProfilePanel::setRawMeta(bool raw, const rtengine::FramesMetaData* pMeta) +{ + if (!raw || pMeta->getFocusDist() <= 0) { + disableListener(); + + // CA is very focus layer dependent, otherwise it might even worsen things + allowFocusDep = false; + ckbUseCA->set_active(false); + ckbUseCA->set_sensitive(false); + + enableListener(); + } + + isRaw = raw; + metadata = pMeta; +} + void LensProfilePanel::onLCPFileChanged() { lcpFileChanged = true; - bool valid = LCPStore::getInstance()->isValidLCPFileName(fcbLCPFile->get_filename()); + const bool valid = LCPStore::getInstance()->isValidLCPFileName(corrLcpFileChooser->get_filename()); updateDisabled(valid); if (listener) { if (valid) { disableListener(); - corrLcpFile->set_active(true); + corrLcpFileRB->set_active(true); enableListener(); } - listener->panelChanged (EvLCPFile, Glib::path_get_basename(fcbLCPFile->get_filename())); + + listener->panelChanged(EvLCPFile, Glib::path_get_basename(corrLcpFileChooser->get_filename())); } } @@ -356,120 +372,53 @@ void LensProfilePanel::onUseDistChanged() useDistChanged = true; if (listener) { - listener->panelChanged (EvLCPUseDist, ckbUseDist->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); + listener->panelChanged(EvLCPUseDist, ckbUseDist->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); } } + void LensProfilePanel::onUseVignChanged() { useVignChanged = true; if (listener) { - listener->panelChanged (EvLCPUseVign, ckbUseVign->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); + listener->panelChanged(EvLCPUseVign, ckbUseVign->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); } } + void LensProfilePanel::onUseCAChanged() { useCAChanged = true; if (listener) { - listener->panelChanged (EvLCPUseCA, ckbUseCA->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); + listener->panelChanged(EvLCPUseCA, ckbUseCA->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); } } -void LensProfilePanel::updateDisabled(bool enable) -{ - ckbUseDist->set_sensitive(enable); - ckbUseVign->set_sensitive(enable && isRaw); - ckbUseCA->set_sensitive(enable && allowFocusDep); -} - void LensProfilePanel::setBatchMode(bool yes) { FoldableToolPanel::setBatchMode(yes); + if (yes) { - corrUnchanged->show(); - corrUnchanged->set_active(true); + corrUnchangedRB->show(); + corrUnchangedRB->set_active(true); } else { - corrUnchanged->hide(); + corrUnchangedRB->hide(); } } - -bool LensProfilePanel::setLensfunCamera(const Glib::ustring &make, const Glib::ustring &model) -{ - if (!make.empty() && !model.empty()) { - auto it = lensfunCameras->get_active(); - if (it && (*it)[lf->lensfunModelCam.make] == make && (*it)[lf->lensfunModelCam.model] == model) { - return true; - } - - // search for the active row - for (auto row : lf->lensfunCameraModel->children()) { - if (row[lf->lensfunModelCam.make] == make) { - auto &c = row.children(); - for (auto it = c.begin(), end = c.end(); it != end; ++it) { - auto &childrow = *it; - if (childrow[lf->lensfunModelCam.model] == model) { - lensfunCameras->set_active(it); - return true; - } - } - break; - } - } - } - lensfunCameras->set_active(-1); - return false; -} - - -bool LensProfilePanel::setLensfunLens(const Glib::ustring &lens) -{ - if (!lens.empty()) { - auto it = lensfunLenses->get_active(); - if (it && (*it)[lf->lensfunModelLens.lens] == lens) { - return true; - } - - bool first_maker_found = false; - for (auto row : lf->lensfunLensModel->children()) { - if (lens.find(row[lf->lensfunModelLens.lens]) == 0) { - auto &c = row.children(); - for (auto it = c.begin(), end = c.end(); it != end; ++it) { - auto &childrow = *it; - if (childrow[lf->lensfunModelLens.lens] == lens) { - lensfunLenses->set_active(it); - return true; - } - } - // we do not break immediately here, because there might be multiple makers - // sharing the same prefix (e.g. "Leica" and "Leica Camera AG"). - // therefore, we break below when the lens doesn't match any of them - first_maker_found = true; - } else if (first_maker_found) { - break; - } - } - } - lensfunLenses->set_active(-1); - return false; -} - - - void LensProfilePanel::onLensfunCameraChanged() { - auto iter = lensfunCameras->get_active(); + const auto iter = lensfunCameras->get_active(); if (iter) { lensfunCameraChanged = true; if (listener) { disableListener(); - corrLensfunManual->set_active(true); + corrLensfunManualRB->set_active(true); enableListener(); - - Glib::ustring name = (*iter)[lf->lensfunModelCam.model]; + + const Glib::ustring name = (*iter)[lf->lensfunModelCam.model]; listener->panelChanged(EvLensCorrLensfunCamera, name); } } @@ -477,20 +426,19 @@ void LensProfilePanel::onLensfunCameraChanged() updateLensfunWarning(); } - void LensProfilePanel::onLensfunLensChanged() { - auto iter = lensfunLenses->get_active(); + const auto iter = lensfunLenses->get_active(); if (iter) { lensfunLensChanged = true; if (listener) { disableListener(); - corrLensfunManual->set_active(true); + corrLensfunManualRB->set_active(true); enableListener(); - - Glib::ustring name = (*iter)[lf->lensfunModelLens.prettylens]; + + const Glib::ustring name = (*iter)[lf->lensfunModelLens.prettylens]; listener->panelChanged(EvLensCorrLensfunLens, name); } } @@ -498,14 +446,13 @@ void LensProfilePanel::onLensfunLensChanged() updateLensfunWarning(); } - -void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) +void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) { if (rbChanged->get_active()) { // because the method gets called for the enabled AND the disabled RadioButton, we do the processing only for the enabled one Glib::ustring mode; - if (rbChanged == corrOff) { + if (rbChanged == corrOffRB) { useLensfunChanged = true; lensfunAutoChanged = true; lcpFileChanged = true; @@ -515,7 +462,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) ckbUseCA->set_sensitive(false); mode = M("GENERAL_NONE"); - } else if (rbChanged == corrLensfunAuto) { + } else if (rbChanged == corrLensfunAutoRB) { useLensfunChanged = true; lensfunAutoChanged = true; lcpFileChanged = true; @@ -527,19 +474,20 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) ckbUseCA->set_sensitive(false); if (metadata) { - bool b = disableListener(); - const LFDatabase *db = LFDatabase::getInstance(); - LFCamera c = db->findCamera(metadata->getMake(), metadata->getModel()); - LFLens l = db->findLens(c, metadata->getLens()); + const bool disabled = disableListener(); + const LFDatabase* const db = LFDatabase::getInstance(); + const LFCamera c = db->findCamera(metadata->getMake(), metadata->getModel()); + const LFLens l = db->findLens(c, metadata->getLens()); setLensfunCamera(c.getMake(), c.getModel()); setLensfunLens(l.getLens()); - if (b) { + + if (disabled) { enableListener(); } } - mode = M("LENSPROFILE_CORRECTION_AUTOMATCH"); - } else if (rbChanged == corrLensfunManual) { + mode = M("TP_LENSPROFILE_CORRECTION_AUTOMATCH"); + } else if (rbChanged == corrLensfunManualRB) { useLensfunChanged = true; lensfunAutoChanged = true; lcpFileChanged = true; @@ -550,8 +498,8 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) ckbUseVign->set_sensitive(true); ckbUseCA->set_sensitive(false); - mode = M("LENSPROFILE_CORRECTION_MANUAL"); - } else if (rbChanged == corrLcpFile) { + mode = M("TP_LENSPROFILE_CORRECTION_MANUAL"); + } else if (rbChanged == corrLcpFileRB) { useLensfunChanged = true; lensfunAutoChanged = true; lcpFileChanged = true; @@ -560,8 +508,8 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) updateDisabled(true); - mode = M("LENSPROFILE_CORRECTION_LCPFILE"); - } else if (rbChanged == corrUnchanged) { + mode = M("TP_LENSPROFILE_CORRECTION_LCPFILE"); + } else if (rbChanged == corrUnchangedRB) { useLensfunChanged = false; lensfunAutoChanged = false; lcpFileChanged = false; @@ -578,25 +526,18 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) lcModeChanged = true; updateLensfunWarning(); + if (rbChanged == corrLensfunManualRB || rbChanged == corrLensfunAutoRB) { + setManualParamsVisibility(true); + } else { + setManualParamsVisibility(false); + } + if (listener) { listener->panelChanged(EvLensCorrMode, mode); } } } - -bool LensProfilePanel::checkLensfunCanCorrect(bool automatch) -{ - if (!metadata) { - return false; - } - rtengine::procparams::ProcParams lpp; - write(&lpp); - std::unique_ptr mod(LFDatabase::findModifier(lpp.lensProf, metadata, 100, 100, lpp.coarse, -1)); - return mod.get() != nullptr; -} - - //----------------------------------------------------------------------------- // LFDbHelper //----------------------------------------------------------------------------- @@ -606,22 +547,22 @@ LensProfilePanel::LFDbHelper::LFDbHelper() #ifdef _OPENMP #pragma omp parallel sections if (!options.rtSettings.verbose) #endif -{ + { #ifdef _OPENMP #pragma omp section #endif -{ - lensfunCameraModel = Gtk::TreeStore::create(lensfunModelCam); - fillLensfunCameras(); -} + { + lensfunCameraModel = Gtk::TreeStore::create(lensfunModelCam); + fillLensfunCameras(); + } #ifdef _OPENMP #pragma omp section #endif -{ - lensfunLensModel = Gtk::TreeStore::create(lensfunModelLens); - fillLensfunLenses(); -} -} + { + lensfunLensModel = Gtk::TreeStore::create(lensfunModelLens); + fillLensfunLenses(); + } + } } void LensProfilePanel::LFDbHelper::fillLensfunCameras() @@ -629,20 +570,24 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras() if (options.rtSettings.verbose) { std::cout << "LENSFUN, scanning cameras:" << std::endl; } + std::map> camnames; - auto camlist = LFDatabase::getInstance()->getCameras(); - for (auto &c : camlist) { + const auto camlist = LFDatabase::getInstance()->getCameras(); + + for (const auto& c : camlist) { camnames[c.getMake()].insert(c.getModel()); if (options.rtSettings.verbose) { std::cout << " found: " << c.getDisplayString().c_str() << std::endl; - } + } } - for (auto &p : camnames) { + + for (const auto& p : camnames) { Gtk::TreeModel::Row row = *(lensfunCameraModel->append()); row[lensfunModelCam.make] = p.first; row[lensfunModelCam.model] = p.first; - for (auto &c : p.second) { + + for (const auto& c : p.second) { Gtk::TreeModel::Row child = *(lensfunCameraModel->append(row.children())); child[lensfunModelCam.make] = p.first; child[lensfunModelCam.model] = c; @@ -650,35 +595,193 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras() } } - void LensProfilePanel::LFDbHelper::fillLensfunLenses() { if (options.rtSettings.verbose) { std::cout << "LENSFUN, scanning lenses:" << std::endl; } + std::map> lenses; - auto lenslist = LFDatabase::getInstance()->getLenses(); - for (auto &l : lenslist) { - auto name = l.getLens(); - auto make = l.getMake(); + const auto lenslist = LFDatabase::getInstance()->getLenses(); + + for (const auto& l : lenslist) { + const auto& name = l.getLens(); + const auto& make = l.getMake(); lenses[make].insert(name); if (options.rtSettings.verbose) { std::cout << " found: " << l.getDisplayString().c_str() << std::endl; } } - for (auto &p : lenses) { + + for (const auto& p : lenses) { Gtk::TreeModel::Row row = *(lensfunLensModel->append()); row[lensfunModelLens.lens] = p.first; row[lensfunModelLens.prettylens] = p.first; + for (auto &c : p.second) { Gtk::TreeModel::Row child = *(lensfunLensModel->append(row.children())); child[lensfunModelLens.lens] = c; - if (c.find(p.first, p.first.size()+1) == p.first.size()+1) { - child[lensfunModelLens.prettylens] = c.substr(p.first.size()+1); + + if (c.find(p.first, p.first.size() + 1) == p.first.size() + 1) { + child[lensfunModelLens.prettylens] = c.substr(p.first.size() + 1); } else { child[lensfunModelLens.prettylens] = c; } } } } + +void LensProfilePanel::updateDisabled(bool enable) +{ + ckbUseDist->set_sensitive(enable); + ckbUseVign->set_sensitive(enable && isRaw); + ckbUseCA->set_sensitive(enable && allowFocusDep); +} + +bool LensProfilePanel::setLensfunCamera(const Glib::ustring& make, const Glib::ustring& model) +{ + if (!make.empty() && !model.empty()) { + const auto camera_it = lensfunCameras->get_active(); + + if (camera_it && (*camera_it)[lf->lensfunModelCam.make] == make && (*camera_it)[lf->lensfunModelCam.model] == model) { + return true; + } + + // search for the active row + for (const auto& row : lf->lensfunCameraModel->children()) { + if (row[lf->lensfunModelCam.make] == make) { + const auto& c = row.children(); + + for (auto model_it = c.begin(), end = c.end(); model_it != end; ++model_it) { + const auto& childrow = *model_it; + + if (childrow[lf->lensfunModelCam.model] == model) { + lensfunCameras->set_active(model_it); + return true; + } + } + + break; + } + } + } + + lensfunCameras->set_active(-1); + return false; +} + +bool LensProfilePanel::setLensfunLens(const Glib::ustring& lens) +{ + if (!lens.empty()) { + const auto lens_it = lensfunLenses->get_active(); + + if (lens_it && (*lens_it)[lf->lensfunModelLens.lens] == lens) { + return true; + } + + bool first_maker_found = false; + + for (const auto& row : lf->lensfunLensModel->children()) { + if (lens.find(row[lf->lensfunModelLens.lens]) == 0) { + const auto& c = row.children(); + + for (auto model_it = c.begin(), end = c.end(); model_it != end; ++model_it) { + const auto& childrow = *model_it; + + if (childrow[lf->lensfunModelLens.lens] == lens) { + lensfunLenses->set_active(model_it); + return true; + } + } + + // we do not break immediately here, because there might be multiple makers + // sharing the same prefix (e.g. "Leica" and "Leica Camera AG"). + // therefore, we break below when the lens doesn't match any of them + first_maker_found = true; + } else if (first_maker_found) { + break; + } + } + } + + lensfunLenses->set_active(-1); + return false; +} + +bool LensProfilePanel::checkLensfunCanCorrect(bool automatch) +{ + if (!metadata) { + return false; + } + + rtengine::procparams::ProcParams lpp; + write(&lpp); + const std::unique_ptr mod(LFDatabase::findModifier(lpp.lensProf, metadata, 100, 100, lpp.coarse, -1)); + return static_cast(mod); +} + +void LensProfilePanel::setManualParamsVisibility(bool setVisible) +{ + if (setVisible) { + lensfunCamerasLbl->show(); + lensfunCameras->show(); + lensfunLensesLbl->show(); + lensfunLenses->show(); + updateLensfunWarning(); + } else { + lensfunCamerasLbl->hide(); + lensfunCameras->hide(); + lensfunLensesLbl->hide(); + lensfunLenses->hide(); + warning->hide(); + } +} + +void LensProfilePanel::updateLensfunWarning() +{ + warning->hide(); + + if (corrLensfunManualRB->get_active() || corrLensfunAutoRB->get_active()) { + const LFDatabase* const db = LFDatabase::getInstance(); + + const auto itc = lensfunCameras->get_active(); + + if (!itc) { + return; + } + + const LFCamera c = db->findCamera((*itc)[lf->lensfunModelCam.make], (*itc)[lf->lensfunModelCam.model]); + const auto itl = lensfunLenses->get_active(); + + if (!itl) { + return; + } + + const LFLens l = db->findLens(LFCamera(), (*itl)[lf->lensfunModelLens.lens]); + const float lenscrop = l.getCropFactor(); + const float camcrop = c.getCropFactor(); + + if (lenscrop <= 0 || camcrop <= 0 || lenscrop / camcrop >= 1.01f) { + warning->show(); + } + + ckbUseVign->set_sensitive(l.hasVignettingCorrection()); + ckbUseDist->set_sensitive(l.hasDistortionCorrection()); + ckbUseCA->set_sensitive(l.hasCACorrection()); + + if (!isRaw || !l.hasVignettingCorrection()) { + ckbUseVign->set_active(false); + } + + if (!l.hasDistortionCorrection()) { + ckbUseDist->set_active(false); + } + + if (!l.hasCACorrection()) { + ckbUseCA->set_active(false); + } + } +} + +LensProfilePanel::LFDbHelper* LensProfilePanel::lf(nullptr); diff --git a/rtgui/lensprofile.h b/rtgui/lensprofile.h index 8c814e6fc..76c15aa9a 100644 --- a/rtgui/lensprofile.h +++ b/rtgui/lensprofile.h @@ -16,96 +16,120 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _LENSPROFILE_H_ -#define _LENSPROFILE_H_ +#pragma once #include -#include "toolpanel.h" + #include "guiutils.h" #include "lensgeom.h" +#include "toolpanel.h" -class LensProfilePanel : public ToolParamBlock, public FoldableToolPanel +class LensProfilePanel final : + public ToolParamBlock, + public FoldableToolPanel { +public: + LensProfilePanel(); -protected: + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setRawMeta(bool raw, const rtengine::FramesMetaData* pMeta); - MyFileChooserButton *fcbLCPFile; - Gtk::CheckButton *ckbUseDist, *ckbUseVign, *ckbUseCA; - Gtk::HBox *hbLCPFile; - Gtk::Label *lLCPFileHead; - bool lcModeChanged, lcpFileChanged, useDistChanged, useVignChanged, useCAChanged; - sigc::connection conLCPFile, conUseDist, conUseVign, conUseCA; - void updateDisabled(bool enable); - bool allowFocusDep; - bool isRaw; - const rtengine::FramesMetaData* metadata; + void onLCPFileChanged(); + void onUseDistChanged(); + void onUseVignChanged(); + void onUseCAChanged(); - Gtk::RadioButton::Group corrGroup; - Gtk::RadioButton *corrOff; - Gtk::RadioButton *corrLensfunAuto; - Gtk::RadioButton *corrLensfunManual; - Gtk::RadioButton *corrLcpFile; - Gtk::RadioButton *corrUnchanged; - MyComboBox *lensfunCameras; - MyComboBox *lensfunLenses; - Gtk::Image *warning; + void setBatchMode(bool yes) override; - class LFDbHelper { + void onLensfunCameraChanged(); + void onLensfunLensChanged(); + void onCorrModeChanged(const Gtk::RadioButton* rbChanged); + +private: + class LFDbHelper final + { public: - class LFModelCam: public Gtk::TreeModel::ColumnRecord { + class LFModelCam final : + public Gtk::TreeModel::ColumnRecord + { public: - LFModelCam() { add(make); add(model); } + LFModelCam() + { + add(make); + add(model); + } Gtk::TreeModelColumn make; Gtk::TreeModelColumn model; }; - class LFModelLens: public Gtk::TreeModel::ColumnRecord { + class LFModelLens final : + public Gtk::TreeModel::ColumnRecord + { public: - LFModelLens() { add(lens); add(prettylens); } + LFModelLens() + { + add(lens); + add(prettylens); + } Gtk::TreeModelColumn lens; Gtk::TreeModelColumn prettylens; }; LFModelCam lensfunModelCam; LFModelLens lensfunModelLens; - + Glib::RefPtr lensfunCameraModel; Glib::RefPtr lensfunLensModel; LFDbHelper(); + void fillLensfunCameras(); void fillLensfunLenses(); }; - static LFDbHelper *lf; + void updateDisabled(bool enable); + + bool setLensfunCamera(const Glib::ustring& make, const Glib::ustring& model); + bool setLensfunLens(const Glib::ustring& lens); + bool checkLensfunCanCorrect(bool automatch); + void setManualParamsVisibility(bool setVisible); + void updateLensfunWarning(); + + bool lcModeChanged; + bool lcpFileChanged; + bool useDistChanged; + bool useVignChanged; + bool useCAChanged; bool useLensfunChanged; bool lensfunAutoChanged; bool lensfunCameraChanged; bool lensfunLensChanged; + sigc::connection conLCPFile; + sigc::connection conUseDist; + sigc::connection conUseVign; + sigc::connection conUseCA; + bool allowFocusDep; + bool isRaw; + const rtengine::FramesMetaData* metadata; - bool setLensfunCamera(const Glib::ustring &make, const Glib::ustring &model); - bool setLensfunLens(const Glib::ustring &lens); - bool checkLensfunCanCorrect(bool automatch); - void updateLensfunWarning(); - -public: + Gtk::Grid* const modesGrid; + Gtk::Grid* const distGrid; + Gtk::RadioButton* const corrUnchangedRB; + Gtk::RadioButton::Group corrGroup; + Gtk::RadioButton* const corrOffRB; + Gtk::RadioButton* const corrLensfunAutoRB; + Gtk::RadioButton* const corrLensfunManualRB; + Gtk::RadioButton* const corrLcpFileRB; + MyFileChooserButton* const corrLcpFileChooser; + Gtk::Label* const lensfunCamerasLbl; + MyComboBox* const lensfunCameras; + Gtk::Label* const lensfunLensesLbl; + MyComboBox* const lensfunLenses; + Gtk::Image* const warning; + Gtk::CheckButton* const ckbUseDist; + Gtk::CheckButton* const ckbUseVign; + Gtk::CheckButton* const ckbUseCA; - LensProfilePanel (); - - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setRawMeta (bool raw, const rtengine::FramesMetaData* pMeta); - - void onLCPFileChanged (); - void onUseDistChanged(); - void onUseVignChanged(); - void onUseCAChanged(); - - void setBatchMode(bool yes); - - void onLensfunCameraChanged(); - void onLensfunLensChanged(); - void onCorrModeChanged(const Gtk::RadioButton *rbChanged); + static LFDbHelper* lf; }; - -#endif diff --git a/rtgui/localcontrast.h b/rtgui/localcontrast.h index 89341c976..efe7a18f0 100644 --- a/rtgui/localcontrast.h +++ b/rtgui/localcontrast.h @@ -41,14 +41,14 @@ public: LocalContrast(); - void read(const rtengine::procparams::ProcParams *pp, const ParamsEdited *pedited=nullptr); - void write(rtengine::procparams::ProcParams *pp, ParamsEdited *pedited=nullptr); - void setDefaults(const rtengine::procparams::ProcParams *defParams, const ParamsEdited *pedited=nullptr); - void setBatchMode(bool batchMode); + void read(const rtengine::procparams::ProcParams *pp, const ParamsEdited *pedited=nullptr) override; + void write(rtengine::procparams::ProcParams *pp, ParamsEdited *pedited=nullptr) override; + void setDefaults(const rtengine::procparams::ProcParams *defParams, const ParamsEdited *pedited=nullptr) override; + void setBatchMode(bool batchMode) override; - void adjusterChanged(Adjuster *a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged(); + void adjusterChanged(Adjuster *a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged() override; void setAdjusterBehavior(bool radiusAdd, bool amountAdd, bool darknessAdd, bool lightnessAdd); }; diff --git a/rtgui/main-cli.cc b/rtgui/main-cli.cc index 8a762f6f8..df9b53c78 100644 --- a/rtgui/main-cli.cc +++ b/rtgui/main-cli.cc @@ -203,7 +203,9 @@ int main (int argc, char **argv) // Move the old path to the new one if the new does not exist if (Glib::file_test (Glib::build_filename (options.rtdir, "cache"), Glib::FILE_TEST_IS_DIR) && !Glib::file_test (options.cacheBaseDir, Glib::FILE_TEST_IS_DIR)) { - g_rename (Glib::build_filename (options.rtdir, "cache").c_str (), options.cacheBaseDir.c_str ()); + if (g_rename (Glib::build_filename (options.rtdir, "cache").c_str (), options.cacheBaseDir.c_str ()) == -1) { + std::cout << "g_rename " << Glib::build_filename (options.rtdir, "cache").c_str () << " => " << options.cacheBaseDir.c_str () << " failed." << std::endl; + } } #endif diff --git a/rtgui/main.cc b/rtgui/main.cc index aa169e147..d4c52154c 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -361,7 +361,7 @@ public: { } - ~RTApplication() + ~RTApplication() override { if (rtWindow) { delete rtWindow; diff --git a/rtgui/metadatapanel.h b/rtgui/metadatapanel.h index a2c1f43ac..d34a04585 100644 --- a/rtgui/metadatapanel.h +++ b/rtgui/metadatapanel.h @@ -36,14 +36,14 @@ private: public: MetaDataPanel(); - ~MetaDataPanel(); + ~MetaDataPanel() override; - void setBatchMode(bool batchMode); - void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); + void setBatchMode(bool batchMode) override; + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void setImageData(const rtengine::FramesMetaData* id); - void setListener(ToolPanelListener *tpl); + void setListener(ToolPanelListener *tpl) override; }; diff --git a/rtgui/mycurve.h b/rtgui/mycurve.h index 8521b5748..f555ab7ef 100644 --- a/rtgui/mycurve.h +++ b/rtgui/mycurve.h @@ -109,7 +109,7 @@ protected: public: MyCurve (); - ~MyCurve (); + ~MyCurve () override; void setCurveListener (CurveListener* cl) { @@ -126,10 +126,10 @@ public: { curveIsDirty = true; } - void on_style_updated (); + void on_style_updated () override; virtual std::vector getPoints () = 0; virtual void setPoints (const std::vector& p) = 0; - virtual bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) = 0; + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override = 0; virtual bool handleEvents (GdkEvent* event) = 0; virtual void reset (const std::vector &resetCurve, double identityValue = 0.5) = 0; @@ -138,11 +138,11 @@ public: virtual void pipetteButton1Released(EditDataProvider *provider) = 0; virtual void pipetteDrag(EditDataProvider *provider, int modifierKey) = 0; - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; }; class MyCurveIdleHelper diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index 0bc58f28e..5eacdcc46 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -545,7 +545,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) double minDistanceY = double(MIN_DISTANCE) / double(graphH - 1); switch (event->type) { - case Gdk::BUTTON_PRESS: + case GDK_BUTTON_PRESS: snapToElmt = -100; if (curve.type != DCT_Parametric) { @@ -694,7 +694,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) break; - case Gdk::BUTTON_RELEASE: + case GDK_BUTTON_RELEASE: snapToElmt = -100; if (curve.type != DCT_Parametric && edited_point == -1) { @@ -755,7 +755,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) break; - case Gdk::LEAVE_NOTIFY: + case GDK_LEAVE_NOTIFY: // Pointer can LEAVE even when dragging the point, so we don't modify the cursor in this case // The cursor will have to LEAVE another time after the drag... @@ -772,7 +772,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) retval = true; break; - case Gdk::MOTION_NOTIFY: + case GDK_MOTION_NOTIFY: snapToElmt = -100; if (curve.type == DCT_Linear || curve.type == DCT_Spline || curve.type == DCT_NURBS) { diff --git a/rtgui/mydiagonalcurve.h b/rtgui/mydiagonalcurve.h index abb8d3dc6..9433c42b5 100644 --- a/rtgui/mydiagonalcurve.h +++ b/rtgui/mydiagonalcurve.h @@ -72,7 +72,7 @@ protected: void interpolate (); void findClosestPoint(); CursorShape motionNotify(CursorShape type, double minDistanceX, double minDistanceY, int num); - std::vector get_vector (int veclen); + std::vector get_vector (int veclen) override; void get_LUT (LUTf &lut); // Get the cursor position and unclamped position from the curve given an X value ; BEWARE: can be time consuming, use with care void getCursorPositionFromCurve(float x); @@ -82,23 +82,23 @@ protected: public: MyDiagonalCurve (); - ~MyDiagonalCurve (); - std::vector getPoints (); - void setPoints (const std::vector& p); + ~MyDiagonalCurve () override; + std::vector getPoints () override; + void setPoints (const std::vector& p) override; void setType (DiagonalCurveType t); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); - bool handleEvents (GdkEvent* event); + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; + bool handleEvents (GdkEvent* event) override; void setActiveParam (int ac); - void reset (const std::vector &resetCurve, double identityValue = 0.5); + void reset (const std::vector &resetCurve, double identityValue = 0.5) override; void updateBackgroundHistogram (LUTu & hist); - void pipetteMouseOver (CurveEditor *ce, EditDataProvider *provider, int modifierKey); - bool pipetteButton1Pressed(EditDataProvider *provider, int modifierKey); - void pipetteButton1Released(EditDataProvider *provider); - void pipetteDrag(EditDataProvider *provider, int modifierKey); + void pipetteMouseOver (CurveEditor *ce, EditDataProvider *provider, int modifierKey) override; + bool pipetteButton1Pressed(EditDataProvider *provider, int modifierKey) override; + void pipetteButton1Released(EditDataProvider *provider) override; + void pipetteDrag(EditDataProvider *provider, int modifierKey) override; - virtual void setPos(double pos, int chanIdx); - virtual void stopNumericalAdjustment(); + void setPos(double pos, int chanIdx) override; + void stopNumericalAdjustment() override; }; #endif diff --git a/rtgui/myflatcurve.cc b/rtgui/myflatcurve.cc index 70fc0c7d7..9b64ee516 100644 --- a/rtgui/myflatcurve.cc +++ b/rtgui/myflatcurve.cc @@ -613,7 +613,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) switch (event->type) { - case Gdk::BUTTON_PRESS: + case GDK_BUTTON_PRESS: if (edited_point == -1) { //curve.type!=FCT_Parametric) { if (event->button.button == 1) { buttonPressed = true; @@ -816,7 +816,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) break; - case Gdk::BUTTON_RELEASE: + case GDK_BUTTON_RELEASE: if (edited_point == -1) { //curve.type!=FCT_Parametric) { if (buttonPressed && event->button.button == 1) { buttonPressed = false; @@ -908,7 +908,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) break; - case Gdk::MOTION_NOTIFY: + case GDK_MOTION_NOTIFY: if (curve.type == FCT_Linear || curve.type == FCT_MinMaxCPoints) { int previous_lit_point = lit_point; @@ -1178,7 +1178,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) retval = true; break; - case Gdk::LEAVE_NOTIFY: + case GDK_LEAVE_NOTIFY: // Pointer can LEAVE even when dragging the point, so we don't modify the cursor in this case // The cursor will have to LEAVE another time after the drag... diff --git a/rtgui/myflatcurve.h b/rtgui/myflatcurve.h index 65a1e2230..c0223bfcf 100644 --- a/rtgui/myflatcurve.h +++ b/rtgui/myflatcurve.h @@ -112,31 +112,31 @@ protected: void getMouseOverArea (); bool getHandles(int n); CursorShape motionNotify(CursorShape type, double minDistanceX, double minDistanceY, int num); - std::vector get_vector (int veclen); + std::vector get_vector (int veclen) override; void get_LUT (LUTf &lut); public: MyFlatCurve (); //~MyFlatCurve (); - std::vector getPoints (); + std::vector getPoints () override; void setPeriodicity (bool isPeriodic) { periodic = isPeriodic; }; - void setPoints (const std::vector& p); + void setPoints (const std::vector& p) override; void setType (FlatCurveType t); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); - bool handleEvents (GdkEvent* event); - void reset (const std::vector &resetCurve, double identityValue = 0.5); + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; + bool handleEvents (GdkEvent* event) override; + void reset (const std::vector &resetCurve, double identityValue = 0.5) override; //void updateBackgroundHistogram (unsigned int* hist); - void pipetteMouseOver (CurveEditor *ce, EditDataProvider *provider, int modifierKey); - bool pipetteButton1Pressed(EditDataProvider *provider, int modifierKey); - void pipetteButton1Released(EditDataProvider *provider); - void pipetteDrag(EditDataProvider *provider, int modifierKey); + void pipetteMouseOver (CurveEditor *ce, EditDataProvider *provider, int modifierKey) override; + bool pipetteButton1Pressed(EditDataProvider *provider, int modifierKey) override; + void pipetteButton1Released(EditDataProvider *provider) override; + void pipetteDrag(EditDataProvider *provider, int modifierKey) override; - void setPos(double pos, int chanIdx); - virtual void stopNumericalAdjustment(); + void setPos(double pos, int chanIdx) override; + void stopNumericalAdjustment() override; }; #endif diff --git a/rtgui/navigator.h b/rtgui/navigator.h index e7689b7c2..1b898f895 100644 --- a/rtgui/navigator.h +++ b/rtgui/navigator.h @@ -55,12 +55,12 @@ public: // pointermotionlistener interface // void pointerMoved (bool validPos, int x, int y, int r, int g, int b); - void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool raw = false); + void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool raw = false) override; void setInvalid (int fullWidth = -1, int fullHeight = -1); - void getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB, bool isRaw = false); - void getHSVText (float h, float s, float v, Glib::ustring &sH, Glib::ustring &sS, Glib::ustring &sV); - void getLABText (float l, float a, float b, Glib::ustring &sL, Glib::ustring &sA, Glib::ustring &sB); + void getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB, bool isRaw = false) override; + void getHSVText (float h, float s, float v, Glib::ustring &sH, Glib::ustring &sS, Glib::ustring &sV) override; + void getLABText (float l, float a, float b, Glib::ustring &sL, Glib::ustring &sA, Glib::ustring &sB) override; }; diff --git a/rtgui/options.cc b/rtgui/options.cc index c690a42e3..c267c4651 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -551,16 +551,16 @@ void Options::setDefaults() rtSettings.monitorIntent = rtengine::RI_RELATIVE; rtSettings.monitorBPC = true; rtSettings.autoMonitorProfile = false; - rtSettings.adobe = "RTv4_Medium"; // put the name of yours profiles (here windows) - rtSettings.prophoto = "RTv4_Large"; // these names appear in the menu "output profile" - rtSettings.widegamut = "RTv4_Wide"; - rtSettings.srgb = "RTv4_sRGB"; - rtSettings.bruce = "RTv4_Bruce"; - rtSettings.beta = "RTv4_Beta"; - rtSettings.best = "RTv4_Best"; - rtSettings.rec2020 = "RTv4_Rec2020"; - rtSettings.ACESp0 = "RTv4_ACES-AP0"; - rtSettings.ACESp1 = "RTv4_ACES-AP1"; + rtSettings.adobe = "RTv2_Medium"; // put the name of yours profiles (here windows) + rtSettings.prophoto = "RTv2_Large"; // these names appear in the menu "output profile" + rtSettings.widegamut = "RTv2_Wide"; + rtSettings.srgb = "RTv2_sRGB"; + rtSettings.bruce = "RTv2_Bruce"; + rtSettings.beta = "RTv2_Beta"; + rtSettings.best = "RTv2_Best"; + rtSettings.rec2020 = "RTv2_Rec2020"; + rtSettings.ACESp0 = "RTv2_ACES-AP0"; + rtSettings.ACESp1 = "RTv2_ACES-AP1"; rtSettings.verbose = false; rtSettings.gamutICC = true; rtSettings.gamutLch = true; @@ -942,11 +942,17 @@ void Options::readFromFile(Glib::ustring fname) } if (keyFile.has_key("File Browser", "ParseExtensions")) { - parseExtensions = keyFile.get_string_list("File Browser", "ParseExtensions"); + auto l = keyFile.get_string_list("File Browser", "ParseExtensions"); + if (!l.empty()) { + parseExtensions = l; + } } if (keyFile.has_key("File Browser", "ParseExtensionsEnabled")) { - parseExtensionsEnabled = keyFile.get_integer_list("File Browser", "ParseExtensionsEnabled"); + auto l = keyFile.get_integer_list("File Browser", "ParseExtensionsEnabled"); + if (!l.empty()) { + parseExtensionsEnabled = l; + } } if (keyFile.has_key("File Browser", "ThumbnailArrangement")) { @@ -1442,66 +1448,74 @@ void Options::readFromFile(Glib::ustring fname) if (keyFile.has_key("Color Management", "AdobeRGB")) { rtSettings.adobe = keyFile.get_string("Color Management", "AdobeRGB"); - if (rtSettings.adobe == "RT_Medium_gsRGB") { - rtSettings.adobe = "RTv4_Medium"; + if (rtSettings.adobe == "RT_Medium_gsRGB" || rtSettings.adobe == "RTv4_Medium") { + rtSettings.adobe = "RTv2_Medium"; } } if (keyFile.has_key("Color Management", "ProPhoto")) { rtSettings.prophoto = keyFile.get_string("Color Management", "ProPhoto"); - if (rtSettings.prophoto == "RT_Large_gBT709") { - rtSettings.prophoto = "RTv4_Large"; + if (rtSettings.prophoto == "RT_Large_gBT709" || rtSettings.prophoto == "RTv4_Large") { + rtSettings.prophoto = "RTv2_Large"; } } if (keyFile.has_key("Color Management", "WideGamut")) { rtSettings.widegamut = keyFile.get_string("Color Management", "WideGamut"); - if (rtSettings.widegamut == "WideGamutRGB") { - rtSettings.widegamut = "RTv4_Wide"; + if (rtSettings.widegamut == "WideGamutRGB" || rtSettings.widegamut == "RTv4_Wide") { + rtSettings.widegamut = "RTv2_Wide"; } } if (keyFile.has_key("Color Management", "sRGB")) { rtSettings.srgb = keyFile.get_string("Color Management", "sRGB"); - if (rtSettings.srgb == "RT_sRGB") { - rtSettings.srgb = "RTv4_sRGB"; + if (rtSettings.srgb == "RT_sRGB" || rtSettings.srgb == "RTv4_sRGB") { + rtSettings.srgb = "RTv2_sRGB"; } } if (keyFile.has_key("Color Management", "Beta")) { rtSettings.beta = keyFile.get_string("Color Management", "Beta"); - if (rtSettings.beta == "BetaRGB") { - rtSettings.beta = "RTv4_Beta"; + if (rtSettings.beta == "BetaRGB" || rtSettings.beta == "RTv4_Beta") { + rtSettings.beta = "RTv2_Beta"; } } if (keyFile.has_key("Color Management", "Best")) { rtSettings.best = keyFile.get_string("Color Management", "Best"); - if (rtSettings.best == "BestRGB") { - rtSettings.best = "RTv4_Best"; + if (rtSettings.best == "BestRGB" || rtSettings.best == "RTv4_Best") { + rtSettings.best = "RTv2_Best"; } } if (keyFile.has_key("Color Management", "Rec2020")) { rtSettings.rec2020 = keyFile.get_string("Color Management", "Rec2020"); - if (rtSettings.rec2020 == "Rec2020") { - rtSettings.rec2020 = "RTv4_Rec2020"; + if (rtSettings.rec2020 == "Rec2020" || rtSettings.rec2020 == "RTv4_Rec2020") { + rtSettings.rec2020 = "RTv2_Rec2020"; } } if (keyFile.has_key("Color Management", "Bruce")) { rtSettings.bruce = keyFile.get_string("Color Management", "Bruce"); - if (rtSettings.bruce == "Bruce") { - rtSettings.bruce = "RTv4_Bruce"; + if (rtSettings.bruce == "Bruce" || rtSettings.bruce == "RTv4_Bruce") { + rtSettings.bruce = "RTv2_Bruce"; } } if (keyFile.has_key("Color Management", "ACES-AP0")) { rtSettings.ACESp0 = keyFile.get_string("Color Management", "ACES-AP0"); + if (rtSettings.ACESp0 == "RTv4_ACES-AP0") { + rtSettings.ACESp0 = "RTv2_ACES-AP0"; + } + } if (keyFile.has_key("Color Management", "ACES-AP1")) { rtSettings.ACESp1 = keyFile.get_string("Color Management", "ACES-AP1"); + if (rtSettings.ACESp1 == "RTv4_ACES-AP1") { + rtSettings.ACESp1 = "RTv2_ACES-AP1"; + } + } if (keyFile.has_key("Color Management", "GamutLch")) { diff --git a/rtgui/options.h b/rtgui/options.h index 3afeb94d9..47ced982d 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -108,8 +108,8 @@ public: class Error: public std::exception { public: - Error (const Glib::ustring &msg): msg_ (msg) {} - const char *what() const throw() + explicit Error (const Glib::ustring &msg): msg_ (msg) {} + const char *what() const throw() override { return msg_.c_str(); } diff --git a/rtgui/pcvignette.h b/rtgui/pcvignette.h index 91e876947..98d42a477 100644 --- a/rtgui/pcvignette.h +++ b/rtgui/pcvignette.h @@ -20,16 +20,16 @@ public: PCVignette (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; void setAdjusterBehavior (bool strengthadd, bool featheradd, bool roundnessadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif diff --git a/rtgui/perspective.h b/rtgui/perspective.h index a97d5d347..8038120fa 100644 --- a/rtgui/perspective.h +++ b/rtgui/perspective.h @@ -34,15 +34,15 @@ public: PerspCorrection (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; void setAdjusterBehavior (bool badd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif diff --git a/rtgui/popupbutton.h b/rtgui/popupbutton.h index 245d29aee..be08cd1ba 100644 --- a/rtgui/popupbutton.h +++ b/rtgui/popupbutton.h @@ -34,7 +34,7 @@ public: void set_sensitive (bool isSensitive=true); protected: - bool on_button_release_event (GdkEventButton* event); + bool on_button_release_event (GdkEventButton* event) override; private: bool nextOnClicked; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 06654c7cf..9141b0e3f 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -599,27 +599,25 @@ Gtk::Widget* Preferences::getImageProcessingPanel () vbImageProcessing->pack_start (*cdf, Gtk::PACK_SHRINK, 4 ); // Crop - Gtk::Frame *cropframe = Gtk::manage(new Gtk::Frame(M("PREFERENCES_CROP"))); - Gtk::VBox *cropvb = Gtk::manage(new Gtk::VBox()); - Gtk::HBox *crophb = Gtk::manage(new Gtk::HBox()); - cropGuides = Gtk::manage(new Gtk::ComboBoxText()); - cropGuides->append(M("PREFERENCES_CROP_GUIDES_NONE")); - cropGuides->append(M("PREFERENCES_CROP_GUIDES_FRAME")); - cropGuides->append(M("PREFERENCES_CROP_GUIDES_FULL")); - crophb->pack_start(*Gtk::manage(new Gtk::Label(M("PREFERENCES_CROP_GUIDES") + ": ")), Gtk::PACK_SHRINK, 4); - crophb->pack_start(*cropGuides); - cropvb->pack_start(*crophb); - Gtk::Label *cropAutoFitLabel = Gtk::manage(new Gtk::Label(M("PREFERENCES_CROP_AUTO_FIT"))); - cropAutoFitLabel->set_line_wrap(true); - setExpandAlignProperties(cropAutoFitLabel, false, false, Gtk::ALIGN_START, Gtk::ALIGN_START); - cropAutoFit = Gtk::manage(new Gtk::CheckButton()); - setExpandAlignProperties(cropAutoFit, false, true, Gtk::ALIGN_START, Gtk::ALIGN_START); - cropAutoFit->add(*cropAutoFitLabel); - cropvb->pack_start(*cropAutoFit); - cropframe->add(*cropvb); - vbImageProcessing->pack_start(*cropframe, Gtk::PACK_SHRINK, 4); + Gtk::Frame *cropFrame = Gtk::manage(new Gtk::Frame(M("PREFERENCES_CROP"))); + Gtk::Grid *cropGrid = Gtk::manage(new Gtk::Grid()); + Gtk::Label *cropGuidesLbl = Gtk::manage(new Gtk::Label(M("PREFERENCES_CROP_GUIDES") + ": ")); + cropGuidesCombo = Gtk::manage(new Gtk::ComboBoxText()); + cropGuidesCombo->append(M("PREFERENCES_CROP_GUIDES_NONE")); + cropGuidesCombo->append(M("PREFERENCES_CROP_GUIDES_FRAME")); + cropGuidesCombo->append(M("PREFERENCES_CROP_GUIDES_FULL")); + cropAutoFitCB = Gtk::manage(new Gtk::CheckButton()); + Gtk::Label *cropAutoFitLbl = Gtk::manage(new Gtk::Label(M("PREFERENCES_CROP_AUTO_FIT"))); + cropAutoFitLbl->set_line_wrap(true); + cropAutoFitCB->add(*cropAutoFitLbl); + cropGrid->attach(*cropGuidesLbl, 0, 0, 1, 1); + cropGrid->attach(*cropGuidesCombo, 1, 0, 1, 1); + cropGrid->attach(*cropAutoFitCB, 0, 1, 2, 1); + cropFrame->add(*cropGrid); + vbImageProcessing->pack_start(*cropFrame, Gtk::PACK_SHRINK, 4); swImageProcessing->add(*vbImageProcessing); + return swImageProcessing; } @@ -774,8 +772,13 @@ Gtk::Widget* Preferences::getColorManPanel () const std::vector profiles = rtengine::ICCStore::getInstance ()->getProfiles (rtengine::ICCStore::ProfileType::MONITOR); for (const auto profile : profiles) { - if (profile.find ("file:") != 0) { - monProfile->append (profile); + if (profile.find("file:") != 0) { + std::string fileis_RTv4 = profile.substr(0, 4); + + if (fileis_RTv4 != "RTv4") { + // printf("pro=%s \n", profile.c_str()); + monProfile->append(profile); + } } } @@ -989,78 +992,74 @@ Gtk::Widget* Preferences::getGeneralPanel () flang->add (*langGrid); vbGeneral->attach_next_to (*flang, *fworklflow, Gtk::POS_BOTTOM, 2, 1); - // --------------------------------------------- + // Appearance --------------------------------------------- - 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); - themeGrid->set_row_spacing (4); - setExpandAlignProperties (themeGrid, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); + Gtk::Frame* appearanceFrame = Gtk::manage(new Gtk::Frame(M("PREFERENCES_APPEARANCE"))); - Gtk::Label* themelab = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_SELECTTHEME") + ":") ); - setExpandAlignProperties (themelab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - theme = Gtk::manage ( new Gtk::ComboBoxText () ); - setExpandAlignProperties (theme, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + Gtk::Grid* appearanceGrid = Gtk::manage(new Gtk::Grid()); + appearanceGrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(appearanceGrid, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - theme->set_active (0); - parseThemeDir (Glib::build_filename (argv0, "themes")); + Gtk::Label* themeLbl = Gtk::manage(new Gtk::Label(M("PREFERENCES_APPEARANCE_THEME") + ":")); + setExpandAlignProperties(themeLbl, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + themeCBT = Gtk::manage(new Gtk::ComboBoxText()); + themeCBT->set_active(0); + parseThemeDir(Glib::build_filename(argv0, "themes")); for (size_t i = 0; i < themeFNames.size(); i++) { - theme->append (themeFNames.at (i).shortFName); + themeCBT->append(themeFNames.at(i).shortFName); } - themeGrid->attach_next_to (*themelab, Gtk::POS_LEFT, 1, 1); - themeGrid->attach_next_to (*theme, *themelab, Gtk::POS_RIGHT, 1, 1); - - Gtk::Label* fontlab = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_SELECTFONT")) ); - setExpandAlignProperties (fontlab, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - fontButton = Gtk::manage ( new Gtk::FontButton ()); - setExpandAlignProperties (fontButton, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - fontButton->set_use_size (true); + Gtk::Label* mainFontLbl = Gtk::manage(new Gtk::Label(M("PREFERENCES_APPEARANCE_MAINFONT"))); + setExpandAlignProperties(mainFontLbl, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + mainFontFB = Gtk::manage(new Gtk::FontButton()); + mainFontFB->set_use_size(true); if (options.fontFamily == "default") { - fontButton->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); + mainFontFB->set_font_name(Glib::ustring::compose("%1 %2", initialFontFamily, initialFontSize)); } else { - fontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.fontFamily, options.fontSize)); + mainFontFB->set_font_name(Glib::ustring::compose("%1 %2", options.fontFamily, options.fontSize)); } - themeGrid->attach_next_to (*fontlab, *theme, Gtk::POS_RIGHT, 1, 1); - themeGrid->attach_next_to (*fontButton, *fontlab, Gtk::POS_RIGHT, 1, 1); - - Gtk::Label* cpfontlab = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_SELECTFONT_COLPICKER") + ":") ); - setExpandAlignProperties (cpfontlab, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - colorPickerFontButton = Gtk::manage ( new Gtk::FontButton ()); - setExpandAlignProperties (fontButton, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - colorPickerFontButton->set_use_size (true); + Gtk::Label* colorPickerFontLbl = Gtk::manage(new Gtk::Label(M("PREFERENCES_APPEARANCE_COLORPICKERFONT") + ":")); + setExpandAlignProperties(colorPickerFontLbl, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + colorPickerFontFB = Gtk::manage(new Gtk::FontButton()); + colorPickerFontFB->set_use_size(true); if (options.fontFamily == "default") { - colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); + colorPickerFontFB->set_font_name(Glib::ustring::compose("%1 %2", initialFontFamily, initialFontSize)); } else { - colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.CPFontFamily, options.CPFontSize)); + colorPickerFontFB->set_font_name(Glib::ustring::compose("%1 %2", options.CPFontFamily, options.CPFontSize)); } - themeGrid->attach_next_to (*cpfontlab, *fontButton, Gtk::POS_RIGHT, 1, 1); - themeGrid->attach_next_to (*colorPickerFontButton, *cpfontlab, Gtk::POS_RIGHT, 1, 1); + Gtk::Label* cropMaskColorLbl = Gtk::manage(new Gtk::Label(M("PREFERENCES_APPEARANCE_CROPMASKCOLOR") + ":")); + setExpandAlignProperties(cropMaskColorLbl, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - Gtk::Label* cutOverlayLabel = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_CUTOVERLAYBRUSH") + ":") ); - setExpandAlignProperties (cutOverlayLabel, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - butCropCol = Gtk::manage ( new Gtk::ColorButton() ); - setExpandAlignProperties (butCropCol, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - butCropCol->set_use_alpha (true); - themeGrid->attach_next_to (*cutOverlayLabel, *themelab, Gtk::POS_BOTTOM, 1, 1); - themeGrid->attach_next_to (*butCropCol, *cutOverlayLabel, Gtk::POS_RIGHT, 1, 1); + cropMaskColorCB = Gtk::manage(new Gtk::ColorButton()); + cropMaskColorCB->set_use_alpha(true); - Gtk::Label* navGuideLabel = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_NAVGUIDEBRUSH") + ":") ); - setExpandAlignProperties (navGuideLabel, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - butNavGuideCol = Gtk::manage ( new Gtk::ColorButton() ); - setExpandAlignProperties (butNavGuideCol, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - butNavGuideCol->set_use_alpha (true); - themeGrid->attach_next_to (*navGuideLabel, *butCropCol, Gtk::POS_RIGHT, 2, 1); - themeGrid->attach_next_to (*butNavGuideCol, *navGuideLabel, Gtk::POS_RIGHT, 1, 1); + Gtk::Label* navGuideColorLbl = Gtk::manage(new Gtk::Label(M("PREFERENCES_APPEARANCE_NAVGUIDECOLOR") + ":")); + setExpandAlignProperties(navGuideColorLbl, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - ftheme->add (*themeGrid); - vbGeneral->attach_next_to (*ftheme, *flang, Gtk::POS_BOTTOM, 2, 1); + navGuideColorCB = Gtk::manage(new Gtk::ColorButton()); + navGuideColorCB->set_use_alpha(true); + + Gtk::VSeparator *vSep = Gtk::manage(new Gtk::VSeparator()); + + appearanceGrid->attach(*themeLbl, 0, 0, 1, 1); + appearanceGrid->attach(*themeCBT, 1, 0, 1, 1); + appearanceGrid->attach(*vSep, 2, 0, 1, 3); + appearanceGrid->attach(*mainFontLbl, 0, 1, 1, 1); + appearanceGrid->attach(*mainFontFB, 1, 1, 1, 1); + appearanceGrid->attach(*cropMaskColorLbl, 3, 1, 1, 1); + appearanceGrid->attach(*cropMaskColorCB, 4, 1, 1, 1); + appearanceGrid->attach(*colorPickerFontLbl, 0, 2, 1, 1); + appearanceGrid->attach(*colorPickerFontFB, 1, 2, 1, 1); + appearanceGrid->attach(*navGuideColorLbl, 3, 2, 1, 1); + appearanceGrid->attach(*navGuideColorCB, 4, 2, 1, 1); + + appearanceFrame->add(*appearanceGrid); + vbGeneral->attach_next_to(*appearanceFrame, *flang, Gtk::POS_BOTTOM, 2, 1); // --------------------------------------------- @@ -1093,7 +1092,7 @@ Gtk::Widget* Preferences::getGeneralPanel () clipGrid->attach_next_to (*shThresh, *shl, Gtk::POS_RIGHT, 1, 1); fclip->add (*clipGrid); - vbGeneral->attach_next_to (*fclip, *ftheme, Gtk::POS_BOTTOM, 1, 1); + vbGeneral->attach_next_to (*fclip, *appearanceFrame, Gtk::POS_BOTTOM, 1, 1); // --------------------------------------------- @@ -1187,9 +1186,9 @@ Gtk::Widget* Preferences::getGeneralPanel () vbGeneral->attach_next_to (*fdg, *fclip, Gtk::POS_BOTTOM, 2, 1); langAutoDetectConn = ckbLangAutoDetect->signal_toggled().connect (sigc::mem_fun (*this, &Preferences::langAutoDetectToggled)); - tconn = theme->signal_changed().connect ( sigc::mem_fun (*this, &Preferences::themeChanged) ); - fconn = fontButton->signal_font_set().connect ( sigc::mem_fun (*this, &Preferences::fontChanged) ); - cpfconn = colorPickerFontButton->signal_font_set().connect ( sigc::mem_fun (*this, &Preferences::cpFontChanged) ); + tconn = themeCBT->signal_changed().connect ( sigc::mem_fun (*this, &Preferences::themeChanged) ); + fconn = mainFontFB->signal_font_set().connect ( sigc::mem_fun (*this, &Preferences::fontChanged) ); + cpfconn = colorPickerFontFB->signal_font_set().connect ( sigc::mem_fun (*this, &Preferences::cpFontChanged) ); swGeneral->add(*vbGeneral); return swGeneral; @@ -1607,28 +1606,28 @@ void Preferences::storePreferences () moptions.shadowThreshold = (int)shThresh->get_value (); moptions.language = languages->get_active_text (); moptions.languageAutoDetect = ckbLangAutoDetect->get_active (); - moptions.theme = themeFNames.at (theme->get_active_row_number ()).longFName; + moptions.theme = themeFNames.at (themeCBT->get_active_row_number ()).longFName; - Gdk::RGBA cropCol = butCropCol->get_rgba(); + Gdk::RGBA cropCol = cropMaskColorCB->get_rgba(); moptions.cutOverlayBrush[0] = cropCol.get_red(); moptions.cutOverlayBrush[1] = cropCol.get_green(); moptions.cutOverlayBrush[2] = cropCol.get_blue(); - moptions.cutOverlayBrush[3] = butCropCol->get_alpha() / 65535.0; + moptions.cutOverlayBrush[3] = cropMaskColorCB->get_alpha() / 65535.0; - Gdk::RGBA NavGuideCol = butNavGuideCol->get_rgba(); + Gdk::RGBA NavGuideCol = navGuideColorCB->get_rgba(); moptions.navGuideBrush[0] = NavGuideCol.get_red(); moptions.navGuideBrush[1] = NavGuideCol.get_green(); moptions.navGuideBrush[2] = NavGuideCol.get_blue(); - moptions.navGuideBrush[3] = butNavGuideCol->get_alpha() / 65535.0; + moptions.navGuideBrush[3] = navGuideColorCB->get_alpha() / 65535.0; - Pango::FontDescription fd (fontButton->get_font_name()); + Pango::FontDescription fd (mainFontFB->get_font_name()); if (newFont) { moptions.fontFamily = fd.get_family(); moptions.fontSize = fd.get_size() / Pango::SCALE; } - Pango::FontDescription cpfd (colorPickerFontButton->get_font_name()); + Pango::FontDescription cpfd (colorPickerFontFB->get_font_name()); if (newCPFont) { moptions.CPFontFamily = cpfd.get_family(); @@ -1793,8 +1792,8 @@ void Preferences::storePreferences () moptions.sndLngEditProcDoneSecs = spbSndLngEditProcDoneSecs->get_value (); #endif - moptions.cropGuides = Options::CropGuidesMode(cropGuides->get_active_row_number()); - moptions.cropAutoFit = cropAutoFit->get_active(); + moptions.cropGuides = Options::CropGuidesMode(cropGuidesCombo->get_active_row_number()); + moptions.cropAutoFit = cropAutoFitCB->get_active(); } void Preferences::fillPreferences () @@ -1869,28 +1868,28 @@ void Preferences::fillPreferences () languages->set_active_text (moptions.language); ckbLangAutoDetect->set_active (moptions.languageAutoDetect); int themeNbr = getThemeRowNumber (moptions.theme); - theme->set_active (themeNbr == -1 ? 0 : themeNbr); + themeCBT->set_active (themeNbr == -1 ? 0 : themeNbr); Gdk::RGBA cropCol; cropCol.set_rgba (moptions.cutOverlayBrush[0], moptions.cutOverlayBrush[1], moptions.cutOverlayBrush[2]); - butCropCol->set_rgba (cropCol); - butCropCol->set_alpha ( (unsigned short) (moptions.cutOverlayBrush[3] * 65535.0)); + cropMaskColorCB->set_rgba (cropCol); + cropMaskColorCB->set_alpha ( (unsigned short) (moptions.cutOverlayBrush[3] * 65535.0)); Gdk::RGBA NavGuideCol; NavGuideCol.set_rgba (moptions.navGuideBrush[0], moptions.navGuideBrush[1], moptions.navGuideBrush[2]); - butNavGuideCol->set_rgba (NavGuideCol); - butNavGuideCol->set_alpha ( (unsigned short) (moptions.navGuideBrush[3] * 65535.0)); + navGuideColorCB->set_rgba (NavGuideCol); + navGuideColorCB->set_alpha ( (unsigned short) (moptions.navGuideBrush[3] * 65535.0)); if (options.fontFamily == "default") { - fontButton->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); + mainFontFB->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); } else { - fontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.fontFamily, options.fontSize)); + mainFontFB->set_font_name (Glib::ustring::compose ("%1 %2", options.fontFamily, options.fontSize)); } if (options.CPFontFamily == "default") { - colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); + colorPickerFontFB->set_font_name (Glib::ustring::compose ("%1 %2", initialFontFamily, initialFontSize)); } else { - colorPickerFontButton->set_font_name (Glib::ustring::compose ("%1 %2", options.CPFontFamily, options.CPFontSize)); + colorPickerFontFB->set_font_name (Glib::ustring::compose ("%1 %2", options.CPFontFamily, options.CPFontSize)); } showDateTime->set_active (moptions.fbShowDateTime); @@ -2010,8 +2009,8 @@ void Preferences::fillPreferences () } } - cropGuides->set_active(moptions.cropGuides); - cropAutoFit->set_active(moptions.cropAutoFit); + cropGuidesCombo->set_active(moptions.cropGuides); + cropAutoFitCB->set_active(moptions.cropAutoFit); addc.block (false); setc.block (false); @@ -2096,14 +2095,14 @@ void Preferences::okPressed () void Preferences::cancelPressed () { // set the initial theme back - if (themeFNames.at (theme->get_active_row_number ()).longFName != options.theme) { + if (themeFNames.at (themeCBT->get_active_row_number ()).longFName != options.theme) { rtengine::setPaths(); RTImage::updateImages(); switchThemeTo (options.theme); } // set the initial font back - Pango::FontDescription fd (fontButton->get_font_name()); + Pango::FontDescription fd (mainFontFB->get_font_name()); if (fd.get_family() != options.fontFamily && (fd.get_size() / Pango::SCALE) != options.fontSize) { if (options.fontFamily == "default") { @@ -2154,7 +2153,7 @@ void Preferences::aboutPressed () void Preferences::themeChanged () { - moptions.theme = themeFNames.at (theme->get_active_row_number ()).longFName; + moptions.theme = themeFNames.at (themeCBT->get_active_row_number ()).longFName; rtengine::setPaths(); RTImage::updateImages(); switchThemeTo (moptions.theme); @@ -2310,7 +2309,7 @@ void Preferences::fontChanged () { newFont = true; - Pango::FontDescription fd (fontButton->get_font_name()); + Pango::FontDescription fd (mainFontFB->get_font_name()); switchFontTo (fd.get_family(), fd.get_size() / Pango::SCALE); } diff --git a/rtgui/preferences.h b/rtgui/preferences.h index 6019604e5..3b78c0472 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -140,11 +140,11 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener Gtk::CheckButton* ctiffserialize; Gtk::ComboBoxText* curveBBoxPosC; - Gtk::ComboBoxText* theme; - Gtk::FontButton* fontButton; - Gtk::FontButton* colorPickerFontButton; - Gtk::ColorButton* butCropCol; - Gtk::ColorButton* butNavGuideCol; + Gtk::ComboBoxText* themeCBT; + Gtk::FontButton* mainFontFB; + Gtk::FontButton* colorPickerFontFB; + Gtk::ColorButton* cropMaskColorCB; + Gtk::ColorButton* navGuideColorCB; Gtk::SpinButton* maxRecentFolders; Gtk::SpinButton* maxThumbHeightSB; @@ -200,8 +200,8 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener DynamicProfilePanel *dynProfilePanel; - Gtk::ComboBoxText *cropGuides; - Gtk::CheckButton *cropAutoFit; + Gtk::ComboBoxText *cropGuidesCombo; + Gtk::CheckButton *cropAutoFitCB; Glib::ustring storedValueRaw; Glib::ustring storedValueImg; @@ -258,7 +258,7 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener public: explicit Preferences (RTWindow *rtwindow); - ~Preferences (); + ~Preferences () override; void savePressed (); void loadPressed (); @@ -288,9 +288,9 @@ public: void behAddAllPressed (); void behSetAllPressed (); - virtual void storeCurrentValue(); - virtual void updateProfileList(); - virtual void restoreValue(); + void storeCurrentValue() override; + void updateProfileList() override; + void restoreValue() override; // void selectICCProfileDir (); // void selectMonitorProfile (); diff --git a/rtgui/preprocess.h b/rtgui/preprocess.h index 64ed110fb..58cc2c2de 100644 --- a/rtgui/preprocess.h +++ b/rtgui/preprocess.h @@ -40,15 +40,15 @@ public: PreProcess (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; //void setBatchMode (bool batchMode); //void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited=NULL); void hotPixelChanged(); void deadPixelChanged(); - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; //void adjusterChanged (Adjuster* a, double newval); diff --git a/rtgui/previewhandler.h b/rtgui/previewhandler.h index 7fae4121e..81a68e05c 100644 --- a/rtgui/previewhandler.h +++ b/rtgui/previewhandler.h @@ -64,7 +64,7 @@ protected: public: PreviewHandler (); - virtual ~PreviewHandler (); + ~PreviewHandler () override; void addPreviewImageListener (PreviewListener* l) { @@ -72,9 +72,9 @@ public: } // previewimagelistener - void setImage(rtengine::IImage8* img, double scale, const rtengine::procparams::CropParams& cp); - void delImage(rtengine::IImage8* img); - void imageReady(const rtengine::procparams::CropParams& cp); + void setImage(rtengine::IImage8* img, double scale, const rtengine::procparams::CropParams& cp) override; + void delImage(rtengine::IImage8* img) override; + void imageReady(const rtengine::procparams::CropParams& cp) override; // this function is called when a new preview image arrives from rtengine void previewImageChanged (); diff --git a/rtgui/previewloader.cc b/rtgui/previewloader.cc index 0c0ecf9f6..f4cfe2b1b 100644 --- a/rtgui/previewloader.cc +++ b/rtgui/previewloader.cc @@ -168,6 +168,10 @@ PreviewLoader::PreviewLoader(): { } +PreviewLoader::~PreviewLoader() { + delete impl_; +} + PreviewLoader* PreviewLoader::getInstance() { static PreviewLoader instance_; diff --git a/rtgui/previewloader.h b/rtgui/previewloader.h index 77091bcd3..311d9d5ce 100644 --- a/rtgui/previewloader.h +++ b/rtgui/previewloader.h @@ -82,6 +82,7 @@ public: private: PreviewLoader(); + ~PreviewLoader(); class Impl; Impl* impl_; diff --git a/rtgui/previewmodepanel.h b/rtgui/previewmodepanel.h index 1d7b99625..4924b77af 100644 --- a/rtgui/previewmodepanel.h +++ b/rtgui/previewmodepanel.h @@ -47,7 +47,7 @@ protected: public: explicit PreviewModePanel (ImageArea* ia); - ~PreviewModePanel(); + ~PreviewModePanel() override; void toggleR (); void toggleG (); diff --git a/rtgui/previewwindow.h b/rtgui/previewwindow.h index ba9d8f633..c89c89d4e 100644 --- a/rtgui/previewwindow.h +++ b/rtgui/previewwindow.h @@ -50,26 +50,26 @@ public: void setPreviewHandler (PreviewHandler* ph); void setImageArea (ImageArea* ia); - void on_realize (); + void on_realize () override; void on_resized (Gtk::Allocation& req); - bool on_draw (const ::Cairo::RefPtr< Cairo::Context> &cr); - bool on_motion_notify_event (GdkEventMotion* event); - bool on_button_press_event (GdkEventButton* event); - bool on_button_release_event(GdkEventButton* event); - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + bool on_draw (const ::Cairo::RefPtr< Cairo::Context> &cr) override; + bool on_motion_notify_event (GdkEventMotion* event) override; + bool on_button_press_event (GdkEventButton* event) override; + bool on_button_release_event(GdkEventButton* event) override; + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; // PreviewListener interface - void previewImageChanged (); + void previewImageChanged () override; // CropWindowListener interface - void cropPositionChanged(CropWindow* w); - void cropWindowSizeChanged(CropWindow* w); - void cropZoomChanged(CropWindow* w); - void initialImageArrived(); + void cropPositionChanged(CropWindow* w) override; + void cropWindowSizeChanged(CropWindow* w) override; + void cropZoomChanged(CropWindow* w) override; + void initialImageArrived() override; }; #endif diff --git a/rtgui/profilepanel.h b/rtgui/profilepanel.h index 509800aaa..b0fb42ab7 100644 --- a/rtgui/profilepanel.h +++ b/rtgui/profilepanel.h @@ -72,7 +72,7 @@ protected: public: explicit ProfilePanel (); - virtual ~ProfilePanel (); + ~ProfilePanel () override; void setProfileChangeListener (ProfileChangeListener* ppl) { @@ -81,9 +81,9 @@ public: static void init (Gtk::Window* parentWindow); static void cleanup (); - void storeCurrentValue(); - void updateProfileList (); - void restoreValue(); + void storeCurrentValue() override; + void updateProfileList () override; + void restoreValue() override; void initProfile (const Glib::ustring& profileFullPath, rtengine::procparams::ProcParams* lastSaved); void setInitialFileName (const Glib::ustring& filename); @@ -94,8 +94,8 @@ public: const rtengine::ProcEvent& ev, const Glib::ustring& descr, const ParamsEdited* paramsEdited = nullptr - ); - void clearParamChanges(); + ) override; + void clearParamChanges() override; // gui callbacks void save_clicked (GdkEventButton* event); diff --git a/rtgui/profilestorecombobox.cc b/rtgui/profilestorecombobox.cc index 186309aa3..b4e893c1d 100644 --- a/rtgui/profilestorecombobox.cc +++ b/rtgui/profilestorecombobox.cc @@ -337,7 +337,7 @@ Gtk::TreeIter ProfileStoreComboBox::getRowFromLabel (Glib::ustring name) const ProfileStoreEntry *pse = currRow[methodColumns.profileStoreEntry]; if (pse->label == name) { - return currRow; + return std::move(currRow); } } } diff --git a/rtgui/progressconnector.h b/rtgui/progressconnector.h index 12a2bf82f..394ad3909 100644 --- a/rtgui/progressconnector.h +++ b/rtgui/progressconnector.h @@ -36,12 +36,12 @@ public: } // ProgressListener interface - void setProgress(double p) + void setProgress(double p) override { GThreadLock lock; pl->setProgress(p); } - void setProgressStr(const Glib::ustring& str) + void setProgressStr(const Glib::ustring& str) override { GThreadLock lock; Glib::ustring progrstr; @@ -49,13 +49,13 @@ public: pl->setProgressStr(progrstr); } - void setProgressState(bool inProcessing) + void setProgressState(bool inProcessing) override { GThreadLock lock; pl->setProgressState(inProcessing); } - void error(const Glib::ustring& descr) + void error(const Glib::ustring& descr) override { GThreadLock lock; pl->error(descr); diff --git a/rtgui/prsharpening.h b/rtgui/prsharpening.h index 8b2c02e25..0bceca856 100644 --- a/rtgui/prsharpening.h +++ b/rtgui/prsharpening.h @@ -57,28 +57,28 @@ protected: public: PrSharpening (); - virtual ~PrSharpening (); + ~PrSharpening () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; void edgesonly_toggled (); void halocontrol_toggled (); void method_changed (); - void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop); - void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight); - void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop); - void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight); - void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR); + void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) override; + void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) override; + void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) override; void setAdjusterBehavior (bool contrastadd, bool radiusadd, bool amountadd, bool dampingadd, bool iteradd, bool edgetoladd, bool haloctrladd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif diff --git a/rtgui/rawcacorrection.h b/rtgui/rawcacorrection.h index 3bb511885..13db1d1e3 100644 --- a/rtgui/rawcacorrection.h +++ b/rtgui/rawcacorrection.h @@ -42,16 +42,16 @@ public: RAWCACorr (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void setAdjusterBehavior (bool caadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); - void checkBoxToggled (CheckBox* c, CheckValue newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; + void checkBoxToggled (CheckBox* c, CheckValue newval) override; }; #endif diff --git a/rtgui/rawexposure.h b/rtgui/rawexposure.h index 6153ae98b..a04d0e3db 100644 --- a/rtgui/rawexposure.h +++ b/rtgui/rawexposure.h @@ -37,14 +37,14 @@ public: RAWExposure (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool pexposadd, bool pexpreseradd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif diff --git a/rtgui/resize.h b/rtgui/resize.h index e403e5d6f..3c599808d 100644 --- a/rtgui/resize.h +++ b/rtgui/resize.h @@ -33,20 +33,20 @@ class Resize final : { public: Resize (); - ~Resize (); + ~Resize () override; Gtk::Box* getPackBox () { return packBox; } - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; void entryWChanged (); void entryHChanged (); void appliesToChanged (); @@ -54,12 +54,12 @@ public: void specChanged (); void update (bool isCropped, int cw, int ch, int ow = 0, int oh = 0); void setGUIFromCrop (bool isCropped, int cw, int ch); - void sizeChanged (int w, int h, int ow, int oh); + void sizeChanged (int w, int h, int ow, int oh) override; void setDimensions (); - void enabledChanged (); + void enabledChanged () override; void setAdjusterBehavior (bool scaleadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; private: void fitBoxScale (); diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc index 08883708e..a271efc0a 100644 --- a/rtgui/retinex.cc +++ b/rtgui/retinex.cc @@ -11,7 +11,6 @@ using namespace rtengine::procparams; Retinex::Retinex () : FoldableToolPanel (this, "retinex", M ("TP_RETINEX_LABEL"), false, true), lastmedianmap (false) { CurveListener::setMulti (true); - std::vector defaultCurve; std::vector milestones; nextmin = 0.; nextmax = 0.; diff --git a/rtgui/retinex.h b/rtgui/retinex.h index e0d0d7695..b9ed3c927 100644 --- a/rtgui/retinex.h +++ b/rtgui/retinex.h @@ -96,25 +96,25 @@ protected: public: Retinex (); - ~Retinex (); + ~Retinex () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void trimValues (rtengine::procparams::ProcParams* pp); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); - void autoOpenCurve (); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void trimValues (rtengine::procparams::ProcParams* pp) override; + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; + void autoOpenCurve () override; void medianmapChanged (); - void minmaxChanged (double cdma, double cdmin, double mini, double maxi, double Tmean, double Tsigma, double Tmin, double Tmax); + void minmaxChanged (double cdma, double cdmin, double mini, double maxi, double Tmean, double Tsigma, double Tmin, double Tmax) override; bool minmaxComputed_ (); void updateLabel (); void updateTrans (); void neutral_pressed (); - void enabledChanged (); - void curveChanged (CurveEditor* ce); + void enabledChanged () override; + void curveChanged (CurveEditor* ce) override; void retinexMethodChanged(); void mapMethodChanged(); void viewMethodChanged(); @@ -137,7 +137,7 @@ public: const LUTu& histLRETI ); - virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller); + void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; private: void foldAllButMe (GdkEventButton* event, MyExpander *expander); diff --git a/rtgui/rgbcurves.h b/rtgui/rgbcurves.h index 2bb24a10f..a7846f9ab 100644 --- a/rtgui/rgbcurves.h +++ b/rtgui/rgbcurves.h @@ -42,15 +42,15 @@ protected: public: RGBCurves (); - ~RGBCurves (); + ~RGBCurves () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void setEditProvider (EditDataProvider *provider); - void autoOpenCurve (); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void setEditProvider (EditDataProvider *provider) override; + void autoOpenCurve () override; - void curveChanged (CurveEditor* ce); + void curveChanged (CurveEditor* ce) override; void updateCurveBackgroundHistogram( const LUTu& histToneCurve, const LUTu& histLCurve, @@ -64,7 +64,7 @@ public: const LUTu& histLRETI ); void lumamodeChanged (); - void enabledChanged(); + void enabledChanged() override; }; #endif diff --git a/rtgui/rotate.h b/rtgui/rotate.h index 5361cd80e..c23807361 100644 --- a/rtgui/rotate.h +++ b/rtgui/rotate.h @@ -36,17 +36,17 @@ public: Rotate (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; void straighten (double deg); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool rotadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; void selectStraightPressed (); void setLensGeomListener (LensGeomListener* l) { diff --git a/rtgui/rtwindow.h b/rtgui/rtwindow.h index 61b961b64..5b58ab0eb 100644 --- a/rtgui/rtwindow.h +++ b/rtgui/rtwindow.h @@ -68,7 +68,7 @@ private: public: RTWindow (); - ~RTWindow(); + ~RTWindow() override; #if defined(__APPLE__) bool osxFileOpenEvent (Glib::ustring path); @@ -81,20 +81,20 @@ public: void addBatchQueueJobs (const std::vector& entries); bool keyPressed (GdkEventKey* event); - bool on_configure_event (GdkEventConfigure* event); - bool on_delete_event (GdkEventAny* event); - bool on_window_state_event (GdkEventWindowState* event); + bool on_configure_event (GdkEventConfigure* event) override; + bool on_delete_event (GdkEventAny* event) override; + bool on_window_state_event (GdkEventWindowState* event) override; void on_mainNB_switch_page (Gtk::Widget* widget, guint page_num); void showICCProfileCreator (); void showPreferences (); - void on_realize (); + void on_realize () override; void toggle_fullscreen (); - void setProgress(double p); - void setProgressStr(const Glib::ustring& str); - void setProgressState(bool inProcessing); - void error(const Glib::ustring& descr); + void setProgress(double p) override; + void setProgressStr(const Glib::ustring& str) override; + void setProgressState(bool inProcessing) override; + void error(const Glib::ustring& descr) override; rtengine::ProgressListener* getProgressListener () { diff --git a/rtgui/saveformatpanel.h b/rtgui/saveformatpanel.h index e6560d73d..48fa97e13 100644 --- a/rtgui/saveformatpanel.h +++ b/rtgui/saveformatpanel.h @@ -49,7 +49,7 @@ protected: public: SaveFormatPanel (); - ~SaveFormatPanel (); + ~SaveFormatPanel () override; void setListener (FormatChangeListener* l) { listener = l; @@ -59,8 +59,8 @@ public: SaveFormat getFormat (); void formatChanged (); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; }; #endif diff --git a/rtgui/shadowshighlights.h b/rtgui/shadowshighlights.h index 4b6daa9dc..e04e2000a 100644 --- a/rtgui/shadowshighlights.h +++ b/rtgui/shadowshighlights.h @@ -40,17 +40,17 @@ public: ShadowsHighlights (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; void setAdjusterBehavior (bool hadd, bool sadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; void colorspaceChanged(); }; diff --git a/rtgui/sharpenedge.h b/rtgui/sharpenedge.h index 82f796cb5..8bf5647ed 100644 --- a/rtgui/sharpenedge.h +++ b/rtgui/sharpenedge.h @@ -44,16 +44,16 @@ public: SharpenEdge (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void trimValues (rtengine::procparams::ProcParams* pp); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void trimValues (rtengine::procparams::ProcParams* pp) override; void setAdjusterBehavior (bool amountadd, bool passadd); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; - void enabledChanged (); + void enabledChanged () override; void chanthree_toggled (); }; diff --git a/rtgui/sharpening.h b/rtgui/sharpening.h index ed22357fa..fa5c956da 100644 --- a/rtgui/sharpening.h +++ b/rtgui/sharpening.h @@ -58,28 +58,28 @@ protected: public: Sharpening (); - virtual ~Sharpening (); + ~Sharpening () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged () override; void edgesonly_toggled (); void halocontrol_toggled (); void method_changed (); - void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop); - void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight); - void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop); - void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight); - void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR); + void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) override; + void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) override; + void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) override; void setAdjusterBehavior (bool contrastadd, bool radiusadd, bool amountadd, bool dampingadd, bool iteradd, bool edgetoladd, bool haloctrladd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif diff --git a/rtgui/sharpenmicro.h b/rtgui/sharpenmicro.h index 19c962841..6dfccea85 100644 --- a/rtgui/sharpenmicro.h +++ b/rtgui/sharpenmicro.h @@ -47,16 +47,16 @@ public: SharpenMicro (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void trimValues (rtengine::procparams::ProcParams* pp); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void trimValues (rtengine::procparams::ProcParams* pp) override; void setAdjusterBehavior (bool amountadd, bool contrastadd, bool uniformityadd); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; - void enabledChanged (); + void enabledChanged () override; void matrix_toggled (); diff --git a/rtgui/shcselector.h b/rtgui/shcselector.h index 5e02342d5..ac6c8afed 100644 --- a/rtgui/shcselector.h +++ b/rtgui/shcselector.h @@ -51,16 +51,16 @@ protected: SHCListener* cl; - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; - void on_realize(); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); - bool on_button_press_event (GdkEventButton* event); - bool on_button_release_event (GdkEventButton* event); - bool on_motion_notify_event (GdkEventMotion* event); + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; + void on_realize() override; + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; + bool on_button_press_event (GdkEventButton* event) override; + bool on_button_release_event (GdkEventButton* event) override; + bool on_motion_notify_event (GdkEventMotion* event) override; void updateBackBuffer(); public: diff --git a/rtgui/softlight.h b/rtgui/softlight.h index ad537894e..a036592e4 100644 --- a/rtgui/softlight.h +++ b/rtgui/softlight.h @@ -35,14 +35,14 @@ public: SoftLight(); - void read(const rtengine::procparams::ProcParams *pp, const ParamsEdited *pedited=nullptr); - void write(rtengine::procparams::ProcParams *pp, ParamsEdited *pedited=nullptr); - void setDefaults(const rtengine::procparams::ProcParams *defParams, const ParamsEdited *pedited=nullptr); - void setBatchMode(bool batchMode); + void read(const rtengine::procparams::ProcParams *pp, const ParamsEdited *pedited=nullptr) override; + void write(rtengine::procparams::ProcParams *pp, ParamsEdited *pedited=nullptr) override; + void setDefaults(const rtengine::procparams::ProcParams *defParams, const ParamsEdited *pedited=nullptr) override; + void setBatchMode(bool batchMode) override; - void adjusterChanged(Adjuster *a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged(); + void adjusterChanged(Adjuster *a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void enabledChanged() override; void setAdjusterBehavior(bool strengthAdd); }; diff --git a/rtgui/splash.h b/rtgui/splash.h index cffdb92e1..00e9f556e 100644 --- a/rtgui/splash.h +++ b/rtgui/splash.h @@ -30,12 +30,12 @@ private: public: SplashImage (); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; }; //class Splash : public Gtk::Window { diff --git a/rtgui/thresholdadjuster.h b/rtgui/thresholdadjuster.h index fea4e9094..54026a183 100644 --- a/rtgui/thresholdadjuster.h +++ b/rtgui/thresholdadjuster.h @@ -91,7 +91,7 @@ public: double defTopLeft, double defBottomRight, double defTopRight, unsigned int precision, bool startAtOne, bool editedCheckBox = false); - virtual ~ThresholdAdjuster (); + ~ThresholdAdjuster () override; void setAdjusterListener (ThresholdAdjusterListener* alistener) { adjusterListener = alistener; diff --git a/rtgui/thresholdselector.h b/rtgui/thresholdselector.h index 32b423e64..0b0f46d5f 100644 --- a/rtgui/thresholdselector.h +++ b/rtgui/thresholdselector.h @@ -111,17 +111,17 @@ protected: void updateTooltip(); void updateBackBuffer(); - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; - void on_realize (); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); - bool on_button_press_event (GdkEventButton* event); - bool on_button_release_event (GdkEventButton* event); - bool on_motion_notify_event (GdkEventMotion* event); - bool on_leave_notify_event (GdkEventCrossing* event); + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; + void on_realize () override; + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; + bool on_button_press_event (GdkEventButton* event) override; + bool on_button_release_event (GdkEventButton* event) override; + bool on_motion_notify_event (GdkEventMotion* event) override; + bool on_leave_notify_event (GdkEventCrossing* event) override; public: diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 150b8492f..1280fb6c3 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -76,6 +76,10 @@ void ThumbBrowserBase::scroll (int direction, double deltaX, double deltaY) } else { delta = deltaY; } + if (direction == GDK_SCROLL_SMOOTH && delta == 0.0) { + // sometimes this case happens. To avoid scrolling the wrong direction in this case, we just do nothing + return; + } double coef = direction == GDK_SCROLL_DOWN || (direction == GDK_SCROLL_SMOOTH && delta > 0.0) ? +1.0 : -1.0; // GUI already acquired when here @@ -166,33 +170,37 @@ void ThumbBrowserBase::selectSingle (ThumbBrowserEntryBase* clicked) void ThumbBrowserBase::selectRange (ThumbBrowserEntryBase* clicked, bool additional) { - if (selected.empty ()) { - addToSelection (clicked, selected); + if (selected.empty()) { + addToSelection(clicked, selected); return; } if (!additional || !lastClicked) { // Extend the current range w.r.t to first selected entry. - ThumbIterator front = std::find (fd.begin (), fd.end (), selected.front ()); - ThumbIterator current = std::find (fd.begin (), fd.end (), clicked); + ThumbIterator front = std::find(fd.begin(), fd.end(), selected.front()); + ThumbIterator current = std::find(fd.begin(), fd.end(), clicked); - if (front > current) - std::swap (front, current); + if (front > current) { + std::swap(front, current); + } - clearSelection (selected); + clearSelection(selected); - for (; front <= current; ++front) - addToSelection (*front, selected); + for (; front <= current && front != fd.end(); ++front) { + addToSelection(*front, selected); + } } else { // Add an additional range w.r.t. the last clicked entry. - ThumbIterator last = std::find (fd.begin (), fd.end (), lastClicked); - ThumbIterator current = std::find (fd.begin (), fd.end (), clicked); + ThumbIterator last = std::find(fd.begin(), fd.end(), lastClicked); + ThumbIterator current = std::find (fd.begin(), fd.end(), clicked); - if (last > current) - std::swap (last, current); + if (last > current) { + std::swap(last, current); + } - for (; last <= current; ++last) - addToSelection (*last, selected); + for (; last <= current && last != fd.end(); ++last) { + addToSelection(*last, selected); + } } } @@ -337,7 +345,7 @@ void ThumbBrowserBase::selectNext (int distance, bool enlarge) std::swap(front, back); } - for (; front <= back; ++front) { + for (; front <= back && front != fd.end(); ++front) { if (!(*front)->filtered) { (*front)->selected = true; redrawNeeded (*front); diff --git a/rtgui/thumbbrowserbase.h b/rtgui/thumbbrowserbase.h index e00d014e7..dcda30f92 100644 --- a/rtgui/thumbbrowserbase.h +++ b/rtgui/thumbbrowserbase.h @@ -49,22 +49,22 @@ class ThumbBrowserBase : public Gtk::Grid public: Internal (); void setParent (ThumbBrowserBase* p); - void on_realize(); - void on_style_updated(); - bool on_configure_event(GdkEventConfigure *configure_event); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); + void on_realize() override; + void on_style_updated() override; + bool on_configure_event(GdkEventConfigure *configure_event) override; + bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; - Gtk::SizeRequestMode get_request_mode_vfunc () const; - void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; + Gtk::SizeRequestMode get_request_mode_vfunc () const override; + void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const override; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; - bool on_button_press_event (GdkEventButton* event); - bool on_button_release_event (GdkEventButton* event); - bool on_motion_notify_event (GdkEventMotion* event); - bool on_scroll_event (GdkEventScroll* event); - bool on_key_press_event (GdkEventKey* event); + bool on_button_press_event (GdkEventButton* event) override; + bool on_button_release_event (GdkEventButton* event) override; + bool on_motion_notify_event (GdkEventMotion* event) override; + bool on_scroll_event (GdkEventScroll* event) override; + bool on_key_press_event (GdkEventKey* event) override; bool on_query_tooltip (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip); void setPosition (int x, int y); @@ -200,7 +200,7 @@ public: { return fd; } - void on_style_updated (); + void on_style_updated () override; void redraw (); // arrange files and draw area void refreshThumbImages (); // refresh thumbnail sizes, re-generate thumbnail images, arrange and draw void refreshQuickThumbImages (); // refresh thumbnail sizes, re-generate thumbnail images, arrange and draw diff --git a/rtgui/thumbimageupdater.cc b/rtgui/thumbimageupdater.cc index 992b38812..f7caf5f5e 100644 --- a/rtgui/thumbimageupdater.cc +++ b/rtgui/thumbimageupdater.cc @@ -183,6 +183,10 @@ ThumbImageUpdater::ThumbImageUpdater(): { } +ThumbImageUpdater::~ThumbImageUpdater() { + delete impl_; +} + void ThumbImageUpdater::add(ThumbBrowserEntryBase* tbe, bool* priority, bool upgrade, ThumbImageUpdateListener* l) { // nobody listening? diff --git a/rtgui/thumbimageupdater.h b/rtgui/thumbimageupdater.h index 820ddca8f..a3be44d7c 100644 --- a/rtgui/thumbimageupdater.h +++ b/rtgui/thumbimageupdater.h @@ -89,6 +89,7 @@ public: private: ThumbImageUpdater(); + ~ThumbImageUpdater(); class Impl; Impl* impl_; diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index 4b5b21dcc..4d744edcb 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -618,6 +618,11 @@ void Thumbnail::getFinalSize (const rtengine::procparams::ProcParams& pparams, i } } +void Thumbnail::getOriginalSize (int& w, int& h) +{ + w = tw; + h = th; +} rtengine::IImage8* Thumbnail::processThumbImage (const rtengine::procparams::ProcParams& pparams, int h, double& scale) { diff --git a/rtgui/thumbnail.h b/rtgui/thumbnail.h index ae627c22f..28762e505 100644 --- a/rtgui/thumbnail.h +++ b/rtgui/thumbnail.h @@ -114,6 +114,7 @@ public: rtengine::IImage8* upgradeThumbImage (const rtengine::procparams::ProcParams& pparams, int h, double& scale); void getThumbnailSize (int &w, int &h, const rtengine::procparams::ProcParams *pparams = nullptr); void getFinalSize (const rtengine::procparams::ProcParams& pparams, int& w, int& h); + void getOriginalSize (int& w, int& h); const Glib::ustring& getExifString () const; const Glib::ustring& getDateTimeString () const; diff --git a/rtgui/tonecurve.h b/rtgui/tonecurve.h index 53ec2fa9f..d95049d1c 100644 --- a/rtgui/tonecurve.h +++ b/rtgui/tonecurve.h @@ -88,21 +88,21 @@ protected: public: ToneCurve (); - ~ToneCurve (); + ~ToneCurve () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; void setAdjusterBehavior (bool expadd, bool hlcompadd, bool hlcompthreshadd, bool bradd, bool blackadd, bool shcompadd, bool contradd, bool satadd); - void trimValues (rtengine::procparams::ProcParams* pp); - void autoOpenCurve (); - void setEditProvider (EditDataProvider *provider); + void trimValues (rtengine::procparams::ProcParams* pp) override; + void autoOpenCurve () override; + void setEditProvider (EditDataProvider *provider) override; - virtual float blendPipetteValues (CurveEditor *ce, float chan1, float chan2, float chan3); + float blendPipetteValues (CurveEditor *ce, float chan1, float chan2, float chan3) override; - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; void neutral_pressed (); void autolevels_toggled (); void clip_changed (); @@ -110,7 +110,7 @@ public: void waitForAutoExp (); bool autoExpComputed_ (); void enableAll (); - void curveChanged (CurveEditor* ce); + void curveChanged (CurveEditor* ce) override; void curveMode1Changed (); bool curveMode1Changed_ (); void curveMode2Changed (); @@ -133,8 +133,8 @@ public: void histmatchingToggled(); bool histmatchingComputed(); - void autoExpChanged(double expcomp, int bright, int contr, int black, int hlcompr, int hlcomprthresh, bool hlrecons); - void autoMatchedToneCurveChanged(rtengine::procparams::ToneCurveParams::TcMode curveMode, const std::vector& curve); + void autoExpChanged(double expcomp, int bright, int contr, int black, int hlcompr, int hlcomprthresh, bool hlrecons) override; + void autoMatchedToneCurveChanged(rtengine::procparams::ToneCurveParams::TcMode curveMode, const std::vector& curve) override; void setRaw (bool raw); diff --git a/rtgui/toolpanel.h b/rtgui/toolpanel.h index 9f2d031c0..39abd03fa 100644 --- a/rtgui/toolpanel.h +++ b/rtgui/toolpanel.h @@ -148,11 +148,11 @@ public: FoldableToolPanel(Gtk::Box* content, Glib::ustring toolName, Glib::ustring UILabel, bool need11 = false, bool useEnabled = false); - MyExpander* getExpander() + MyExpander* getExpander() override { return exp; } - void setExpanded (bool expanded) + void setExpanded (bool expanded) override { if (exp) { exp->set_expanded( expanded ); @@ -170,7 +170,7 @@ public: exp->show(); } } - bool getExpanded () + bool getExpanded () override { if (exp) { return exp->get_expanded(); @@ -178,11 +178,11 @@ public: return false; } - void setParent (Gtk::Box* parent) + void setParent (Gtk::Box* parent) override { parentContainer = parent; } - Gtk::Box* getParent () + Gtk::Box* getParent () override { return parentContainer; } diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index 041386771..437e4055a 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -200,7 +200,7 @@ public: Gtk::Notebook* toolPanelNotebook; ToolPanelCoordinator (bool batch = false); - virtual ~ToolPanelCoordinator (); + ~ToolPanelCoordinator () override; bool getChangedState () { @@ -227,9 +227,9 @@ public: } // toolpanellistener interface - void panelChanged(const rtengine::ProcEvent& event, const Glib::ustring& descr); + void panelChanged(const rtengine::ProcEvent& event, const Glib::ustring& descr) override; - void imageTypeChanged (bool isRaw, bool isBayer, bool isXtrans, bool isMono = false); + void imageTypeChanged (bool isRaw, bool isBayer, bool isXtrans, bool isMono = false) override; // void autoContrastChanged (double autoContrast); // profilechangelistener interface @@ -239,8 +239,8 @@ public: const Glib::ustring& descr, const ParamsEdited* paramsEdited = nullptr, bool fromLastSave = false - ); - void setDefaults(const rtengine::procparams::ProcParams* defparams); + ) override; + void setDefaults(const rtengine::procparams::ProcParams* defparams) override; // DirSelectionListener interface void dirSelected (const Glib::ustring& dirname, const Glib::ustring& openfile); @@ -263,13 +263,13 @@ public: // wbprovider interface - void getAutoWB (double& temp, double& green, double equal, double tempBias) + void getAutoWB (double& temp, double& green, double equal, double tempBias) override { if (ipc) { ipc->getAutoWB (temp, green, equal, tempBias); } } - void getCamWB (double& temp, double& green) + void getCamWB (double& temp, double& green) override { if (ipc) { ipc->getCamWB (temp, green); @@ -277,41 +277,41 @@ public: } //DFProvider interface - rtengine::RawImage* getDF(); + rtengine::RawImage* getDF() override; //FFProvider interface - rtengine::RawImage* getFF(); - Glib::ustring GetCurrentImageFilePath(); + rtengine::RawImage* getFF() override; + Glib::ustring GetCurrentImageFilePath() override; // rotatelistener interface - void straightenRequested (); - void autoCropRequested (); - double autoDistorRequested (); + void straightenRequested () override; + void autoCropRequested () override; + double autoDistorRequested () override; // spotwblistener interface - void spotWBRequested (int size); + void spotWBRequested (int size) override; // croppanellistener interface - void cropSelectRequested (); + void cropSelectRequested () override; // icmpanellistener interface - void saveInputICCReference(const Glib::ustring& fname, bool apply_wb); + void saveInputICCReference(const Glib::ustring& fname, bool apply_wb) override; // imageareatoollistener interface - void spotWBselected(int x, int y, Thumbnail* thm = nullptr); - void sharpMaskSelected(bool sharpMask); - int getSpotWBRectSize() const; - void cropSelectionReady(); - void rotateSelectionReady(double rotate_deg, Thumbnail* thm = nullptr); - ToolBar* getToolBar() const; - CropGUIListener* startCropEditing(Thumbnail* thm = nullptr); + void spotWBselected(int x, int y, Thumbnail* thm = nullptr) override; + void sharpMaskSelected(bool sharpMask) override; + int getSpotWBRectSize() const override; + void cropSelectionReady() override; + void rotateSelectionReady(double rotate_deg, Thumbnail* thm = nullptr) override; + ToolBar* getToolBar() const override; + CropGUIListener* startCropEditing(Thumbnail* thm = nullptr) override; void updateTPVScrollbar (bool hide); bool handleShortcutKey (GdkEventKey* event); // ToolBarListener interface - void toolSelected (ToolMode tool); - void editModeSwitchedOff (); + void toolSelected (ToolMode tool) override; + void editModeSwitchedOff () override; void setEditProvider (EditDataProvider *provider); diff --git a/rtgui/vibrance.h b/rtgui/vibrance.h index 62faf0c85..ed3e10059 100644 --- a/rtgui/vibrance.h +++ b/rtgui/vibrance.h @@ -52,30 +52,30 @@ protected: public: Vibrance (); - ~Vibrance (); + ~Vibrance () override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void trimValues (rtengine::procparams::ProcParams* pp); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void trimValues (rtengine::procparams::ProcParams* pp) override; void setAdjusterBehavior (bool pastelsadd, bool saturatedadd); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); - void curveChanged (); - void autoOpenCurve (); + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; + void curveChanged () override; + void autoOpenCurve () override; - void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop); - void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight); - void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop); - void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight); - void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR); + void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) override; + void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) override; + void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) override; - void enabledChanged (); + void enabledChanged () override; void protectskins_toggled (); void avoidcolorshift_toggled (); void pastsattog_toggled (); - std::vector getCurvePoints(ThresholdSelector* tAdjuster) const; + std::vector getCurvePoints(ThresholdSelector* tAdjuster) const override; }; diff --git a/rtgui/vignetting.h b/rtgui/vignetting.h index 975bf7344..5432b6178 100644 --- a/rtgui/vignetting.h +++ b/rtgui/vignetting.h @@ -37,15 +37,15 @@ public: Vignetting (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; void setAdjusterBehavior (bool amountadd, bool radiusadd, bool strengthadd, bool centeradd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 5cbb5bfe3..163395d52 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -40,32 +40,32 @@ class Wavelet : { public: Wavelet (); - ~Wavelet (); + ~Wavelet () override; bool wavComputed_ (); - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); - void autoOpenCurve (); - void curveChanged (CurveEditor* ce); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void autoOpenCurve () override; + void curveChanged (CurveEditor* ce) override; + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add); - void setBatchMode (bool batchMode); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setEditProvider (EditDataProvider *provider); + void setBatchMode (bool batchMode) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setEditProvider (EditDataProvider *provider) override; void updateToolState (std::vector &tpOpen); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; void writeOptions (std::vector &tpOpen); - void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop); - void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight); - void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop); - void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight); - void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR); + void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) override; + void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop) override; + void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) override; + void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) override; private: void foldAllButMe (GdkEventButton* event, MyExpander *expander); - virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller); + void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; void BAmethodChanged (); void NPmethodChanged (); void BackmethodChanged (); @@ -84,7 +84,7 @@ private: void contrastMinusPressed (); void contrastPlusPressed (); void daubcoeffmethodChanged (); - void enabledChanged (); + void enabledChanged () override; void linkedgToggled (); void lipstToggled (); void medianToggled (); @@ -94,7 +94,7 @@ private: void neutralchPressed (); void tmrToggled (); void updatewavLabel (); - void wavChanged (double nlevel); + void wavChanged (double nlevel) override; void HSmethodUpdateUI(); void CHmethodUpdateUI(); diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 2a24aff45..6866d6e19 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -149,17 +149,19 @@ static double wbTemp2Slider(double temp) WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WBALANCE_LABEL"), false, true), wbp(nullptr), wblistener(nullptr) { - - Gtk::HBox* hbox = Gtk::manage (new Gtk::HBox ()); - hbox->set_spacing(4); - hbox->show (); - Gtk::Label* lab = Gtk::manage (new Gtk::Label (M("TP_WBALANCE_METHOD"))); - lab->show (); + + Gtk::Grid* methodgrid = Gtk::manage(new Gtk::Grid()); + methodgrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(methodgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + Gtk::Label* lab = Gtk::manage (new Gtk::Label (M("TP_WBALANCE_METHOD") + ":")); + setExpandAlignProperties(lab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); // Create the Tree model refTreeModel = Gtk::TreeStore::create(methodColumns); // Create the Combobox method = Gtk::manage (new MyComboBox ()); + setExpandAlignProperties(method, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); // Assign the model to the Combobox method->set_model(refTreeModel); @@ -244,31 +246,30 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; method->set_active (0); // Camera - method->show (); - hbox->pack_start (*lab, Gtk::PACK_SHRINK, 0); - hbox->pack_start (*method); - pack_start (*hbox, Gtk::PACK_SHRINK, 0); + methodgrid->attach (*lab, 0, 0, 1, 1); + methodgrid->attach (*method, 1, 0, 1, 1); + pack_start (*methodgrid, Gtk::PACK_SHRINK, 0 ); opt = 0; - Gtk::HBox* spotbox = Gtk::manage (new Gtk::HBox ()); - spotbox->set_spacing(4); - spotbox->show (); + Gtk::Grid* spotgrid = Gtk::manage(new Gtk::Grid()); + spotgrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(spotgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - spotbutton = Gtk::manage (new Gtk::Button ()); + spotbutton = Gtk::manage (new Gtk::Button (M("TP_WBALANCE_PICKER"))); + setExpandAlignProperties(spotbutton, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); spotbutton->get_style_context()->add_class("independent"); spotbutton->set_tooltip_text(M("TP_WBALANCE_SPOTWB")); - Gtk::Image* spotimg = Gtk::manage (new RTImage ("color-picker.png")); - spotimg->show (); - spotbutton->set_image (*spotimg); - spotbutton->show (); - - spotbox->pack_start (*spotbutton); + spotbutton->set_image (*Gtk::manage (new RTImage ("color-picker-small.png"))); Gtk::Label* slab = Gtk::manage (new Gtk::Label (M("TP_WBALANCE_SIZE"))); - slab->show (); + setExpandAlignProperties(slab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + + Gtk::Grid* wbsizehelper = Gtk::manage(new Gtk::Grid()); + wbsizehelper->set_name("WB-Size-Helper"); + setExpandAlignProperties(wbsizehelper, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); spotsize = Gtk::manage (new MyComboBoxText ()); - spotsize->show (); + setExpandAlignProperties(spotsize, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); spotsize->append ("2"); if (options.whiteBalanceSpotSize == 2) { @@ -298,11 +299,17 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB if (options.whiteBalanceSpotSize == 32) { spotsize->set_active(4); } + + wbsizehelper->attach (*spotsize, 0, 0, 1, 1); - spotbox->pack_end (*spotsize, Gtk::PACK_EXPAND_WIDGET, 0); - spotbox->pack_end (*slab, Gtk::PACK_SHRINK, 0); - - pack_start (*spotbox, Gtk::PACK_SHRINK, 0); + spotgrid->attach (*spotbutton, 0, 0, 1, 1); + spotgrid->attach (*slab, 1, 0, 1, 1); + spotgrid->attach (*wbsizehelper, 2, 0, 1, 1); + pack_start (*spotgrid, Gtk::PACK_SHRINK, 0 ); + + Gtk::HSeparator *separator = Gtk::manage (new Gtk::HSeparator()); + separator->get_style_context()->add_class("grid-row-separator"); + pack_start (*separator, Gtk::PACK_SHRINK, 0); Gtk::Image* itempL = Gtk::manage (new RTImage ("circle-blue-small.png")); Gtk::Image* itempR = Gtk::manage (new RTImage ("circle-yellow-small.png")); diff --git a/rtgui/whitebalance.h b/rtgui/whitebalance.h index 41573de50..42275e93f 100644 --- a/rtgui/whitebalance.h +++ b/rtgui/whitebalance.h @@ -94,20 +94,20 @@ protected: public: WhiteBalance (); - ~WhiteBalance (); + ~WhiteBalance () override; static void init (); static void cleanup (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; void optChanged (); void spotPressed (); void spotSizeChanged (); - void adjusterChanged(Adjuster* a, double newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void adjusterChanged(Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; int getSize (); void setWBProvider (WBProvider* p) { @@ -118,11 +118,11 @@ public: wblistener = l; } void setWB (int temp, double green); - void WBChanged (double temp, double green); + void WBChanged (double temp, double green) override; void setAdjusterBehavior (bool tempadd, bool greenadd, bool equaladd, bool tempbiasadd); - void trimValues (rtengine::procparams::ProcParams* pp); - void enabledChanged(); + void trimValues (rtengine::procparams::ProcParams* pp) override; + void enabledChanged() override; }; #endif diff --git a/rtgui/xtransprocess.h b/rtgui/xtransprocess.h index 7a706b1ac..cd60337dc 100644 --- a/rtgui/xtransprocess.h +++ b/rtgui/xtransprocess.h @@ -46,19 +46,19 @@ protected: public: XTransProcess (); - ~XTransProcess (); + ~XTransProcess () override; - void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; void setAdjusterBehavior(bool falsecoloradd, bool dualDemosaicContrastAdd); - void setBatchMode(bool batchMode); - void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); + void setBatchMode(bool batchMode) override; + void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void methodChanged(); - void autoContrastChanged (double autoContrast); - void adjusterChanged(Adjuster* a, double newval); - void checkBoxToggled(CheckBox* c, CheckValue newval); - void adjusterAutoToggled(Adjuster* a, bool newval); + void autoContrastChanged (double autoContrast) override; + void adjusterChanged(Adjuster* a, double newval) override; + void checkBoxToggled(CheckBox* c, CheckValue newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; }; #endif diff --git a/rtgui/xtransrawexposure.h b/rtgui/xtransrawexposure.h index fc95d5743..75bdbd0e2 100644 --- a/rtgui/xtransrawexposure.h +++ b/rtgui/xtransrawexposure.h @@ -38,14 +38,14 @@ public: XTransRAWExposure (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void adjusterChanged (Adjuster* a, double newval); - void adjusterAutoToggled (Adjuster* a, bool newval); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool pexblackadd); - void trimValues (rtengine::procparams::ProcParams* pp); + void trimValues (rtengine::procparams::ProcParams* pp) override; }; #endif