diff --git a/rtdata/dcpprofiles/Canon EOS 20D.dcp b/rtdata/dcpprofiles/Canon EOS 20D.dcp index 0dfc1c80b..1ce4c5d0b 100644 Binary files a/rtdata/dcpprofiles/Canon EOS 20D.dcp and b/rtdata/dcpprofiles/Canon EOS 20D.dcp differ diff --git a/rtdata/dcpprofiles/Canon EOS 40D.dcp b/rtdata/dcpprofiles/Canon EOS 40D.dcp index 98cf8ce09..a6117dfa5 100644 Binary files a/rtdata/dcpprofiles/Canon EOS 40D.dcp and b/rtdata/dcpprofiles/Canon EOS 40D.dcp differ diff --git a/rtdata/dcpprofiles/Canon EOS 50D.dcp b/rtdata/dcpprofiles/Canon EOS 50D.dcp new file mode 100644 index 000000000..a99da9e61 Binary files /dev/null and b/rtdata/dcpprofiles/Canon EOS 50D.dcp differ diff --git a/rtdata/dcpprofiles/Canon EOS 7D Mark II.dcp b/rtdata/dcpprofiles/Canon EOS 7D Mark II.dcp new file mode 100644 index 000000000..1c153e82a Binary files /dev/null and b/rtdata/dcpprofiles/Canon EOS 7D Mark II.dcp differ diff --git a/rtdata/dcpprofiles/Canon EOS 7D.dcp b/rtdata/dcpprofiles/Canon EOS 7D.dcp index f6425f3c5..dd31e64f5 100644 Binary files a/rtdata/dcpprofiles/Canon EOS 7D.dcp and b/rtdata/dcpprofiles/Canon EOS 7D.dcp differ diff --git a/rtdata/dcpprofiles/FUJIFILM X-Pro2.dcp b/rtdata/dcpprofiles/FUJIFILM X-Pro2.dcp index 5b448b7b1..1172b17bb 100644 Binary files a/rtdata/dcpprofiles/FUJIFILM X-Pro2.dcp and b/rtdata/dcpprofiles/FUJIFILM X-Pro2.dcp differ diff --git a/rtdata/dcpprofiles/NIKON D600.dcp b/rtdata/dcpprofiles/NIKON D600.dcp new file mode 100644 index 000000000..039989c2c Binary files /dev/null and b/rtdata/dcpprofiles/NIKON D600.dcp differ diff --git a/rtdata/dcpprofiles/NIKON D810.dcp b/rtdata/dcpprofiles/NIKON D810.dcp new file mode 100644 index 000000000..58f90c983 Binary files /dev/null and b/rtdata/dcpprofiles/NIKON D810.dcp differ diff --git a/rtdata/dcpprofiles/Nikon D750.dcp b/rtdata/dcpprofiles/Nikon D750.dcp deleted file mode 100644 index ad9cd5679..000000000 Binary files a/rtdata/dcpprofiles/Nikon D750.dcp and /dev/null differ diff --git a/rtdata/dcpprofiles/SONY SLT-A99V.dcp b/rtdata/dcpprofiles/SONY SLT-A99V.dcp new file mode 100644 index 000000000..94a0767ed Binary files /dev/null and b/rtdata/dcpprofiles/SONY SLT-A99V.dcp differ diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 6a6923112..3698f13cc 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -168,6 +168,7 @@ FILEBROWSER_SHOWEDITEDHINT;Afficher les images éditées\nRaccourci: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Afficher les images non éditées\nRaccourci: 6 FILEBROWSER_SHOWEXIFINFO;Montrer les infos EXIF.\nRaccourci: i\n\nRaccourcis dans le mode Éditeur Unique: Alt-i FILEBROWSER_SHOWNOTTRASHHINT;Voir uniquement les images non supprimées +FILEBROWSER_SHOWORIGINALHINT;Voir seulement les images originales.\n\nQuand plusieurs images éxistent avec le même nom de fichier mais des extensions différentes, celle considéré originale est celle dont l'extention est au plus dans la liste des extensions dans Préférences > Navigateur de fichiers > Extensions considérées. FILEBROWSER_SHOWRANK1HINT;Voir les images 1 étoile\nRaccourci: 1 FILEBROWSER_SHOWRANK2HINT;Voir les images 2 étoiles\nRaccourci: 2 FILEBROWSER_SHOWRANK3HINT;Voir les images 3 étoiles\nRaccourci: 3 @@ -196,6 +197,7 @@ FILECHOOSER_FILTER_SAME;Même format que la photo FILECHOOSER_FILTER_TIFF;Fichiers TIFF GENERAL_ABOUT;À propos GENERAL_AFTER;Après +GENERAL_APPLY;Appliquer GENERAL_ASIMAGE;Comme l'image GENERAL_AUTO;Automatique GENERAL_BEFORE;Avant @@ -211,6 +213,7 @@ GENERAL_NA;indisponible GENERAL_NO;Non GENERAL_NONE;Aucun GENERAL_OK;OK +GENERAL_OPEN;Ouvrir GENERAL_PORTRAIT;Portrait GENERAL_SAVE;Enregistrer GENERAL_UNCHANGED;(Inchangé) @@ -320,7 +323,7 @@ HISTORY_MSG_89;Réd. de bruit HISTORY_MSG_90;Réd. de bruit - Luminance HISTORY_MSG_91;Réd. de bruit - Chrominance Maître HISTORY_MSG_92;Réd. de bruit - Gamma -HISTORY_MSG_93;Param. Contraste par niv. de détail +HISTORY_MSG_93;CpND - Valeur HISTORY_MSG_94;Contraste par niveau de détail HISTORY_MSG_95;Lab - Chromaticité HISTORY_MSG_96;Courbe 'a' @@ -393,6 +396,7 @@ HISTORY_MSG_162;Compression Tonale HISTORY_MSG_163;Courbes RVB - Rouge HISTORY_MSG_164;Courbes RVB - Vert HISTORY_MSG_165;Courbes RVB - Bleu +HISTORY_MSG_166;Exposition - Réinit. HISTORY_MSG_167;Algorithme de dématriçage HISTORY_MSG_168;Courbe 'CC' HISTORY_MSG_169;Courbe 'CT' @@ -474,7 +478,7 @@ HISTORY_MSG_245;Vignet. - Centre HISTORY_MSG_246;Courbe 'CL' HISTORY_MSG_247;Courbe 'LT' HISTORY_MSG_248;Courbe 'TT' -HISTORY_MSG_249;Seuil Contraste par niv. de détail +HISTORY_MSG_249;CpND - Seuil HISTORY_MSG_250;Réd. de bruit - Amélioré HISTORY_MSG_251;N&B - Algorithme HISTORY_MSG_252;CpND - Tons chair @@ -618,7 +622,7 @@ HISTORY_MSG_389;O - Résiduel - BC bleu moyen HISTORY_MSG_390;O - Résiduel - BC vert bas HISTORY_MSG_391;O - Résiduel - BC bleu bas HISTORY_MSG_392;O - Résiduel - BC Réinitialiser -HISTORY_MSG_393;DCP - Table de recherche (LUT) +HISTORY_MSG_393;DCP - Table de corresp. (LUT) HISTORY_MSG_394;DCP - Exposition de base HISTORY_MSG_395;DCP - Table de base HISTORY_MSG_396;O - Contrast @@ -632,28 +636,89 @@ HISTORY_MSG_403;O - NB - Sensibilité des bords HISTORY_MSG_404;O - NB - Base amplification HISTORY_MSG_405;O - Débruitage - Niveau 4 HISTORY_MSG_406;O - NB - Pixels voisins +HISTORY_MSG_407;Retinex - Méthode +HISTORY_MSG_408;Retinex - Rayon +HISTORY_MSG_409;Retinex - Contraste +HISTORY_MSG_410;Retinex - Décalage +HISTORY_MSG_411;Retinex - Force +HISTORY_MSG_412;Retinex - Gradient Gaussien +HISTORY_MSG_413;Retinex - Contraste +HISTORY_MSG_414;Retinex - Histogramme - Lab +HISTORY_MSG_415;Retinex - Transmission +HISTORY_MSG_416;Retinex +HISTORY_MSG_417;Retinex - Transmission Médiane +HISTORY_MSG_418;Retinex - Seuil +HISTORY_MSG_419;Retinex - Espace couleur +HISTORY_MSG_420;Retinex - Histogramme - TSV +HISTORY_MSG_421;Retinex - Gamma +HISTORY_MSG_422;Retinex - Gamma +HISTORY_MSG_423;Retinex - Pente Gamma +HISTORY_MSG_424;Retinex - Seuille HL +HISTORY_MSG_425;Retinex - Base Log +HISTORY_MSG_426;Retinex - Égaliseur de teinte +HISTORY_MSG_427;Intention de rendu de sortie +HISTORY_MSG_428;Intention de rendu du moniteur +HISTORY_MSG_429;Retinex - Itérations +HISTORY_MSG_430;Retinex - Gradient de Transmission +HISTORY_MSG_431;Retinex - Gradient de Force +HISTORY_MSG_432;Retinex - M - Hautes lumières +HISTORY_MSG_433;Retinex - M - Hautes lumières TW +HISTORY_MSG_434;Retinex - M - Ombres +HISTORY_MSG_435;Retinex - M - Ombres TW +HISTORY_MSG_436;Retinex - M - Rayon +HISTORY_MSG_437;Retinex - M - Méthode +HISTORY_MSG_438;Retinex - M - Égaliseur +HISTORY_MSG_439;Retinex - Traitement +HISTORY_MSG_440;CpND - Méthode +HISTORY_MSG_441;Retinex - Gain de Tansmission +HISTORY_MSG_442;Retinex - Échelle HISTORY_MSG_443;Compensation du Point Noir de Sortie HISTORY_NEWSNAPSHOT;Ajouter HISTORY_NEWSNAPSHOT_TOOLTIP;Raccourci: Alt-s HISTORY_SNAPSHOT;Capture HISTORY_SNAPSHOTS;Captures IPTCPANEL_CATEGORY;Catégorie +IPTCPANEL_CATEGORYHINT;Identifie le sujet de l'image selon l'opinion du fournisseur. IPTCPANEL_CITY;Ville +IPTCPANEL_CITYHINT;Entrez les nom de la ville photographiée dans cette image. IPTCPANEL_COPYHINT;Copie les réglages IPTC dans le presse-papier +IPTCPANEL_COPYRIGHT;Note de Copyright +IPTCPANEL_COPYRIGHTHINT;Entrez une Note sur le détenteur actuelle du Copyright pour cette image (ex: ©2008 Jean Dupont). IPTCPANEL_COUNTRY;Pays +IPTCPANEL_COUNTRYHINT;Enterez le nom du pays photographié dans cette image. +IPTCPANEL_CREATOR;Créateur +IPTCPANEL_CREATORHINT;Enterez le nom de la personne qui a créé cette image. +IPTCPANEL_CREATORJOBTITLE;Métier du créateur +IPTCPANEL_CREATORJOBTITLEHINT;Enterez le métier et/ou la fonction de la personne indiquée dans le champs Créateur. IPTCPANEL_CREDIT;Crédit IPTCPANEL_CREDITHINT;Identifie le fournisseur de l'image, pas nécessairement le propriétaire/créateur (Crédit). IPTCPANEL_DATECREATED;Date de création +IPTCPANEL_DATECREATEDHINT;Entrez la date à laquelle la photo a été prise. +IPTCPANEL_DESCRIPTION;Description +IPTCPANEL_DESCRIPTIONHINT;Enterez une "légende" descrivant le qui, quoi et pourquoi de ce qui arrive dans cette image, cela peut inclure le nom des personnes, et/ou leur rôle dans l'action qui a lieu dans l'image. +IPTCPANEL_DESCRIPTIONWRITER;Rédacteur de la description +IPTCPANEL_DESCRIPTIONWRITERHINT;Enterez le nom de la personne impliquée dans la rédaction, édition ou correction de la description de cette image. IPTCPANEL_EMBEDDED;Incorporés IPTCPANEL_EMBEDDEDHINT;Réinitialise selon les données IPTC incorporées dans le fichier image IPTCPANEL_HEADLINE;Titre +IPTCPANEL_HEADLINEHINT;Enterez un bref synopsis publiable ou résumé du contenu de l'image. IPTCPANEL_INSTRUCTIONS;Instructions +IPTCPANEL_INSTRUCTIONSHINT;Enterez les informations à propos des embargos, ou autre restrictions non couvertes par le champs Copyright. IPTCPANEL_KEYWORDS;Mots clés +IPTCPANEL_KEYWORDSHINT;Enterez un nombre quelconque de mots clés, termes or phrases utilisés pour exprimer le sujet de l'image. IPTCPANEL_PASTEHINT;Colle les réglages IPTC du presse-papier +IPTCPANEL_PROVINCE;Province or État +IPTCPANEL_PROVINCEHINT;Enterez le nom de la province ou de l'État photographiée dans cette image. IPTCPANEL_RESET;Réinitialisation IPTCPANEL_RESETHINT;Réinitialise selon le profil par défaut IPTCPANEL_SOURCE;Source +IPTCPANEL_SOURCEHINT;Enterez ou éditez le nom de la personne ou du tiers qui a un rôle dans la chaîne de transmission du contenu, comme une personne ou entité de qui vous avez reçu cette image. +IPTCPANEL_SUPPCATEGORIES;Catégories supplémentaires +IPTCPANEL_SUPPCATEGORIESHINT;Description approfondie du sujet de l'image. 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. MAIN_BUTTON_FULLSCREEN;Plein écran MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigue à l'image Suivante relativement à l'image ouverte dans l'Éditeur\nRaccourci: Shift-F4\n\nPour naviguer à l'image Suivante relativement à la vignette sélectionnée dans le Navigateur de fichiers\nRaccourci: F4 MAIN_BUTTON_NAVPREV_TOOLTIP;Navigue à l'image Précédente relativement à l'image ouverte dans l'Éditeur\nRaccourci: Shift-F3\n\nPour naviguer à l'image Précédente relativement à la vignette sélectionnée dans le Navigateur de fichiers\nRaccourci: F3 @@ -661,6 +726,7 @@ MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronise le Navigateur de fichiers avec l'Éditeu MAIN_BUTTON_PREFERENCES;Préférences MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Ajouter l'image courante à la file de traitement\nRaccourci: Ctrl+b MAIN_BUTTON_SAVE_TOOLTIP;Enregistrer l'image courante\nRaccourci: Ctrl+s +MAIN_BUTTON_SENDTOEDITOR;Éditer l'image dans un éditeur extenre MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Éditer l'image courante dans l'éditeur externe\nRaccourci: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Afficher/Cacher les 2 panneaux latéraux\nRaccourci: m MAIN_BUTTON_UNFULLSCREEN;Quitter le plein écran @@ -725,6 +791,7 @@ MAIN_TOOLTIP_SHOWHIDERP1;Afficher/Cacher le panneau droit\nRaccourci: Alt-lShift-L MAIN_TOOLTIP_THRESHOLD;Seuil MAIN_TOOLTIP_TOGGLE;Comparaison avant/après\nRaccourci: Shift-b +MONITOR_PROFILE_SYSTEM;Système par défaut NAVIGATOR_B;B: NAVIGATOR_G;V: NAVIGATOR_H;T: @@ -784,6 +851,7 @@ PARTIALPASTE_PREPROCESS_DEADPIXFILT;Filtrage des pixels morts PARTIALPASTE_PREPROCESS_GREENEQUIL;Équilibrage du vert PARTIALPASTE_PREPROCESS_HOTPIXFILT;Filtrage des pixels chauds PARTIALPASTE_PREPROCESS_LINEDENOISE;Filtre de bruit de ligne +PARTIALPASTE_PRSHARPENING;Netteté post-redim. PARTIALPASTE_RAWCACORR_AUTO;Corr. auto. de l'aberr. chromatique PARTIALPASTE_RAWCACORR_CABLUE;Aberr. chromatique bleu PARTIALPASTE_RAWCACORR_CARED;Aberr. chromatique rouge @@ -797,6 +865,7 @@ PARTIALPASTE_RAW_DMETHOD;Algorithme de dématriçage PARTIALPASTE_RAW_FALSECOLOR;Nbr d'itération des fausses couleurs PARTIALPASTE_RAW_LMMSEITERATIONS;Niveau d'amélioration LMMSE PARTIALPASTE_RESIZE;Redimentionnement +PARTIALPASTE_RETINEX;Retinex PARTIALPASTE_RGBCURVES;Courbes RVB PARTIALPASTE_ROTATION;Rotation PARTIALPASTE_SHADOWSHIGHLIGHTS;Ombres/Hautes lumières @@ -933,6 +1002,8 @@ PREFERENCES_MENUOPTIONS;Options du menu PREFERENCES_METADATA;Metadonnées PREFERENCES_MIN;Mini (100x115) PREFERENCES_MONINTENT;Intention de rendu par défaut +PREFERENCES_MONITOR;Moniteur +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 @@ -952,16 +1023,20 @@ PREFERENCES_PARSEDEXT;Extensions considérées PREFERENCES_PARSEDEXTADD;Ajout de l'extension PREFERENCES_PARSEDEXTADDHINT;Tapez une extension et cliquez ce bouton pour l'ajouter à la liste PREFERENCES_PARSEDEXTDELHINT;Supprime de la liste les extensions sélectionnées +PREFERENCES_PARSEDEXTDOWNHINT;Déplacer l'extension sélectionnée plus bas dans la liste. +PREFERENCES_PARSEDEXTUPHINT;Déplacer l'extension sélectionnée plus haut dans la liste. PREFERENCES_PREVDEMO;Méthode de Dématriçage de l'Aperçu PREFERENCES_PREVDEMO_FAST;Rapide PREFERENCES_PREVDEMO_LABEL;Méthode de dématriçage utilisé pour l'aperçu à un zoom <100%: PREFERENCES_PREVDEMO_SIDECAR;Idem PP3 +PREFERENCES_PRINTER;Imprimante (Épreuvage Écran) PREFERENCES_PROFILEHANDLING;Gestionnaire des profils de traitement PREFERENCES_PROFILELOADPR;Priorité de chargement des profils PREFERENCES_PROFILEPRCACHE;Profil dans le Cache PREFERENCES_PROFILEPRFILE;Profil accolé au fichier d'entrée PREFERENCES_PROFILESAVECACHE;Enregistrer la paramètres de traitement dans le Cache PREFERENCES_PROFILESAVEINPUT;Enregistrer la paramètres de traitement accolé au fichier d'entrée +PREFERENCES_PROFILE_NONE;Aucun PREFERENCES_PROPERTY;Propriété PREFERENCES_PRTINTENT;Intention de rendu PREFERENCES_PRTPROFILE;Profil couleur @@ -1006,6 +1081,7 @@ PREFERENCES_TISTD;Standard PREFERENCES_TP_LABEL;Panneau des outils: PREFERENCES_TP_USEICONORTEXT;Utiliser des icônes au lieu de textes PREFERENCES_TP_VSCROLLBAR;Cacher la barre de défilement verticale +PREFERENCES_TUNNELMETADATA;Copier les données Exif/IPTC/XMP tel quel dans le fichier de sortie PREFERENCES_USEBUNDLEDPROFILES;Utiliser les profils fournis PREFERENCES_USESYSTEMTHEME;Utiliser le thème système PREFERENCES_VIEW;Point blanc du périphérique sortie (moniteur, TV, projecteur,...) @@ -1062,6 +1138,7 @@ SAVEDLG_SUBSAMP;Sous-échantillonnage SAVEDLG_SUBSAMP_1;Meilleure compression SAVEDLG_SUBSAMP_2;Équilibré SAVEDLG_SUBSAMP_3;Meilleure qualité +SAVEDLG_SUBSAMP_TOOLTIP;Meilleurs compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma divisé par deux horizontalement et verticalement.\n\nÉquilibré:\nJ:a:b 4:2:2\nh/v 2/1\nChroma divisé par deux horizontalement.\n\nMeilleurs qualité:\nJ:a:b 4:4:4\nh/v 1/1\nPas de sous-échantillonnage chroma. SAVEDLG_TIFFUNCOMPRESSED;TIFF non compressé SAVEDLG_WARNFILENAME;Le fichier sera nommé SHCSELECTOR_TOOLTIP;Cliquez le bouton droit de la souris\npour réinitialiser la position de ces 3 curseurs @@ -1142,6 +1219,10 @@ TP_BWMIX_VAL;L TP_CACORRECTION_BLUE;Bleu TP_CACORRECTION_LABEL;Aberration chromatique TP_CACORRECTION_RED;Rouge +TP_CBDL_AFT;Après Noir-et-Blanc +TP_CBDL_BEF;Avant Noir-et-Blanc +TP_CBDL_METHOD;Traitement effectué +TP_CBDL_METHOD_TOOLTIP;Choisissez selon que l'outil Contraste par Niveaux de Détail doit intervenir après l'outil Noir-et-Blanc, ce qui le fera opéré dans l'espace L*a*b*, ou avant lui, ce qui le fera opérer dans l'espace RVB. TP_CHMIXER_BLUE;Bleu TP_CHMIXER_GREEN;Vert TP_CHMIXER_LABEL;Mixage des canaux @@ -1240,6 +1321,7 @@ TP_COLORTONING_LUMAMODE_TOOLTIP;Si activé, lorsque vous changez la couleur (rou TP_COLORTONING_METHOD;Méthode TP_COLORTONING_METHOD_TOOLTIP;Mixage Lab - RVB courbes - RVB curseurs utilise une interpolation\nBalance couleur(ombres / tons moyens / hautes lumières)\nSaturation 2 couleurs utilise couleurs directes\nDans tous les méthodes vous pouvez activer Noir et Blanc TP_COLORTONING_MIDTONES;Tons Moyens +TP_COLORTONING_NEUTRAL;Réinit. curseurs TP_COLORTONING_NEUTRAL_TIP;Réinitialise toutes les valeurs (Ombres, Tons moyens, Hautes lumières) à leur valeur par défaut. TP_COLORTONING_OPACITY;Opacité TP_COLORTONING_RGBCURVES;RVB - Courbes @@ -1281,6 +1363,12 @@ TP_DARKFRAME_LABEL;Trame Noire TP_DEFRINGE_LABEL;Aberration chromatique TP_DEFRINGE_RADIUS;Rayon TP_DEFRINGE_THRESHOLD;Seuil +TP_DIRPYRDENOISE_3X3;3×3 +TP_DIRPYRDENOISE_3X3_SOFT;3×3 doux +TP_DIRPYRDENOISE_5X5;5×5 +TP_DIRPYRDENOISE_5X5_SOFT;5×5 doux +TP_DIRPYRDENOISE_7X7;7×7 +TP_DIRPYRDENOISE_9X9;9×9 TP_DIRPYRDENOISE_ABM;Chroma uniquement TP_DIRPYRDENOISE_AUT;Global automatique TP_DIRPYRDENOISE_AUTO;Global automatique @@ -1320,10 +1408,13 @@ TP_DIRPYRDENOISE_METHOD11;Qualité TP_DIRPYRDENOISE_METHOD11_TOOLTIP;La qualité peut être adapté à la trame du bruit. Régler sur "haut" augmentera l'effet de la réduction de bruit au prix d'un temps de traitement plus long. TP_DIRPYRDENOISE_METHOD_TOOLTIP;Pour les images raw, les méthodes RVB ou Lab peuvent être utilisées.\n\nPour les images non-raw la méthode Lab sera utilisée, indépendamment de ce qu'indique ce bouton. TP_DIRPYRDENOISE_METM_TOOLTIP;Lorsque vous utilisez les méthodes "Luminance seulement" et "Lab", un filtrage médian sera effectué juste après l'étape des ondelettes dans le pipeline de la réduction de bruit.\nEm mode "RVB", il sera effectué à la toute fin du pipeline de la réduction de bruit. +TP_DIRPYRDENOISE_MET_TOOLTIP;Applique un filtre médian de la taille de "fenêtre" désirée. Plus cette taille est grande, plus cela prendra de temps.\n\n3×3 doux: traite 5 pixels dans une fenêtre de 3×3 pixels.\n3×3: traite 9 pixels dans une fenêtre de 3×3 pixels.\n5×5 doux: traite 13 pixels dans une fenêtre de 5×5 pixels.\n5×5: traite 25 pixels dans une fenêtre de 5×5 pixels.\n7×7: traite 49 pixels dans une fenêtre de 7×7 pixels.\n9×9: traite 81 pixels dans une fenêtre 9×9 pixels.\n\nIl est parfois possible d'atteindre une meilleurs qualité en appliquant plusieurs itérations d'une petite fenêtre qu'une seule itération d'une grande. TP_DIRPYRDENOISE_NOISELABEL;Bruit de l'aperçu: Moyen=%1 Haut=%2 TP_DIRPYRDENOISE_NOISELABELEMPTY;Bruit de l'aperçu: Moyen= - Haut= - TP_DIRPYRDENOISE_NRESID_TOOLTIP;Affiche les niveaux de bruit résiduel de la partie de l'image visible dans l'aperçu après les ondelettes.\n\n>300 Très bruité\n100-300 Bruité\n50-100 Peu bruité\n<50 Très peu bruité\n\nAttention, les valeurs diffèreront entre le mode RVB et L*a*b*. Les valeurs RVB sont moins précises car le mode RVB ne séparent pas complètement la luminance et la chrominance. TP_DIRPYRDENOISE_PASSE;Itérations +TP_DIRPYRDENOISE_PASSES;Itérations +TP_DIRPYRDENOISE_PASSES_TOOLTIP;Appliquer trois itérations avec une taille de fenêtre de 3×3 aboutit souvent à de meilleurs résultats qu'une seule itération avec une taille de fenêtre de 7×7. TP_DIRPYRDENOISE_PON;Multi-zones auto TP_DIRPYRDENOISE_PRE;Aperçu multi-zones TP_DIRPYRDENOISE_PREV;Aperçu @@ -1351,6 +1442,7 @@ TP_DIRPYREQUALIZER_SKIN_TOOLTIP;A -100, les tons chairs sont ciblés.\nA 0 tous TP_DIRPYREQUALIZER_THRESHOLD;Seuil TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts due to the transitions between the color (hue, chroma, luma) of the skin and the rest of the image. TP_DISTORTION_AMOUNT;Quantité +TP_DISTORTION_AUTO_TIP;Corrige automatiquement la distortion optique dans les fichiers raw en opérant une mise en correspondance avec le fichier JPEG incorporé, si elle existe, et sur laquelle la correction de la distortion a été appliqué par le boitier. TP_DISTORTION_LABEL;Distorsion TP_EPD_EDGESTOPPING;Arrêt des bords TP_EPD_GAMMA;Gamma @@ -1386,6 +1478,7 @@ TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Standard Pondéré TP_EXPOS_BLACKPOINT_LABEL;Points Noir Raw TP_EXPOS_WHITEPOINT_LABEL;Points Blanc Raw TP_FILMSIMULATION_LABEL;Simulation de Film +TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapee est configuré pour rechercher les images Hald CLUT, qui sont utilisées pour l'outil Simulation de Film, dans un dossier qui prends trop de temps à se charger.\nAllez dans Préférences > Traitement de l'image > Simulation de Film\npour voir quel dossier est utilisé. Vous devriez soit pointer RawTherapee vers un dossier qui ne contient que les images Hald CLUT et rien d'autre, ou un dossier vide si vous ne voulez pas utiliser l'outil Simulation de Film.\n\nLisez l'article Simulation de Film dans RawPedia pour plus d'information.\n\nVoulez-vous abandonner la recherche maintenant? TP_FILMSIMULATION_STRENGTH;Force TP_FILMSIMULATION_ZEROCLUTSFOUND;Veuillez préciser le dossier contenant\nles fichiers HaldCLUT dans les Préférences TP_FLATFIELD_AUTOSELECT;Sélection automatique @@ -1431,8 +1524,8 @@ TP_ICM_APPLYBASELINEEXPOSUREOFFSET;Exposition de base TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP;Utilise l'offset d'exposition de base contenu dans le profil DCP. Ce réglage n'est possible que si le profil DCP sélectionné en contient un. TP_ICM_APPLYHUESATMAP;Table de base TP_ICM_APPLYHUESATMAP_TOOLTIP;Utilise la table de base (HueSatMap) contenu dans le profil DCP. Ce réglage n'est possible que si le profil DCP sélectionné en contient une. -TP_ICM_APPLYLOOKTABLE;Table de recherche -TP_ICM_APPLYLOOKTABLE_TOOLTIP;Utilise la table de recherche (LUT) contenu dans le profil DCP. Ce réglage n'est possible que si le profil DCP sélectionné en contient une. +TP_ICM_APPLYLOOKTABLE;Table de correspondance +TP_ICM_APPLYLOOKTABLE_TOOLTIP;Utilise la table de correspondance (LUT) contenu dans le profil DCP. Ce réglage n'est possible que si le profil DCP sélectionné en contient une. TP_ICM_BLENDCMSMATRIX;Mélange des hautes lumières\ndu profil ICC avec la matrice TP_ICM_BLENDCMSMATRIX_TOOLTIP;Activer la récupération des zones brûlées lorsque les profils ICC basés sur la LUT sont utilisés TP_ICM_BPC;Compensation du Point Noir @@ -1455,6 +1548,8 @@ TP_ICM_INPUTPROFILE;Profil d'entrée TP_ICM_LABEL;ICM TP_ICM_NOICM;Pas d'ICM: sortie sRGB TP_ICM_OUTPUTPROFILE;Profil de sortie +TP_ICM_PROFILEINTENT;Intention de Rendu +TP_ICM_SAVEREFERENCE;Sauver Image de Référence. TP_ICM_SAVEREFERENCE_APPLYWB;Appliquer la balance des blancs TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Généralement, applique la balance des blancs lors de l'enregistrement d'images pour créer des profils ICC, et n'applique pas la balance des blancs pour créer des profils DCP. TP_ICM_SAVEREFERENCE_TOOLTIP;Sauvegarde une image TIFF linéaire avant que le profil d'entrée ne soit appliqué. Le résultat peut être utilisé à des fins de calibrage, pour générer un profil APN. @@ -1507,6 +1602,7 @@ 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_NEUTRAL;Réinit. TP_NEUTRAL_TIP;Réinitialise les valeurs de l'exposition à des valeurs neutres TP_PCVIGNETTE_FEATHER;Étendue TP_PCVIGNETTE_FEATHER_TOOLTIP;Étendue: 0=bords uniquement, 50=mi-chemin du centre, 100=jusqu'au centre @@ -1533,6 +1629,7 @@ TP_PRSHARPENING_TOOLTIP;Augmente la netteté de l'image après le redimentionnem TP_RAWCACORR_AUTO;Correction automatique TP_RAWCACORR_CABLUE;Bleu TP_RAWCACORR_CARED;Rouge +TP_RAWCACORR_CASTR;force TP_RAWEXPOS_BLACKS;Niveaux de noir TP_RAWEXPOS_BLACK_0;Vert 1 (maître) TP_RAWEXPOS_BLACK_1;Rouge @@ -1574,6 +1671,86 @@ TP_RESIZE_SCALE;Échelle TP_RESIZE_SPECIFY;Préciser: TP_RESIZE_W;L: 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) +TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Force en fonction de la Teinte Force=f(T)\nCette courbe agit également sur le chroma lors de l'utilisation de la méthode Retinex "Hautes Lumières". +TP_RETINEX_CURVEEDITOR_MAP;L=f(L) +TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;Cette courbe peut être appliquée seule ou avec un masque Gaussion ou un masque d'ondelettes.\nAttention aux artéfacts! +TP_RETINEX_EQUAL;Égaliseur +TP_RETINEX_FREEGAMMA;Gamma manuel +TP_RETINEX_GAIN;Gain +TP_RETINEX_GAINOFFS;Gain et Décalage (brillance) +TP_RETINEX_GAINTRANSMISSION;Gain sur Transmission +TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplifie ou réduit le canal transmission pour atteindre la luminance souhaitée.\nAbscisses: transmission ; min = 0, max = valeurs.\nOrdonnées: gain. +TP_RETINEX_GAIN_TOOLTIP;Agit sur l'image recomposée.\n\nCeci est très différent des autres paramètres. Utilisé pour les pixels noirs et blancs, et pour aider à balancer l'histogramme. +TP_RETINEX_GAMMA;Gamma +TP_RETINEX_GAMMA_FREE;Manuel +TP_RETINEX_GAMMA_HIGH;Haute +TP_RETINEX_GAMMA_LOW;Bas +TP_RETINEX_GAMMA_MID;Milieu +TP_RETINEX_GAMMA_NONE;Aucun +TP_RETINEX_GAMMA_TOOLTIP;Restaure les tonalités en appliquant une transformation gamma avant et après Retinex. Différent des courbes Retinex ou autres courbes (Lab, Exposition, etc.). +TP_RETINEX_GRAD;Gradient de transmission +TP_RETINEX_GRADS;Gradient de force +TP_RETINEX_GRADS_TOOLTIP;Si curseur à 0, toutes les itérations sont identiques.\nSi > 0, la Force est réduite à chaque nouvelle itération, et inversement. +TP_RETINEX_GRAD_TOOLTIP;Si curseur à 0, toutes les itérations sont identiques.\nSi > 0, la Variance et le Seuil sont réduit à chaque nouvelle itération, et inversement. +TP_RETINEX_HIGH;Haut +TP_RETINEX_HIGHLIG;Hautes-lumières +TP_RETINEX_HIGHLIGHT;Seuil des Hautes-lumières +TP_RETINEX_HIGHLIGHT_TOOLTIP;Augment l'action de l'algoritme "Haut".\nPeut nécessiter que vous réajustiez "Pixels environnants" et d'augmenter la "Correction du point blanc" dans l'outil Raw -> Point Blanc Raw. +TP_RETINEX_HSLSPACE_LIN;TSV-Linéaire +TP_RETINEX_HSLSPACE_LOG;TSV-Logarithmique +TP_RETINEX_ITER;Itérations +TP_RETINEX_ITERF;Compression tonale +TP_RETINEX_ITER_TOOLTIP;Simule une compression tonale.\nLes valeurs hautes augmentent le temps de traitement. +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) +TP_RETINEX_MAP_METHOD_TOOLTIP;Utilise le masque généré par la fonction Gaussienne ci-dessus (Rayon, Méthode) pour réduire les halos et artéfacts.\n\nCourbe seulement: applique une courbe de contraste diagonale sur le masque.\nAttention aux artéfacts!\n\nMasque gaussien: génère et utilise le masque original modifié par flou gaussien.\nRapide.\n\nMasque pointu: génère et utilise une ondelette sur le masque original.\nLent. +TP_RETINEX_MAP_NONE;Aucune +TP_RETINEX_MEDIAN;Filtre médian +TP_RETINEX_METHOD;Méthode +TP_RETINEX_METHOD_TOOLTIP;Bas = Renforce les basses lumières.\nUniforme = Action uniforme.\nHaut = Renforce les hautes-lumières.\nHautes-lumières = Retire le magenta des hautes lumières. +TP_RETINEX_MLABEL;Recomposition sans 'brume' Min=%1 Max=%2 +TP_RETINEX_MLABEL_TOOLTIP;Devrait être proche de min=0 max=32768\nImage recomposée sans mélange. +TP_RETINEX_NEIGHBOR;Rayon +TP_RETINEX_NEUTRAL;Réinit. +TP_RETINEX_NEUTRAL_TIP;Réinitialise tous les curseurs et courbes à leur valeur par défaut. +TP_RETINEX_OFFSET;Décalage (brillance) +TP_RETINEX_SCALES;Gradient gaussien +TP_RETINEX_SCALES_TOOLTIP;Si le curseur est à 0, toutes les itérations sont identiques.\nSi > 0, l'Échelle et le Rayon sont réduit à chaque nouvelle itération, et inversement. +TP_RETINEX_SETTINGS;Réglages +TP_RETINEX_SKAL;Échelle +TP_RETINEX_SLOPE;Pente du gamma manuel +TP_RETINEX_STRENGTH;Force +TP_RETINEX_THRESHOLD;Seuil +TP_RETINEX_THRESHOLD_TOOLTIP;Limite entrée/sortie.\nEntrée = image source,\nSortie = image gaussienne. +TP_RETINEX_TLABEL;CT Min=%1 Max=%2 Moyen=%3 Sigma=%4 +TP_RETINEX_TLABEL2;CT Tm=%1 TM=%2 +TP_RETINEX_TLABEL_TOOLTIP;Résultat du calcul de transmission.\nMin et Max sont utilisés par Variance.\nMoyen et Sigma.\nTm=Min TM=Niveau maximum de transmission. +TP_RETINEX_TRANF;Transmission +TP_RETINEX_TRANSMISSION;Modulation du canal 'transmission' +TP_RETINEX_TRANSMISSION_TOOLTIP;Transmission en fonction de la transmission.\nAbscisses: transmission des valeurs négatives (min), moyennes, et positives (max).\nOrdonnées: amplification ou réduction. +TP_RETINEX_UNIFORM;Uniforme +TP_RETINEX_VARIANCE;Contraste +TP_RETINEX_VARIANCE_TOOLTIP;Une faible variance augmente le contraste local et la saturation, mais peut conduire à des artéfacts. +TP_RETINEX_VIEW;Traitement +TP_RETINEX_VIEW_MASK;Masque +TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard: Affichage normal.\nMasque: Affiche le masque.\nMasque flou: Affiche l'image avec un masque flou à grand rayon.\nTransmission - Auto/Fixé: Affiche les données de Transmission, avant toute action sur le contraste et la brillance.\n\nAttention: le masque ne correspond pas au rendu final, mais est amplifié pour le rendre plus visible. +TP_RETINEX_VIEW_NONE;Standard +TP_RETINEX_VIEW_TRAN;Transmission - Auto +TP_RETINEX_VIEW_TRAN2;Transmission - Fixé +TP_RETINEX_VIEW_UNSHARP;Masque flou TP_RGBCURVES_BLUE;B TP_RGBCURVES_CHANNEL;Canal TP_RGBCURVES_GREEN;V @@ -1858,184 +2035,3 @@ ZOOMPANEL_ZOOMFITSCREEN;Affiche l'image entière\nRaccourci: f ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: + ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. -!GENERAL_APPLY;Apply -!GENERAL_OPEN;Open -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_407;Retinex - Method -!HISTORY_MSG_408;Retinex - Radius -!HISTORY_MSG_409;Retinex - Contrast -!HISTORY_MSG_410;Retinex - Offset -!HISTORY_MSG_411;Retinex - Strength -!HISTORY_MSG_412;Retinex - Gaussian Gradient -!HISTORY_MSG_413;Retinex - Contrast -!HISTORY_MSG_414;Retinex - Histogram - Lab -!HISTORY_MSG_415;Retinex - Transmission -!HISTORY_MSG_416;Retinex -!HISTORY_MSG_417;Retinex - Transmission Median -!HISTORY_MSG_418;Retinex - Threshold -!HISTORY_MSG_419;Retinex - Color space -!HISTORY_MSG_420;Retinex - Histogram - HSL -!HISTORY_MSG_421;Retinex - Gamma -!HISTORY_MSG_422;Retinex - Gamma -!HISTORY_MSG_423;Retinex - Gamma slope -!HISTORY_MSG_424;Retinex - HL threshold -!HISTORY_MSG_425;Retinex - Log base -!HISTORY_MSG_426;Retinex - Hue equalizer -!HISTORY_MSG_427;Output rendering intent -!HISTORY_MSG_428;Monitor rendering intent -!HISTORY_MSG_429;Retinex - Iterations -!HISTORY_MSG_430;Retinex - Transmission Gradient -!HISTORY_MSG_431;Retinex - Strength Gradient -!HISTORY_MSG_432;Retinex - M - Highlights -!HISTORY_MSG_433;Retinex - M - Highlights TW -!HISTORY_MSG_434;Retinex - M - Shadows -!HISTORY_MSG_435;Retinex - M - Shadows TW -!HISTORY_MSG_436;Retinex - M - Radius -!HISTORY_MSG_437;Retinex - M - Method -!HISTORY_MSG_438;Retinex - M - Equalizer -!HISTORY_MSG_439;Retinex - Process -!HISTORY_MSG_440;CbDL - Method -!HISTORY_MSG_441;Retinex - Gain transmission -!HISTORY_MSG_442;Retinex - Scale -!IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. -!IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. -!IPTCPANEL_COPYRIGHT;Copyright notice -!IPTCPANEL_COPYRIGHTHINT;Enter a Notice on the current owner of the Copyright for this image, such as ©2008 Jane Doe. -!IPTCPANEL_COUNTRYHINT;Enter the name of the country pictured in this image. -!IPTCPANEL_CREATOR;Creator -!IPTCPANEL_CREATORHINT;Enter the name of the person that created this image. -!IPTCPANEL_CREATORJOBTITLE;Creator's job title -!IPTCPANEL_CREATORJOBTITLEHINT;Enter the Job Title of the person listed in the Creator field. -!IPTCPANEL_DATECREATEDHINT;Enter the Date the image was taken. -!IPTCPANEL_DESCRIPTION;Description -!IPTCPANEL_DESCRIPTIONHINT;Enter a "caption" describing the who, what, and why of what is happening in this image, this might include names of people, and/or their role in the action that is taking place within the image. -!IPTCPANEL_DESCRIPTIONWRITER;Description writer -!IPTCPANEL_DESCRIPTIONWRITERHINT;Enter the name of the person involved in writing, editing or correcting the description of the image. -!IPTCPANEL_HEADLINEHINT;Enter a brief publishable synopsis or summary of the contents of the image. -!IPTCPANEL_INSTRUCTIONSHINT;Enter information about embargoes, or other restrictions not covered by the Copyright field. -!IPTCPANEL_KEYWORDSHINT;Enter any number of keywords, terms or phrases used to express the subject matter in the image. -!IPTCPANEL_PROVINCE;Province or state -!IPTCPANEL_PROVINCEHINT;Enter the name of the province or state pictured in this image. -!IPTCPANEL_SOURCEHINT;Enter or edit the name of a person or party who has a role in the content supply chain, such as a person or entity from whom you received this image from. -!IPTCPANEL_SUPPCATEGORIES;Supplemental categories -!IPTCPANEL_SUPPCATEGORIESHINT;Further refines the subject of the image. -!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. -!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor -!MONITOR_PROFILE_SYSTEM;System default -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RETINEX;Retinex -!PREFERENCES_MONITOR;Monitor -!PREFERENCES_MONPROFILE;Default color profile -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PRINTER;Printer (Soft-Proofing) -!PREFERENCES_PROFILE_NONE;None -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!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. -!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_COLORTONING_NEUTRAL;Reset sliders -!TP_DIRPYRDENOISE_3X3;3×3 -!TP_DIRPYRDENOISE_3X3_SOFT;3×3 soft -!TP_DIRPYRDENOISE_5X5;5×5 -!TP_DIRPYRDENOISE_5X5_SOFT;5×5 soft -!TP_DIRPYRDENOISE_7X7;7×7 -!TP_DIRPYRDENOISE_9X9;9×9 -!TP_DIRPYRDENOISE_MET_TOOLTIP;Apply a median filter of the desired window size. The larger the window's size, the longer it takes.\n\n3×3 soft: treats 5 pixels in a 3×3 pixel window.\n3×3: treats 9 pixels in a 3×3 pixel window.\n5×5 soft: treats 13 pixels in a 5×5 pixel window.\n5×5: treats 25 pixels in a 5×5 pixel window.\n7×7: treats 49 pixels in a 7×7 pixel window.\n9×9: treats 81 pixels in a 9×9 pixel window.\n\nSometimes it is possible to achieve higher quality running several iterations with a smaller window size than one iteration with a larger one. -!TP_DIRPYRDENOISE_PASSES;Median iterations -!TP_DIRPYRDENOISE_PASSES_TOOLTIP;Applying three median filter iterations with a 3×3 window size often leads to better results than using one median filter iteration with a 7×7 window size. -!TP_DISTORTION_AUTO_TIP;Automatically corrects lens distortion in raw files by matching it against the embedded JPEG image if one exists and has had its lens disortion auto-corrected by the camera. -!TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapee is configured to look for Hald CLUT images, which are used for the Film Simulation tool, in a folder which is taking too long to load.\nGo to Preferences > Image Processing > Film Simulation\nto see which folder is being used. You should either point RawTherapee to a folder which contains only Hald CLUT images and nothing more, or to an empty folder if you don't want to use the Film Simulation tool.\n\nRead the Film Simulation article in RawPedia for more information.\n\nDo you want to cancel the scan now? -!TP_ICM_PROFILEINTENT;Rendering Intent -!TP_ICM_SAVEREFERENCE;Save Reference Image -!TP_NEUTRAL;Reset -!TP_RAWCACORR_CASTR;Strength -!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_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) -!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;L=f(L) -!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 -!TP_RETINEX_FREEGAMMA;Free gamma -!TP_RETINEX_GAIN;Gain -!TP_RETINEX_GAINOFFS;Gain and Offset (brightness) -!TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. -!TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. -!TP_RETINEX_GAMMA;Gamma -!TP_RETINEX_GAMMA_FREE;Free -!TP_RETINEX_GAMMA_HIGH;High -!TP_RETINEX_GAMMA_LOW;Low -!TP_RETINEX_GAMMA_MID;Middle -!TP_RETINEX_GAMMA_NONE;None -!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_GRAD;Transmission gradient -!TP_RETINEX_GRADS;Strength gradient -!TP_RETINEX_GRADS_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Strength is reduced when iterations increase, and conversely. -!TP_RETINEX_GRAD_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Variance and Threshold are reduced when iterations increase, and conversely. -!TP_RETINEX_HIGH;High -!TP_RETINEX_HIGHLIG;Highlight -!TP_RETINEX_HIGHLIGHT;Highlight threshold -!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_HSLSPACE_LIN;HSL-Linear -!TP_RETINEX_HSLSPACE_LOG;HSL-Logarithmic -!TP_RETINEX_ITER;Iterations (Tone-mapping) -!TP_RETINEX_ITERF;Tone mapping -!TP_RETINEX_ITER_TOOLTIP;Simulate a tone-mapping operator.\nHigh values increase the processing time. -!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_GAUS;Gaussian mask -!TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) -!TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) -!TP_RETINEX_MAP_METHOD_TOOLTIP;Use the mask generated by the Gaussian function above (Radius, Method) to reduce halos and artifacts.\n\nCurve only: apply a diagonal contrast curve on the mask.\nBeware of artifacts!\n\nGaussian mask: generate and use a Gaussian blur of the original mask.\nQuick.\n\nSharp mask: generate and use a wavelet on the original mask.\nSlow. -!TP_RETINEX_MAP_NONE;None -!TP_RETINEX_MEDIAN;Transmission median filter -!TP_RETINEX_METHOD;Method -!TP_RETINEX_METHOD_TOOLTIP;Low = Reinforce low light.\nUniform = Equalize action.\nHigh = Reinforce high light.\nHighlights = Remove magenta in highlights. -!TP_RETINEX_MLABEL;Restored haze-free Min=%1 Max=%2 -!TP_RETINEX_MLABEL_TOOLTIP;Should be near min=0 max=32768\nRestored image with no mixture. -!TP_RETINEX_NEIGHBOR;Radius -!TP_RETINEX_NEUTRAL;Reset -!TP_RETINEX_NEUTRAL_TIP;Reset all sliders and curves to their default values. -!TP_RETINEX_OFFSET;Offset (brightness) -!TP_RETINEX_SCALES;Gaussian gradient -!TP_RETINEX_SCALES_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Scale and radius are reduced when iterations increase, and conversely. -!TP_RETINEX_SETTINGS;Settings -!TP_RETINEX_SKAL;Scale -!TP_RETINEX_SLOPE;Free gamma slope -!TP_RETINEX_STRENGTH;Strength -!TP_RETINEX_THRESHOLD;Threshold -!TP_RETINEX_THRESHOLD_TOOLTIP;Limits in/out.\nIn = image source,\nOut = image gauss. -!TP_RETINEX_TLABEL;TM Min=%1 Max=%2 Mean=%3 Sigma=%4 -!TP_RETINEX_TLABEL2;TM Tm=%1 TM=%2 -!TP_RETINEX_TLABEL_TOOLTIP;Transmission map result.\nMin and Max are used by Variance.\nMean and Sigma.\nTm=Min TM=Max of transmission map. -!TP_RETINEX_TRANF;Transmission -!TP_RETINEX_TRANSMISSION;Transmission map -!TP_RETINEX_TRANSMISSION_TOOLTIP;Transmission according to transmission.\nAbscissa: transmission from negative values (min), mean, and positives values (max).\nOrdinate: amplification or reduction. -!TP_RETINEX_UNIFORM;Uniform -!TP_RETINEX_VARIANCE;Contrast -!TP_RETINEX_VARIANCE_TOOLTIP;Low variance increase local contrast and saturation, but can lead to artifacts. -!TP_RETINEX_VIEW;Process -!TP_RETINEX_VIEW_MASK;Mask -!TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible. -!TP_RETINEX_VIEW_NONE;Standard -!TP_RETINEX_VIEW_TRAN;Transmission - Auto -!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed -!TP_RETINEX_VIEW_UNSHARP;Unsharp mask diff --git a/rtengine/imagedata.cc b/rtengine/imagedata.cc index f8e257ddc..8dfd90ab3 100644 --- a/rtengine/imagedata.cc +++ b/rtengine/imagedata.cc @@ -46,8 +46,6 @@ ImageMetaData* ImageMetaData::fromFile (const Glib::ustring& fname, RawMetaDataL ImageData::ImageData (Glib::ustring fname, RawMetaDataLocation* ri) : iso_speed(0), aperture(0.), shutter(0.) { - - size_t dotpos = fname.find_last_of ('.'); root = nullptr; iptc = nullptr; @@ -72,7 +70,7 @@ ImageData::ImageData (Glib::ustring fname, RawMetaDataLocation* ri) : iso_speed( fclose (f); extractInfo (); } - } else if ((dotpos < fname.size() - 3 && !fname.casefold().compare (dotpos, 4, ".jpg")) || (dotpos < fname.size() - 4 && !fname.casefold().compare (dotpos, 5, ".jpeg"))) { + } else if (hasJpegExtension(fname)) { FILE* f = g_fopen (fname.c_str (), "rb"); if (f) { @@ -83,7 +81,7 @@ ImageData::ImageData (Glib::ustring fname, RawMetaDataLocation* ri) : iso_speed( iptc = iptc_data_new_from_jpeg_file (ff); fclose (ff); } - } else if ((dotpos < fname.size() - 3 && !fname.casefold().compare (dotpos, 4, ".tif")) || (dotpos < fname.size() - 4 && !fname.casefold().compare (dotpos, 5, ".tiff"))) { + } else if (hasTiffExtension(fname)) { FILE* f = g_fopen (fname.c_str (), "rb"); if (f) { diff --git a/rtengine/imageio.cc b/rtengine/imageio.cc index e886dabce..59f7cf541 100644 --- a/rtengine/imageio.cc +++ b/rtengine/imageio.cc @@ -1441,19 +1441,11 @@ void png_flush(png_structp png_ptr) int ImageIO::load (Glib::ustring fname) { - size_t lastdot = fname.find_last_of ('.'); - - if( Glib::ustring::npos == lastdot ) { - return IMIO_FILETYPENOTSUPPORTED; - } - - if (!fname.casefold().compare (lastdot, 4, ".png")) { + if (hasPngExtension(fname)) { return loadPNG (fname); - } else if (!fname.casefold().compare (lastdot, 4, ".jpg") || - !fname.casefold().compare (lastdot, 5, ".jpeg")) { + } else if (hasJpegExtension(fname)) { return loadJPEG (fname); - } else if (!fname.casefold().compare (lastdot, 4, ".tif") || - !fname.casefold().compare (lastdot, 5, ".tiff")) { + } else if (hasTiffExtension(fname)) { return loadTIFF (fname); } else { return IMIO_FILETYPENOTSUPPORTED; @@ -1462,20 +1454,11 @@ int ImageIO::load (Glib::ustring fname) int ImageIO::save (Glib::ustring fname) { - - size_t lastdot = fname.find_last_of ('.'); - - if( Glib::ustring::npos == lastdot ) { - return IMIO_FILETYPENOTSUPPORTED; - } - - if (!fname.casefold().compare (lastdot, 4, ".png")) { + if (hasPngExtension(fname)) { return savePNG (fname); - } else if (!fname.casefold().compare (lastdot, 4, ".jpg") || - !fname.casefold().compare (lastdot, 5, ".jpeg")) { + } else if (hasJpegExtension(fname)) { return saveJPEG (fname); - } else if (!fname.casefold().compare (lastdot, 4, ".tif") || - !fname.casefold().compare (lastdot, 5, ".tiff")) { + } else if (hasTiffExtension(fname)) { return saveTIFF (fname); } else { return IMIO_FILETYPENOTSUPPORTED; diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 218dbf6fe..f970e3a54 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -144,7 +144,6 @@ Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, Image8* image = new Image8 (cw, ch); Glib::ustring profile; - cmsHPROFILE oprof = iccStore->getProfile (profile); bool standard_gamma; @@ -159,6 +158,8 @@ Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, standard_gamma = false; } + cmsHPROFILE oprof = iccStore->getProfile (profile); + if (oprof) { cmsHPROFILE oprofG = oprof; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 1ac3cbed2..a3ea37bc1 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -5332,7 +5332,7 @@ int ProcParams::load (const Glib::ustring &fname, ParamsEdited* pedited) } if (keyFile.has_key ("Crop", "W")) { - crop.w = keyFile.get_integer ("Crop", "W"); + crop.w = std::max(keyFile.get_integer ("Crop", "W"),1); if (pedited) { pedited->crop.w = true; @@ -5340,7 +5340,7 @@ int ProcParams::load (const Glib::ustring &fname, ParamsEdited* pedited) } if (keyFile.has_key ("Crop", "H")) { - crop.h = keyFile.get_integer ("Crop", "H"); + crop.h = std::max(keyFile.get_integer ("Crop", "H"),1); if (pedited) { pedited->crop.h = true; diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index 6017a1ca6..601cbe89c 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -74,27 +74,19 @@ void StdImageSource::getSampleFormat (const Glib::ustring &fname, IIOSampleForma sFormat = IIOSF_UNKNOWN; sArrangement = IIOSA_UNKNOWN; - size_t lastdot = fname.find_last_of ('.'); - - if( Glib::ustring::npos == lastdot ) { - return; - } - - if (!fname.casefold().compare (lastdot, 4, ".jpg") || - !fname.casefold().compare (lastdot, 5, ".jpeg")) { + if (hasJpegExtension(fname)) { // For now, png and jpeg files are converted to unsigned short by the loader itself, // but there should be functions that read the sample format first, like the TIFF case below sFormat = IIOSF_UNSIGNED_CHAR; sArrangement = IIOSA_CHUNKY; return; - } else if (!fname.casefold().compare (lastdot, 4, ".png")) { + } else if (hasPngExtension(fname)) { int result = ImageIO::getPNGSampleFormat (fname, sFormat, sArrangement); if (result == IMIO_SUCCESS) { return; } - } else if (!fname.casefold().compare (lastdot, 4, ".tif") || - !fname.casefold().compare (lastdot, 5, ".tiff")) { + } else if (hasTiffExtension(fname)) { int result = ImageIO::getTIFFSampleFormat (fname, sFormat, sArrangement); if (result == IMIO_SUCCESS) { diff --git a/rtengine/utils.cc b/rtengine/utils.cc index b862e290f..f5b3e496b 100644 --- a/rtengine/utils.cc +++ b/rtengine/utils.cc @@ -29,7 +29,7 @@ using namespace std; namespace rtengine { -void poke255_uc(unsigned char* &dest, unsigned char r, unsigned char g, unsigned char b) +void poke255_uc(unsigned char*& dest, unsigned char r, unsigned char g, unsigned char b) { #if __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__ *(dest++) = b; @@ -44,7 +44,7 @@ void poke255_uc(unsigned char* &dest, unsigned char r, unsigned char g, unsigned #endif } -void poke01_d(unsigned char* &dest, double r, double g, double b) +void poke01_d(unsigned char*& dest, double r, double g, double b) { #if __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__ *(dest++) = (unsigned char)(b * 255.); @@ -59,7 +59,7 @@ void poke01_d(unsigned char* &dest, double r, double g, double b) #endif } -void poke01_f(unsigned char* &dest, float r, float g, float b) +void poke01_f(unsigned char*& dest, float r, float g, float b) { #if __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__ *(dest++) = (unsigned char)(b * 255.f); @@ -74,9 +74,8 @@ void poke01_f(unsigned char* &dest, float r, float g, float b) #endif } -void bilinearInterp (const unsigned char* src, int sw, int sh, unsigned char* dst, int dw, int dh) +void bilinearInterp(const unsigned char* src, int sw, int sh, unsigned char* dst, int dw, int dh) { - int ix = 0; for (int i = 0; i < dh; i++) { @@ -132,9 +131,8 @@ void bilinearInterp (const unsigned char* src, int sw, int sh, unsigned char* ds } } -void nearestInterp (const unsigned char* src, int sw, int sh, unsigned char* dst, int dw, int dh) +void nearestInterp(const unsigned char* src, int sw, int sh, unsigned char* dst, int dw, int dh) { - int ix = 0; for (int i = 0; i < dh; i++) { @@ -150,9 +148,8 @@ void nearestInterp (const unsigned char* src, int sw, int sh, unsigned char* dst } } -void rotate (unsigned char* img, int& w, int& h, int deg) +void rotate(unsigned char* img, int& w, int& h, int deg) { - if (deg == 0) { return; } @@ -186,13 +183,12 @@ void rotate (unsigned char* img, int& w, int& h, int deg) rotated[3 * (w * (h - i - 1) + w - j - 1) + 2] = img[ix++]; } - memcpy (img, rotated, 3 * w * h); - delete [] rotated; + memcpy(img, rotated, 3 * w * h); + delete[] rotated; } -void hflip (unsigned char* img, int w, int h) +void hflip(unsigned char* img, int w, int h) { - unsigned char* flipped = new unsigned char[3 * w * h]; int ix = 0; @@ -203,13 +199,12 @@ void hflip (unsigned char* img, int w, int h) flipped[3 * (w * i + w - 1 - j) + 2] = img[ix++]; } - memcpy (img, flipped, 3 * w * h); - delete [] flipped; + memcpy(img, flipped, 3 * w * h); + delete[] flipped; } -void vflip (unsigned char* img, int w, int h) +void vflip(unsigned char* img, int w, int h) { - unsigned char* flipped = new unsigned char[3 * w * h]; int ix = 0; @@ -220,10 +215,34 @@ void vflip (unsigned char* img, int w, int h) flipped[3 * (w * (h - 1 - i) + j) + 2] = img[ix++]; } - memcpy (img, flipped, 3 * w * h); - delete [] flipped; + memcpy(img, flipped, 3 * w * h); + delete[] flipped; +} + +Glib::ustring getFileExtension(const Glib::ustring& filename) +{ + const Glib::ustring::size_type lastdot_pos = filename.find_last_of('.'); + return + lastdot_pos != Glib::ustring::npos + ? filename.substr(lastdot_pos + 1).lowercase() + : Glib::ustring(); +} + +bool hasJpegExtension(const Glib::ustring& filename) +{ + const Glib::ustring extension = getFileExtension(filename); + return extension == "jpg" || extension == "jpeg"; +} + +bool hasTiffExtension(const Glib::ustring& filename) +{ + const Glib::ustring extension = getFileExtension(filename); + return extension == "tif" || extension == "tiff"; +} + +bool hasPngExtension(const Glib::ustring& filename) +{ + return getFileExtension(filename) == "png"; } } - - diff --git a/rtengine/utils.h b/rtengine/utils.h index c46999219..b2c1d16a8 100644 --- a/rtengine/utils.h +++ b/rtengine/utils.h @@ -19,22 +19,23 @@ #pragma once #include +#include namespace rtengine { -// update a point of a Cairo::Surface by accessing the raw data -void poke255_uc(unsigned char* &dest, unsigned char r, unsigned char g, unsigned char b); -// update a point of a Cairo::Surface by accessing the raw data -void poke01_d(unsigned char* &dest, double r, double g, double b); -// update a point of a Cairo::Surface by accessing the raw data -void poke01_f(unsigned char* &dest, float r, float g, float b); +// Update a point of a Cairo::Surface by accessing the raw data +void poke255_uc(unsigned char*& dest, unsigned char r, unsigned char g, unsigned char b); +// Update a point of a Cairo::Surface by accessing the raw data +void poke01_d(unsigned char*& dest, double r, double g, double b); +// Update a point of a Cairo::Surface by accessing the raw data +void poke01_f(unsigned char*& dest, float r, float g, float b); -void bilinearInterp (const unsigned char* src, int sw, int sh, unsigned char* dst, int dw, int dh); -void nearestInterp (const unsigned char* src, int sw, int sh, unsigned char* dst, int dw, int dh); -void rotate (unsigned char* img, int& w, int& h, int deg); -void hflip (unsigned char* img, int w, int h); -void vflip (unsigned char* img, int w, int h); +void bilinearInterp(const unsigned char* src, int sw, int sh, unsigned char* dst, int dw, int dh); +void nearestInterp(const unsigned char* src, int sw, int sh, unsigned char* dst, int dw, int dh); +void rotate(unsigned char* img, int& w, int& h, int deg); +void hflip(unsigned char* img, int w, int h); +void vflip(unsigned char* img, int w, int h); template typename std::underlying_type::type toUnderlying(ENUM value) @@ -42,4 +43,13 @@ typename std::underlying_type::type toUnderlying(ENUM value) return static_cast::type>(value); } +// Return lower case extension without the "." or "" if the given name contains no "." +Glib::ustring getFileExtension(const Glib::ustring& filename); +// Return true if file has .jpeg or .jpg extension (ignoring case) +bool hasJpegExtension(const Glib::ustring& filename); +// Return true if file has .tiff or .tif extension (ignoring case) +bool hasTiffExtension(const Glib::ustring& filename); +// Return true if file has .png extension (ignoring case) +bool hasPngExtension(const Glib::ustring& filename); + } diff --git a/rtgui/crop.cc b/rtgui/crop.cc index b18b31ea2..e428596f8 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -210,10 +210,10 @@ Crop::Crop (): FoldableToolPanel(this, "crop", M("TP_CROP_LABEL"), false, true) guide->append (M("TP_CROP_GTEPASSPORT")); guide->set_active (0); - w->set_range (0, maxw); - h->set_range (0, maxh); - x->set_range (0, maxw); - y->set_range (0, maxh); + w->set_range (1, maxw); + h->set_range (1, maxh); + x->set_range (0, maxw - 1); + y->set_range (0, maxh - 1); x->set_digits (0); x->set_increments (1, 100); @@ -328,8 +328,8 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) x->set_value (pp->crop.x); y->set_value (pp->crop.y); - w->set_value (pp->crop.w); - h->set_value (pp->crop.h); + w->set_value (std::max(pp->crop.w,1)); + h->set_value (std::max(pp->crop.h,1)); nx = pp->crop.x; ny = pp->crop.y; @@ -704,10 +704,10 @@ void Crop::setDimensions (int mw, int mh) bool wconnWasBlocked = wconn.block (true); bool hconnWasBlocked = hconn.block (true); - w->set_range (0, maxw); - h->set_range (0, maxh); - x->set_range (0, maxw); - y->set_range (0, maxh); + w->set_range (1, maxw); + h->set_range (1, maxh); + x->set_range (0, maxw - 1); + y->set_range (0, maxh - 1); if (!xconnWasBlocked) { xconn.block (false); diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 15c6e60c8..9f07c1db6 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -1852,10 +1852,14 @@ void Preferences::fillPreferences () if (Glib::file_test (moptions.gimpDir, Glib::FILE_TEST_IS_DIR)) { gimpDir->set_current_folder (moptions.gimpDir); + } else { + gimpDir->set_current_folder (""); } if (Glib::file_test (moptions.psDir, Glib::FILE_TEST_IS_DIR)) { psDir->set_current_folder (moptions.psDir); + } else { + psDir->set_current_folder (""); } #elif defined __APPLE__ diff --git a/rtgui/profilestore.cc b/rtgui/profilestore.cc index 68321e985..fbc55d6e0 100644 --- a/rtgui/profilestore.cc +++ b/rtgui/profilestore.cc @@ -269,7 +269,6 @@ int ProfileStore::findFolderId(const Glib::ustring &path) */ const ProfileStoreEntry* ProfileStore::findEntryFromFullPathU(Glib::ustring path) { - if (path.empty()) { return nullptr; } @@ -278,12 +277,18 @@ const ProfileStoreEntry* ProfileStore::findEntryFromFullPathU(Glib::ustring path return internalDefaultEntry; } - size_t lastdot = path.find_last_of ('.'); + // consistently apply casefold() to make sure dot position is correct + const Glib::ustring casefolded_path = path.casefold(); + const Glib::ustring::size_type lastdot_pos = casefolded_path.find_last_of('.'); - if (lastdot != Glib::ustring::npos && lastdot <= path.size() - 4 && !path.casefold().compare (lastdot, 4, paramFileExtension)) - // removing the extension + if ( + lastdot_pos != Glib::ustring::npos + && lastdot_pos <= casefolded_path.size() - 4 + && !casefolded_path.compare(lastdot_pos, 4, paramFileExtension)) { - path = path.substr(0, lastdot); + // removing the extension + // now use dot position without casefold() + path = path.substr(0, path.find_last_of('.')); } // dir separator may come from options file and may be \ or /, we convert them to G_DIR_SEPARATOR_S diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc index a466e8500..1847e2736 100644 --- a/rtgui/retinex.cc +++ b/rtgui/retinex.cc @@ -863,14 +863,16 @@ void Retinex::read (const ProcParams* pp, const ParamsEdited* pedited) skal->setValue (pp->retinex.skal); - if(pp->retinex.iter == 1) { - grad->set_sensitive(false); - scal->set_sensitive(false); - grads->set_sensitive(false); - } else { - grad->set_sensitive(true); - scal->set_sensitive(true); - grads->set_sensitive(true); + if (!batchMode) { + if(pp->retinex.iter == 1) { + grad->set_sensitive(false); + scal->set_sensitive(false); + grads->set_sensitive(false); + } else { + grad->set_sensitive(true); + scal->set_sensitive(true); + grads->set_sensitive(true); + } } setEnabled (pp->retinex.enabled); @@ -1138,7 +1140,7 @@ void Retinex::mapMethodChanged() shadows->hide(); s_tonalwidth->hide(); radius->hide(); - + } } } @@ -1149,7 +1151,6 @@ void Retinex::mapMethodChanged() void Retinex::viewMethodChanged() { - if (!batchMode) { if(viewMethod->get_active_row_number() == 1 || viewMethod->get_active_row_number() == 2) { //vart->hide(); @@ -1172,7 +1173,6 @@ void Retinex::viewMethodChanged() gain->hide(); offs->hide(); transmissionCurveEditorG->show(); - //vart->hide(); curveEditorGH->hide(); } else { @@ -1373,21 +1373,22 @@ void Retinex::setAdjusterBehavior (bool strAdd, bool neighAdd, bool limdAdd, boo void Retinex::adjusterChanged (Adjuster* a, double newval) { + if (a==iter && !batchMode) { + if(iter->getIntValue() > 1) { + scal->set_sensitive(true); + grad->set_sensitive(true); + grads->set_sensitive(true); + } else { + scal->set_sensitive(false); + grad->set_sensitive(false); + grads->set_sensitive(false); + } + } + if (!listener || !getEnabled()) { return; } - if(iter->getTextValue() > "1") { - scal->set_sensitive(true); - grad->set_sensitive(true); - grads->set_sensitive(true); - } else { - scal->set_sensitive(false); - grad->set_sensitive(false); - grads->set_sensitive(false); - } - - if (a == neigh) { listener->panelChanged (EvLneigh, neigh->getTextValue()); } else if (a == str) {