From 4fbb0cd3ebe83d6926febae271c8a5d0e101912c Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Wed, 24 Oct 2018 12:03:15 +0200 Subject: [PATCH 001/116] DNG: use black/white levels and matrix from the file, unless it comes from the Adobe DNG Converter See #4472 --- rtengine/dcraw.cc | 19 ++++++++++-------- rtengine/dcraw.h | 16 +++++++-------- rtengine/rawimage.cc | 47 +++++++++++++++++++++++++++++++++----------- 3 files changed, 54 insertions(+), 28 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 035dab2b2..99d006744 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -6113,6 +6113,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) || @@ -6395,15 +6396,18 @@ guess_cfa_pc: cblack[6+c] = getreal(type); } black = 0; + RT_blacklevel_from_constant = ThreeValBool::F; break; case 50715: /* BlackLevelDeltaH */ case 50716: /* BlackLevelDeltaV */ 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); @@ -6541,8 +6545,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; } @@ -10042,12 +10044,13 @@ 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; } diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h index 9c6ac4aec..e1b296dbf 100644 --- a/rtengine/dcraw.h +++ b/rtengine/dcraw.h @@ -55,10 +55,9 @@ 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) ,getbithuff(this,ifp,zero_after_ff) ,nikbithuff(ifp) { @@ -150,10 +149,11 @@ 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; float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4]; diff --git a/rtengine/rawimage.cc b/rtengine/rawimage.cc index 6ef110a03..131b04156 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() @@ -599,14 +599,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()) { @@ -1049,6 +1049,15 @@ 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 @@ -1056,9 +1065,15 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is // 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; + 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,8 +1081,12 @@ 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()) { const short *mx = cc->get_dcrawMatrix(); @@ -1086,8 +1105,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]; From ce4377d7e533046c140c77c967250cedf58df965 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sun, 28 Oct 2018 09:39:57 +0100 Subject: [PATCH 002/116] Initial support for uncompressed 16-bit float DNGs --- rtengine/dcraw.cc | 44 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 99d006744..6bb238396 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -30,6 +30,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 @@ -1170,23 +1174,37 @@ 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); + 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 { 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); } @@ -10086,7 +10104,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; @@ -10169,8 +10194,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 @@ -10202,9 +10227,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; From c63633a76db4f556a460c5b3fcbc683a874fa0a2 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sun, 28 Oct 2018 10:15:59 +0100 Subject: [PATCH 003/116] support for uncompressed 32-bit float DNGs --- rtengine/dcraw.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 6bb238396..81013bc0b 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -1175,14 +1175,15 @@ 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); + 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()"); @@ -1196,6 +1197,14 @@ void CLASS packed_dng_load_raw() 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++) From 632c1362c82045d78767e9a835b75b235893092f Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sun, 28 Oct 2018 17:32:15 +0100 Subject: [PATCH 004/116] DNG: honour the BaselineExposure tag --- rtengine/dcraw.cc | 3 +++ rtengine/dcraw.h | 2 ++ rtengine/rawimage.h | 2 ++ rtengine/rawimagesource.cc | 5 +++++ rtengine/rtthumbnail.cc | 1 + 5 files changed, 13 insertions(+) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 81013bc0b..943d5a96a 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -6463,6 +6463,9 @@ guess_cfa_pc: xyz[2] = 1 - xyz[0] - xyz[1]; FORC3 xyz[c] /= d65_white[c]; break; + case 50730: /* BaselineExposure */ + if (dng_version) RT_baseline_exposure = getreal(type); + break; case 50740: /* DNGPrivateData */ if (dng_version) break; parse_minolta (j = get4()+base); diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h index e1b296dbf..c3794ea5f 100644 --- a/rtengine/dcraw.h +++ b/rtengine/dcraw.h @@ -58,6 +58,7 @@ public: ,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) { @@ -154,6 +155,7 @@ protected: 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]; diff --git a/rtengine/rawimage.h b/rtengine/rawimage.h index 7595ad196..f6b8190e4 100644 --- a/rtengine/rawimage.h +++ b/rtengine/rawimage.h @@ -125,6 +125,8 @@ public: 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 502da8073..c917ac179 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) { diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index afd8836a1..dd8ca4a99 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -567,6 +567,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; From 6877360913801c2810d1050b1ef841a8f8cdfbb3 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Tue, 30 Oct 2018 14:36:56 +0100 Subject: [PATCH 005/116] DNG: use embedded black and white levels also from files generated by Adobe We only override the colour matrix for Adobe DNG Converter (to ensure a consistent look between dng an native raw) --- rtengine/dcraw.cc | 31 ++++++++++++++++++++++++++----- rtengine/rawimage.cc | 30 +++++++++++++++--------------- 2 files changed, 41 insertions(+), 20 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 943d5a96a..d0a267121 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -6409,6 +6409,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); @@ -6423,7 +6424,6 @@ guess_cfa_pc: cblack[6+c] = getreal(type); } black = 0; - RT_blacklevel_from_constant = ThreeValBool::F; break; case 50715: /* BlackLevelDeltaH */ case 50716: /* BlackLevelDeltaV */ @@ -8632,11 +8632,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); @@ -10082,7 +10102,8 @@ dng_skip: * 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); diff --git a/rtengine/rawimage.cc b/rtengine/rawimage.cc index 131b04156..2fd4d7dc8 100644 --- a/rtengine/rawimage.cc +++ b/rtengine/rawimage.cc @@ -1060,20 +1060,20 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is } 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). - 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; - } + // // 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. @@ -1088,7 +1088,7 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is *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++) { From c5c04769e4e55729d5d7bf8a2612df3554fdff53 Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Sun, 11 Nov 2018 14:34:45 +0100 Subject: [PATCH 006/116] Improvments to ICC profile creator --- rtdata/iccprofiles/output/RTv2_Medium.icc | Bin 25508 -> 884 bytes rtdata/iccprofiles/output/RTv2_sRGB.icc | Bin 25504 -> 25452 bytes rtdata/iccprofiles/output/RTv4_Medium.icc | Bin 764 -> 680 bytes rtdata/iccprofiles/output/RTv4_sRGB.icc | Bin 760 -> 752 bytes rtgui/iccprofilecreator.cc | 396 ++++++++++++++++------ rtgui/iccprofilecreator.h | 2 +- rtgui/preferences.cc | 9 +- 7 files changed, 306 insertions(+), 101 deletions(-) diff --git a/rtdata/iccprofiles/output/RTv2_Medium.icc b/rtdata/iccprofiles/output/RTv2_Medium.icc index 59bdf67067282c5abe83384f4e41303e901d0cdb..cc1f37d1d9fd8f5a9c01eb00d7a96e77cd5760e0 100644 GIT binary patch literal 884 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 diff --git a/rtdata/iccprofiles/output/RTv2_sRGB.icc b/rtdata/iccprofiles/output/RTv2_sRGB.icc index 5efc365f8e881f8b9e132538a324d16652203cf3..e311e5d71e11af3f0cd72c78ca2f23bbc23fff16 100644 GIT binary patch literal 25452 zcmeI5S5y>R!=`st=L}6ZIp-$loO6(j(tn6XPAt zjRf7?Jp?gR00|&~2U-B*AD9qp<7DOxwl~4;?a%(dZ)=aX$8K*^vVYF?-{1S+z9I$% zCj>ul$$ps46Sd3HNz1w{NA6X^E$n7`+U)Z)XMYKZpI-@c;9DVsOg# zyZ|tciQN;wD>N)o(9wUlb69Y^e{68Dppt^3hK!)Gu>$yW&Hnk8n9~4gtO9^I`tPxT zlK@=G1Az0%zsE#t0ifgp&@&O36rcRhXSbJbd%*#`eeF>I4KM(=eFqQ#5s(38`!}-! zHb4V(zz#S87vKgwfEVxs0U)^ji$#Da5Ch^s5-@-ikOs2bt0TX?7Jt@61*igbpaC?u z?@Mb^=%62Hb%M@B-ez2lxVi z5C8%}5D3{`{V=c#M1V*T1)@O=hy(H4*C7!kgWVtn>;b7D4Wxq%kOi{AK9B?QziV$3QVC0cGGgI04E*1*im7pc>SGT2Kd0g9gwDn!p**3|hcB&J;m>)-~s32uQq;4T;iV_+OifcxM9m;%$_ zA(#QP;4yd#=D;)X9J~N8!7K0vEP%IQ3A_Uzz(?>2d@c2MfSLum~&;OTtpH3@i^T!pg8JtO0AmI5HW(diMWFp zLrfqh5f2fwh&jYO;uT^6v4r@5_>B09SVjCm{6=gcVI&HPMG}w{Bo#?Vaw2(=0!U$` zIFf;sLCPbQk!nayq%P6`X^b>SS|M$a4oGLDE7B9`gA70hBg2r9$QWb-G8wrSnU2gt z<{}Ru3y?*~Vq_WeB(e%wi>ybULAD^zBRi1Y$X;YWau9h9c?)?LIgWgQe29FEoI}1q zzD6!0KOmQpUy-ZGpU4dqKp|0B6ahs+v7tCn+$esOFiH%?K*^#MQ7R}6ln%-OWsEXM zS)=SwPAC_Y2g(N(fC@o{qoPo8s3g=LR5~gfm4`ZrDnuPcm7>Z~Rj6821F9L-ifTu7 zp?XpMs6o^<)GgE~Y63Ndnn689&7-HPr&ccU+(2hbzvo9I#W1bP}hi=IQjL@%J=G7#ROr(Fj1H|Ofn`FlZna2{a z70ZF;#R_4?vC>!ttSVL$tA{nlT3~Ikj#yW$7uFvef{nn&Vw13Yv6T6hDzDc%}y zk9Wa);{EZV_(*&_J_VnS&%x*8i}0oR3VaQ|5q}Qfj_<+ux1R;))Oh_Z_BOD|Y z5lRUagjzxqp_R}{=p_sgt`qJO?h|GR&j_yx?+Bj>tAyV~h=?JQh-^e|q99S6C__{t zY7q5_rbKI^1JRY}LkuE@6Jv?V#B^c~F`syZc$`>8JWV`Hyg=+G_7g{lw}}(Phs3AE zSHvaaGI5pon*@`vBr=Ik;vor>BuVllRgyNzh-5*sBkd%4kpf7&NHL^jQW`0Tbcl46 zbb?e(Y9O_cI!L{w0n!c9C~1=Pm^4p%OZr6mM*2mD$QUx2Oegb@g~<%E0$Gi$OEw`} zlO4!zWM6U!If|S>-b>CVA0!_kmyxT;_2d?E2f3F#NWMuPBTtc^kYAFQ$e+n;-Ws6gP@5C4>@1Nu;Dw_E8Q|j#0`fHIybw8>NfVN4ZA1 zOL;(_QkE&Jl)qRIECd!R3m1zZizJIYiyDhAiz&+v7AF=@mH?JrEO9I;ESW3^ zSc+K6SgKhXSXx;wvRq*qVY$QdfMu3to@J3`nPrV-gB8U}WTmn4u!^usu`01@vKq2l zvf8t{vHG%xvPQEevu3d7u^whEWvyauU_Hlrk+qL?g!L}#Bj|Ks1j6psv1>~YDTrCx=_8T!PF>f5;dKgM?Fj}rB+cJsIAm4YCrWlb&NVqouj^? zex!b<{>6r5BeK!hc-chRWY|>Lbl6PTcCb0Kd9ektMY1KbrLpC*6|$AFRkJm+wXt=x zU1ht;HqQ2l?K#_9wq>?;wk;ZlMxk-i1Zk2q1)3(!kY-79q3it= z=!fVf^h$aIy^Y>YAE4i)Pta%SFX->+U+KTu5$r^EIy)b`IJ-Q%2D<^fCA%ZLCwm}! zBzqEj2Kxc_Bkbkub?hzd7uoySZ?NBEf5bk|zQn%5{)+>_LFAxw@N-CTC~#2I&pe&26IMprf_C+9^x$FtmbUuyuf*xbA)r0^C9PR&PC1@&R<*zE)o|zmmn8| zONmQ|%aqHG%Z)35D}pPLD}(C**DgaQTh1z zB={8hwE4{V?D;(Sg85?j_VDHM74enx)$_ISUE&+z8{>P#_mb}e-x@#Q$Me(q1^A`- zRrvM!E%}}KefW3rC-7(RALK9LujX&&@8rMAf17`j{~7-x|5yGE0gM1ufLB05KuJJH zz+Avlz*`_xAYLF{;DA7}K(#=#K&QY}f!hL80?!1N1ilGu3gQH5g8YIEK@~xLK`X(X zf_{P#f=Pl|f(3%d1?vP`1uqGX2;LK%6?`qYEcjChDMS(C77`Ou5YiSh6LJvp777ze z5XunB7b+F15o!_Y78({B6PgivCG<(?r!Z2OBFrr;Cafr|BWy10B%tSlPlVqJuLy65U`5zO1Vp4n)IAypuCLaITkLux>3RBA@*jns6N)5Gb!^z=9A1XS&S@AR#;YER!7!S)>Sr0HcmD}wovw@Y?Ex4?6B;( z?40a7*)=(&9IKpwoQ#~NoVlE{T!37RT)NyLxpKKixlXwuxqEU?<=)Ay$s^@itHQ1#rlPE3sA8|;qY|Z(s*v}1eX4g=XH^$f*VK?|Y-+-43Tpal zwrbvL5o&wY^3}@Kn$)`0uB%O{y;56I+fpa1^Qp_IYpYwSyQ_z(C#&bFm#WvRcd8Go z-&dbkUsm7HAZqYvNNH$lSZKIvglHsbj*`;|+b5iq_=86{3V$l-NlGD=DveEL=iquNgD$uIXI;(YA>$cXc z)}q$BHd>pmEvBuaZKCa@9jKk4y-&MXyH2}9dr14f_Pq9I?JXU$4!@3^j;@Z4j<-&v zPMS`kPNmK{oj#pWohLf)b$;pMb-8pIx|+I{y6(DRx+%H`b<1^|b$fMh>(1yd>aOcy z^f>e+^wjmt^<4Er^>*tW&^w`bM(>i|Exj4NMZI->j6R3Hguc4IxxSlzn0|`>LH%<5 zX8m6MJNl3H-|7D}z!`8GNEv7uSQ&U4L>QzR6dF_+v>Nmq+%tG)uxzktNH!EOlsD8j zv^VrKj5EwOEH*rC*lBppaLVwF;ddjH5#31KNX^LH$jvCsXpd38QH4>9QJ>M6(VWpI zqfKM7v4F9Hv4OFJae#5WagK4Raiej!@lE3y<0a#tCO8vr6KNA26B`q6lW3DnlcOee zCY>hNOr}j1Ox8@%rW~e{rkbW!rk#jN zW>IDtW=G6w%{t6R%%;s2%+|~?=A7nI=Gx{v%zeyb%(Kjonb(_lncpy1Tvp8l{?yY4DNWa}>7)>=Nwq>`vIV*!9~@*uAv-ZjZL-vX{2kv$wYov`?}>XkTI9W2Td)#^Jrgh9kvM*iqHd!qLMq$}!8a#Ieb-*KySGx#Nlx z(uu=K%1Ot`&MCkt$?2d|rPFz*VW(-QMW}QL znQ~cl`Q=J-6>?Q^wQ%)xjdtDVTIPDzwcqu=>uc9_H@q9ao06NUo4Z@2Tb5gi+Zne$ zw{f>uZfov1cRqJTcN2Fv_el3l_Y(Ir?tSj#?yua}Jn$ZT9*Q2O9_}7d9@!qH9?c&8 z9``-oc>M4rdJ1}~cv^URdd7I>c%JY)=Q-#(<+t2t&K6yjlbZ>^YuD7Fii1%LaBJb1Qm%K;4=e@uCV10Of6nsp5+)sU%>rI3wKwou7X zy-=snu+WUqlF+lE1EJHQ??Si2Xkk)e24OqHBEqu5j)$EK8xETZ`?w3<#kos%m+>z5 zUD3O8cUA1VuX(h!MgO8WFY;K@oc+ zjz%;^^hZoaEJbWa(juiI4I*74BO~`kmPekCydL=^awQ5A#TTUyh-?-NKIrU8YH?VMknSa zRwZ6cyqowk@kbIRNjyn6$vG(^Xc8l)T-tDwIe0TQlle^n@-`YLDdo6{WB9@|);+ztZl9N)A(wTB6o`JuG`9 z_UP|%*%Q4dZ%_4}?mc6B-t76kmu;`~UZcGpd*k=!@2%T=dGGzbOQ|50GgUs-Jk>XK zcWO~;Q|dtKqtxXzbQ*t}YMM=2a9Vm=Sz24#jkITJtLdb4v2@+^o#|2OdFj>Z-Rbwz z7t%K}=ozvZrWxKDNf|{MO&J3jk201s(U}67>X~+#p_!SP<(ci7w=-X4{>);{Vq_U* zd1S?B6=c^JS}L+h&JkXJ((sZqL4*{WAOKKI%THea8Dd_a*K-ysvTJ zz`jTOKIdR_1amZV9CN~Ra&oG2x^nL2yv^Cn<;YdYwag93-J4sI+nReL_j&GG9wkpQ z&oIv;FCnimuQBgx-lM$F`?33l_G|5T+8?<;Z~v+Nm-gS^|Ly>MfcJpv0owzi2eJ;F zJkWVy^uU_~n+G`#Djc*t7;rG{VA;X*2X7sGdGJ?0TfR)bS-x+6N`7(vx%}(-&-2$0 zu^y5-WPHf`Q1YRpht3|lc4+RN8i+qYwii(R`i*6RZDEf7T zc0}%o#gTv`sYl9=TsU&)$m=5;M>&ov9o=y>ilbde$B!-@gOBkZQ$OZ#EaF(+ zv6^F-k4+z2F2)uM7wZs zk1w16CwNY%ov=Rs7l~CsrS=K39FK`c?JjDXvqhr|eHfo;q-<{?x#! zC#P0xSZiczENX&kGHWVpF4audEZ5>|#cB;}y=zlyOKaO}$7&br5Oo4|+I6mV@pVOY zEp<2RUe#@$<~pr<+TnE6>HO1;r-x5JJN>hsUawehQ@^V|ufDGSYW?H-)dtoE*#^so zkcNE?ry8y_JZkvbNN$vFG;a)S%xtV|>}{NG{L(~fVl`c;RT-ysTayG zbYGad@THy9F4b<)9^AgKy|(>o`;+z`9rO;R4*QO%j)IQnjvF1XJ3%LZr*@}%XL4t0 zXGiBm=f{iqixL-2F9u%Bx_Ihh-^Irl*Slz4N?rC{QC$UHXS;58z3GO#1-o^-J-hdG zpXl!Dp6ve8L++93vFZuy$?K`_8Sa_y*|@}WN%NBHrKC$GmpU#@T>8{Y=wlrvGyOOE-&}>S3SHH|>T@;iYUS0-S7)!T4bTTv1{??C z296AzAGkO0VGuva7_=A+8O$4O7`!(4atI6w4CxJd4W$lM3|$_Y9aYC^^<7)xevai)$8@e`sZSy+cb)D;8*Hf=o zT)%vM_WF+-95>W%?7We5qx8nb8&fyF-ekS0c+>u7%*`V=&)*!s`RNw%mdq{dTM@So z-DPx|4IK{?4^KukONkh3^{O^}m~a zx9;xn-4~-^RB+T_)NeF%v}Sa0bbfSeOkhlZ%y%qv?9|x6*z>W?d;ItG?)luyxOeK_ zz`glqx%8(_ua3*f9?M3 z2gnDa4@@2eKgfH~_~7P)x09GjiAjseu*v+%vy*ox-%k;yq^EXFMNS=_YMUCL`aDgU zR+zS*j+-u??wp>Q{{E2mQ1zk9!`%;0JnVh=_~EZdJdd;=c|A&hbn4OIqZcz^Mrg)p zCU7Qqrg7%x%;GF|mN9EJ8!=lr+crBs`}r};W5vggj}so3KJI=z^Z3UTt|wYgJfEaJ zIrU`l$&07ZQ<0}8PlKQCf7<-?&eQjE#5vhH+qu}eV{@Hz({roOIG$-dbAOiltm@go zv-#)HbK&PE&x4;Ic;5W{?(>iHqqVC1D7Yi@Z zFC|}Ey^MTW^zy>X2QR<9qQ6pq<^C%5Rn@D3S1(?}uSH**y$*YQ=ymJs@z-D8P~WJ$ zae0&Srs7TioB0K3L1e*nA#@>s;oQRb!k4$yw<>R4-tKu@`S$AD`9*k9bkS^a*J8n9 z+v5GjuS>Kg^(FVEw53x^LrbsUq25Wpvw9cx?#R2&chm3I-*dg!dGGr^`+dXvoA2L! zAbybh;P4^w!|@N7Kg@mD{3!I%US{r`k`~J}oR`m!+3& zm*bX8moF_pS>E_8_}Tb#$mjget)C}8fBi!LqVdJ^OU9SFFE_p{tq@k^RvcCmSISrV zR-S)_zKVXe_!{xG=xgWKhhKkuFXlUs@%s z%C9=ECa<1cy}J5h4Y?+0+dbxqxU~JfI#BUtmxU%tl6W)~AwBC%_EZywgoZA9hVq2D5QCr1Z zJzGz=wwNpclLcV108AEu$pSE00458-WC55g0Fwn^vH(mLfXMssm|g&; z7l7#nV0r=eV0hnF@rWb(e1z>ssm|g&;7l7#nV0r_=z*9-7(Z@@Q)?S_EumH_s#e|j7KZVsUT-IK8W_lSSH z68X+U|R;$r%QQob!-#&N*kvK{AqaMzVq^DnYVlj4#X`VK?0ComFZ=;wcR;J@_OzdGz6 zjlljB?-+0f0U#B)f^ZN55*Rv;(f`loe~10Q_y2W& z)*9{ zf6wi|rhn1@=R86j$Nw`HTM2;XD&tHX`p=kHBLI{F0ER~YGZxqez}Z6pa6Jo3PDuIJ zdMtlCh;izX00qzh18@Kj2#nn)Gu{yv##_P$*Z~c204~4{cmOZstq}l%j13S5qCgCY z0|_7n=s+6C06E43P+qa`oI7fGPcnKm;y7#hFStEU=3`6 z9k2%uz>%@ZE{v151GobZ;0e5d5AX$kj7<*!fglJ3gHXmp4+pzIB!~jhAO^&Oc*dDb z1W6!;aYoZXI>-cBARFukxgZbZg91AIA zE`xD!6-!6x_yzJo3B6KsRu;12{rFoc9q5C+0Rc!&UzATmUOSRpFJ z4$&Y^hzsI@cp-jB5E6n!AW=vhl7OTjIwS+hLGq9yqy(uzs*pOQ328w(kS?ST8A3*o z31kMDLza*=WCPhj4v-_{47ox(Aa}?U@`8LIKWHZu00luIP#6>rMLV{51y-+_i01ZLI(0S+rbO{=R#-XdwHRuL(3%UbMLQ~K*^Zam<#5C`C&m=7#4-a zVJTP|mWAbEC0GSkgEe7oSQplZjbIbl47P-=VO!V%c7k1CH`oLAf_-6sH~3HSzl3%(2AgQww#@GSfUeg-eXFX314GW-ty0Dpql;SKm3yajK= ze-JPNg}@^42oiz?!G@qAxDdPu0fZ1j6d{42BV-Zs2qlCnLIa_V&_fs?j1guCON0%= z9^r&=MYth65k3fiL?9vr5srvN#314kNr+TL1|l1gi^xY5A&L>Dh%&@sL?xmIQI9x^ zXhF0hIuKom9z-wV3}Ogz4sii7iWo;sAZ{Y=AnqZi5f2e_h^L4}#7o3$#9PFB#42JP zv4QxG_=)(9gpnvD7D+%-kW?fM$%W)Y3L-_2;z&AD7O8+#L8>FQka|c%qzTdjX^pf) zIw4(=?nrN>A2JXbf(%DSA!Ct=$P{EcG8>tTEJW@_mLkiL<;W^zEwTaGj69C)Kz1Qd zA^VVn$YJCKs%}2XY$)P)HOOML9CHYf*_Gs+F+h4MoMqC!!-P|>J(R5B_Z zm5s_n6{3n!`%#Bbm8cq21F9L-it0plqfVpFpw6O3P@||TsOzZPsC%dx)GX>LY7w=B zT1LG`t)af6zN3Dj0UC+MqKRl0G&`CL&4(67i=*jiIkXa54XuUNM;oKf(bi~tvf(YrUY{UQ;w;|)MJ`4ZI~07Q3-bqy#Nx0dEEUU%<--bNC9pDB1*|Go3#*Sc!CGSN zu+CU_tPeH-8;Xs@#$l7O8Q2_bA+`ithONNXU>mW=upQWLY#(+AJAxgudplFRqPk+ckDI}fy3fRI4X`4$Bz@iN#bO2N;nOiF3t#Nj-f9)8T=f60sjjB4*v2p9s9KqYVy1PEdTX@UYl zji5s?B3KaY2rdLqf}kutNAm*dY8QLPQLaL}Vj!6NQKpL|LLTQIn`oG$Yy&orvy4Ut%yZf*40kA!ZW` zh$X~>#3RH8;xS?;@icLeI6@pJ-XKmA9}=GuUl89CSBV?MpCpKcC6P%q5-&-ZBt?=Z zsgZO@#w1IU18E1zhZIQKMT#Y*kg`Yxq!Q90QZ=cO)Jp0i^^wk!E|Dfkw@K5a$D~El z8`1~T7t$6PB4fy8GL6hj79rEg3S@P%9@&&^O?D!Ckp0P_E+&_etH=%H zH3V}kUa8raRk`#H08bz04Lb0YeQ9LOA zlu$}EC5e(r$)}W14pC|-O_X*@4`qNdLK&yrqTHvslwT|e7CZ};g_}i) zMUq8D#gxUC#f8O-C6HwoOB_oYOAgB(mNJ$qmPVFVmXj=JSkAMIv)p8vVwq!E zWLaieW!YreW<{|QS=m{6Sw&f;S(RC}SdCaMSshv3S^ZhVSYudIShHD+SP!sPvNo`` zvYuo;!#ct`&U%Y=n)Na33)U6ZHP-J`K*driR8FcORgx-CRj2Ax&8ha(9aLXx2sN6T zOwFbiQTJ0TsSVUtYBzO&dVzYCdWZUeI!|4qzNdbn{$xY25!l$+c-chRWY|>Lbl6PU zY}s7deAt57qS%tyve*jQ_On&8HL|s_^{@@HU1XbJyUX^7ZGr6#+bY{8+aGoeJB6K- zU5H(ZU6Ear-H6?a-HF|cJ&-+uJ&`?=y?}i`dnJ1VdmDQX`w;sj_G|3-*k{?Fv%h8k z%>IK0(eN}Xjh7}$lclNB^k`-@dzw4VpB7GwqovdGX!~dtw0c@At(!JTyF|N2yGNU& zJ*TbE)@fTD2o53#I|o091cw5L28SVs6^Ap27e^3B6h|`0ZjL=12RUjuS~$8m&Tx!y zT;;gS@rYxQ<1NQ$jxA0ECy|q#lb=(9Q-M>H(}>fW(}mNAGlVmSGnF%!vxKvPvw^dX z^AzV<&N0rLoYS07IbU&pzW#+`GB= zav$cd<8I~d;Xcbf#(j%>hWi=!8}2pkEgl39iHCznh)0@7g-4IaoX3&JizkRDnkSVf zk7plGCC^cw4xT=q5uOR2NuD{LmpmVMHhBK<;&|D3`FSOI6?wIJO?mBkJ$M6oqj-~f zb9hU5D|j1uJ9zteM|dZA@9{q7UE=-7`;8CcBk8-h3f^aeNtk zg?wdvHGIeTy7`9qF7w^yd&sxQx5D?8?>9e|pUTh2FUhaOufuP~@5t}PAIu-ipUz*v zU&dd|=@A(gxgv5;qPC(QqCujuq8XxlL=THLigt<)h>nWh7JVf8Qgl`HhZstXMT}2O zN=!w}K+HzWO)O9>Ml4;dNbIm!gIK57fY_+mZLwLgC9zepEpfCsRa`)vF0LkSByK0} zDIOvoC!Qrq@GEwNNv(# zI)%08pX(yydHOaGR^%W%qw$tcO_%h~g|#3Uaz~R&s7~!E*6(yX8vdYUSGH&d6Pso0NMhw<5PGkCbPX7m$~g*OIr8 zca;y2kCo4o-zQ%!-zMKLKPG=y{;B+1`Ar3c0;__6f~0PQcCJdrb^CAJC$OTvXu5I)hM+q4JeH(O(`uXeNfs`#wv3tizzEB8!Fo?`zS{! zrz`JOu2Md(+^0OMd{=p1`JM826|@Swil~Z`ih+uqijPW!N}9?Zl`56vDt#(rDw8Vn zD(_W(sA5z(RK-+PRE<;}RQ*(=R5MjeRBKe*RR>kCs7|XsSN){AtwvPiQKPGAsF|y| zss*VfsO731RBKf0RvS^fsWzv!thS+!RA*BcR##LvP`6k2QIAy5P%lxhR&Q4yRKKb| zqy9pDP5qAsS%Y6gRzpX_O2b1VOe003NTX8YxJJLmWsNC~MU7RBZB3#kucox7mZqhq zyJo0nvSy)Xh2}BMKF!OTQ<{sKtD4(dL@iz|87*xsD=iPLFs)RrJz7;-ty%+GSG1Ov z2|D>Yhjm(XdUeKhrgRo{KI#0{CF=_4%IWIq+Ufe}M(Jkhmg?5)p42_BdrS9;?mOKd zdN@69J-VKjo~53LUbtSGUa?+{UWeXUz3Y0jddqs>^fCIJ`jYw@`WE```eFL1`g`@O z^*i*>>R;EN)nC^CW`Hr^G>|mVFt9LiHwZIGGblEwG3YcHHn?H%*kHxrhat|8+fdq2 z+tAw3%P`U~)3DUA!LZx#g5h1mXNDgQe;bjF1dJ4n42&F&b{fSQwbj4`K z=#|k|W0Wz?Si)G{*uvP|INUhRxWu^5xXXCN__p!9@kirr6S9e*iGqotiIYiyNrFj% zNu^1v$)L$KlUb8xlkcWDQyxW>RKa zX4YojW>IF@W@TngX1!*Y&8E$k%)XkV%sI`a%(cv|&ArW|%(Kl8nm3#GnU9;#n7=aL zw7^(!SsZ@a`&-9b z=UZ1=w_BgJzG?l``lIz98x|W88&w-~8xNaZHkmdDY?^HPY_8Zmv{|-I={ zPJ6n&j=i0|zkPyzq5Tp26ZRwackLJL*By`!oDOsc9S3`doel{OMGn;tT@DuNz?(20A7??scql>~S1*oOXQW_{|CD#OI{oWaQ-P6y}ufwBM=8sn6-E z)2!2q(=TU=vxu{*vxT#lbF_1=bGdVy^RV-6=LP4_E=U&+7rKkCi-Sv`OR`I`OTEh} zm&+~>T$Ww7TuH7%t}3qPuAZ(@t~svdu5GTvuD4wmT-SG?c5v;G*`dF~X-CM8v>l~8 zj_&B&F|lKA$NL?>-KcKjZkld3ZvJiwZbfdjZryHUZZmFg+_v0F?n3UW?iTLe?lJE9 z?p5w5+%LFKxi7hY^T2xucqn<8d3bn4dE|OjcyxH2_n7o}>9OI7^W^tb^fdMK@Qn1# z@vQLd@I3E1>G{%g(+lUt@1^8r=H=-X<(2DI>DB3V!E4IvmDhJ~g14ZzinoQgw|A^} zfp@j{N$*kb8SiE9pFR{HQ6CK-8=sv%Nj}9s4L-d-SAFJuKKMeuG+(-}p0AT{sBeaE zneQ>*A>Z4+i@sm{uzq}gihgE(o_^7O`F=w^eqC={p`Xcg!em>5_b*cjL!cs=lG;93wWh$l!P$TY|^C?=>Ns3xc< zXgp{(=tD3R%n>XTY#6*FI3hSFxGK0Scr^Gy@JjIS5VjC{h<=DmNO(wgNJU6z$iIRC!>D0WVR~UMVc}uB!z#i~gk1`I5VjKb zC!9T8I@}<9M|ebdZupV#li`=cABBI|1@GeACAZ6Dm&dM{U4^@9cb(ofvFquswFqPggEG&-6uS|!>l+CMrux-|M&^l z^|*z&uknO z6Nh--8$t@{5sW7QNsXysv((|Nm$&_S?WW8k9 zrN^Wfr8lMzq~A$jO8=R` zmLZ*CoZ*!bpHY(0k};eymGL$cWO8OIWLjkUXQpJ9WwvKt%6yc$nuW^Z&r-{>%L>WL z&Z^4l$(qP|mi0B8m@SsAo9&t%m0g(KkUfxnH~V$=_HNp4x!q>FeRn7CKCruO_odyB zcCY53a|CiUavXBPa&mI2b9!@bR%1y{E%{`twlKUX{Lmo1ZKTj>s zJ})#cC$BoMH}6K?i@YEC)O_iDlYH;|r2PH)ZTXk-ALV~4z!V4-XcagWL=+Sh)E5jC z+%0%r@Vk(+P_fXmFrYA_u%fWL@M__+!p$N|kyMdUkylYdQE5?Y(Z!-iMW6Oy_XzLN z-s7?-YERLgqkGQoncB0m7v9UeS9P!5-mty7du#Xh@4dbE)!yx5&SJ%4tKz`o%;Kuz zQ^nVdpBHbHu$9P`n3wpMq?H^lIazYGWTE8SK9+sb`%L!v?n~KsaNmi2-}%1q1r%F@cp%eu?1l|3)pI>>fV?x4lNfP^^DsEJ~toT*QS*cWMTNzrJS6N>Xzz}>POX| zYltx(tJkP^u8*!Su5Ya$t$$L#(ZJdu+hEZU)UdmuwqdYgs^NVjrctC(uhFwH zsqs+b$;NAqFB`XyavxPa>UcEr=-#8pj$S(Y;vbneUcJp!zqD8Ppr^T%$p{1;)tL0kD%a-k9+{e_8IUS2WR&uQE*yUr- zj{P`JJFaxx?)a|bMaNr?Up)T!_(m&ht6Zy9Ye;Ke>(SQpt&dvQ+sJLwZ5C}oZ8>fA zZNqI3+Sb~M?euoD_JH=??RD)#?KAD4ItU$79i|;SJF+`!JBB)@J3e(1I;A>II|Dki zJL@`!I%hgRogki|pD;TScw+a7`V+$^9-R2xMedUBvgiu#%I#|GI^Q+h_2neXNx75O zC&Nw_oNPXM@#K?}-@4hm6}#=aBf9r?w{~CdUg-YW!_}kK&OBXndhqnj>9t-`uXL|vZ%A)`Z&UBZ-Y31^ z`e=R1eU5$6ef#=4`zHF9`a!=yzfQkre@cI4e_#K-{tsvHXC%*bPik_cr^$Q3J&TGdJm=#9vK`MoE}^oA`i(9Sq+5^6%8F9x;(Tv zw0)NMtkzlgv&m;G&i0+XclP5jVVFK_F&r{nFx)acI{a+-=Q-|kn&;fkC7mlj*L!aA z+{g2T^Yrr;=R?mIoS?GfG)?GcZWl#!~DGb8s$)-I4Q$X&3x5OJaSLi>e@ z3riQ_i$WI-F8W@~x>$el+{L+zo0n*pR4zGRiobO5(y2>#FTEedkJ3jiMngx7Mq5Y6 zM_-JAF~KqYF`u!_vAVHyV{>EQF4HcnUUs>haQX1%-pltcua1+(WyfvCBgRX{JIAk& zzqx|CB6h{(O5l~eE6rENt}I^peU<;J?p5!rnOEzsp1V4C_1gsJg!;seiR6jOi8B+^ z6YJMluPI)0ycT=y;I&iN?q2(Nop@dLy3O^->-(;EUB7vKB*C!8-0tUb?$*_xGgWq`{>BWX@#Mro*R;r%z1ZoPIZhpOKldor#(`Fw-+LIkWnJ@<8!{k-c*oku>8vL79NH2P?97R(CI8qWsJ7S6WKUYlK>!_Lv?tmh)< z_RsaqP0oFK%<@?2vGe1^$CZxg=XuNXE6-oQK);ZBVf`ZN#eo;6U)+E3XX&&PePweK81cN z`PBXC-lz37+M4E?_uB5YmbHnsx1R~0L%V zo8_BBn~yiQzX^Xc{TBXh|F_<6GvB^_=l!n#J@EUU?_J*~zkmKg`=Ry2_eb83wjVct zeAr^yQr+^{%Gzq)y1MoDC-JA^PuHJmKO26I{e1Nc`%Cth7PGL7J$hDFj)X53&3On zm@EL31z@rOOcsF20x($sCJVr10hlZRlLcV108AEu$pSE00458-WC55g0Fwn^vH(mL zfXM?uDx{Z}OkA!S7+O<5rm6GiZ!8U%l%|JD8vRoDiO diff --git a/rtdata/iccprofiles/output/RTv4_Medium.icc b/rtdata/iccprofiles/output/RTv4_Medium.icc index d63965fa5bb813edae05a98c4512877cb41eb796..5e57952e33a1bf2275da225f3a03dbb594d5650f 100644 GIT binary patch delta 267 zcmeyvx`I`Qfq`j7PI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!Amn8bXW&UpE-vs5b_QkVb_4z$r(ktKs8H%Y?YMUJfQhZOeZD_FiLBx z0EJ{2d>K+1QW!EBN*Qt);u#be(iv0TOcr32mX!bs r$uI;lxHC90C@>^3lrm&8*l=mP1y$pMU?881xEVN!>aQu#N^@v-(a_p ziHTAZ-8}1Uk_(DT7#J7>7#J9$%1a7B>@`5PNODGE3XpvO$kr(W8Ukd$0f{Gp*-Stt zgGf4rEdpW}g#$ax#B^k`0Hd_3 z0#HbXp_n0v!JWa0A)Y~jA)UdN!H7YR!34-I2C@wqj3;|Aer7yB*@j6SPWCXR000X! BG&TSL diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 8d6e09553..f76211bd4 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,12 +141,15 @@ 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 @@ -157,6 +160,7 @@ ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) 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 @@ -366,9 +373,8 @@ void ICCProfileCreator::updateICCVersion() 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); @@ -401,6 +407,7 @@ void ICCProfileCreator::primariesChanged() aPrimariesBlueX->setValue(p[4]); aPrimariesBlueY->setValue(p[5]); } + updateICCVersion(); } @@ -497,6 +504,7 @@ Glib::ustring ICCProfileCreator::getPrimariesPresetName(const Glib::ustring &pre void ICCProfileCreator::getPrimaries(const Glib::ustring &preset, float *p, ColorTemp &temp) { temp = ColorTemp::D50; + if (preset == "Widegamut") { p[0] = 0.7350; //Widegamut primaries p[1] = 0.2650; @@ -595,9 +603,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 +656,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 +665,57 @@ 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 + + v2except = (profileVersion == "v2" && (primariesPreset == "sRGB" || primariesPreset == "Adobe") && illuminant == "DEF"); //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) { + 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()); + } + + return; } - return; + } else { + sNewProfile = "RTv2_Beta"; } //begin adaptation rTRC gTRC bTRC @@ -702,16 +724,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 +748,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 @@ -786,17 +816,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(3), std::fixed, std::setprecision(2), 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 +835,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 +845,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(3), std::fixed, std::setprecision(2), 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(3), std::fixed, std::setprecision(2), 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,12 +907,13 @@ 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 @@ -897,8 +929,17 @@ 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,9 +955,81 @@ void ICCProfileCreator::savePressed() } else if (illuminant == "stdA") { tempv4 = 5003.; } + cmsWhitePointFromTemp(&xyD, tempv4); } else { - cmsWhitePointFromTemp(&xyD, (double)temp); + if (v2except) { + + cmsCIExyY XYZ; + + { + // XYZ = {0.950486322, 1.0, 1.08902736};//White D65 point calculated from white point xy 0,312710 y 0,3290 + // XYZ = {0.95047, 1.0, 1.088830};//White D65 point from B.Lindbloom + XYZ = {0.95045471, 1.0, 1.08905029}; + } + cmsCIExyY blackpoint; + + { + blackpoint = {0., 0., 0.};//White D65 point from the sRGB.icm and AdobeRGB1998 profile specs + } + + cmsWriteTag(profile_v2_except, cmsSigMediaBlackPointTag, &blackpoint); + cmsWriteTag(profile_v2_except, cmsSigMediaWhitePointTag, &XYZ); + cmsCIExyY rt; + cmsCIExyY bt; + cmsCIExyY gt; + + if (primariesPreset == "sRGB") { + + //Matrix value from B.Lindbloom + /* + rt = {0.4360747, 0.2225045, 0.0139322}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1430804, 0.0606169, 0.7141733}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.3850649, 0.7168786, 0.0971045}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + */ + { + //Matrix value from spec Adobe + rt = {0.43607, 0.22249, 0.01392}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.14307, 0.06061, 0.71410}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.38515, 0.71687, 0.09708}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + + } + + } + + if (primariesPreset == "Adobe") { + { + //B.Lindbloom + /* + rt = {0.6097559, 0.3111242, 0.0194811}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1492240, 0.0632197, 0.7448387}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.2052401, 0.6256560, 0.0608902}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + */ + } + { + //Adobe spec + rt = {0.60974, 0.31111, 0.01947}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.14919, 0.06322, 0.74457}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.20528, 0.62567, 0.06087}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + } else { + cmsWhitePointFromTemp(&xyD, (double)temp); + } } if (illuminant == "stdA") { @@ -924,26 +1037,67 @@ void ICCProfileCreator::savePressed() } // 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" || gammaPreset != "standard_g1.8" || gammaPreset != "linear_g1.0") { + 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); + } + + if (gammaPreset == "standard_g1.8") { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.80078125); + } + + if (gammaPreset == "linear_g1.0") { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.0); + } + + if (profileVersion == "v4") { newProfile = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); } - cmsWriteTag(newProfile, cmsSigRedTRCTag, GammaTRC[0]); - cmsWriteTag(newProfile, cmsSigGreenTRCTag, GammaTRC[1]); - cmsWriteTag(newProfile, cmsSigBlueTRCTag, GammaTRC[2]); + if (profileVersion == "v2") { + if (v2except) { + cmsSetProfileVersion(profile_v2_except, 2.2); + } else { + cmsSetProfileVersion(newProfile, 2.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 +1105,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, cmsSigProfileDescriptionTag, 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 +1156,66 @@ 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 (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, descMLU)) { - printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + 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 (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, descMLU)) { - printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + 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 { 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 +1225,13 @@ 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 { + printf("save except\n"); + 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..e8de318d3 100644 --- a/rtgui/iccprofilecreator.h +++ b/rtgui/iccprofilecreator.h @@ -50,7 +50,7 @@ private: double gamma; double slope; bool appendParamsToDesc; - + bool v2except; Glib::ustring profileVersion; Glib::ustring illuminant; Glib::ustring description; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 147e6badd..1887bb7a5 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -769,8 +769,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); + } } } From d55d3446f60246aa206f57c5d7cf1dda06f3f268 Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Mon, 12 Nov 2018 12:46:33 +0100 Subject: [PATCH 007/116] various improvments to ICC Profile Creator --- rtdata/iccprofiles/output/RTv2_ACES-AP0.icc | Bin 25336 -> 25452 bytes rtdata/iccprofiles/output/RTv2_ACES-AP1.icc | Bin 25532 -> 25452 bytes rtdata/iccprofiles/output/RTv2_Best.icc | Bin 25456 -> 25452 bytes rtdata/iccprofiles/output/RTv2_Bruce.icc | Bin 25496 -> 25452 bytes rtdata/iccprofiles/output/RTv2_Large.icc | Bin 25504 -> 25500 bytes rtdata/iccprofiles/output/RTv2_Rec2020.icc | Bin 25544 -> 25452 bytes rtdata/iccprofiles/output/RTv2_Wide.icc | Bin 25456 -> 25452 bytes rtdata/iccprofiles/output/RTv4_ACES-AP0.icc | Bin 744 -> 752 bytes rtdata/iccprofiles/output/RTv4_ACES-AP1.icc | Bin 764 -> 752 bytes rtdata/iccprofiles/output/RTv4_Best.icc | Bin 760 -> 752 bytes rtdata/iccprofiles/output/RTv4_Beta.icc | Bin 760 -> 752 bytes rtdata/iccprofiles/output/RTv4_Bruce.icc | Bin 764 -> 752 bytes rtdata/iccprofiles/output/RTv4_Large.icc | Bin 764 -> 752 bytes rtdata/iccprofiles/output/RTv4_Medium.icc | Bin 680 -> 752 bytes rtdata/iccprofiles/output/RTv4_Rec2020.icc | Bin 768 -> 752 bytes rtdata/iccprofiles/output/RTv4_Wide.icc | Bin 760 -> 752 bytes rtdata/iccprofiles/output/RTv4_sRGB.icc | Bin 752 -> 752 bytes rtgui/iccprofilecreator.cc | 144 ++++++++++++++++---- rtgui/options.cc | 60 ++++---- 19 files changed, 151 insertions(+), 53 deletions(-) diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc index 34363781fa091909250c3ed101e06b24df93b335..03d952f9fc09d25b7e828a2213281daee89fe0ff 100644 GIT binary patch delta 878 zcmexyl=00mMiT~x zZXpanpa29DO`_|2k_(DT7#J8A0L3(lfI5Ke6F{~|I)r@(#7=^+KY-XpAwkXz3`{IQ zBY4umY$X8@I|bP{TKjK3B}GB*P6`o`Q3~vj7+4tu7&sY}8FUhpiwk^% z-9jcNN=p~Yp||k0MH-^;AC)QaAt622xia)vH}$c>$x5*|%#9 zj38x~b&J!CjldchIW93Uutfa-{|#t9>r4iQzu*7=|Fh@+|9@6M_dR7`xS%lk1f$I4 zAB;RApuhoZVqn%{VA$~us6b}3fYMG@#^am!v7csQoHn_OYcb=4$$H%Sj8iwqabIU< z{59Fn-;~j8a}NJ%M#g)S4FVMzPfWHFOk}K_JV)>}W8~z9AWKHE$?J?H86RxkBP7qr z$Ugawa53Y%%>g3c85v_HCxkUKPTzb+Y%wEa!sG&plZ^e7tt6uvA8uY3Db2`uWb!^M zT}Fw`52Os47$Y{z*>2|=bqw~9`Ol&ZPEf!YWCq3J9#IAc=hxu)1Sbjx_W%Ficul^M G)BpfxEAZ$5 diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc index 413360817fad230feda6988a9155e51a6e995ef7..cc5e59f3ccbdd3e0b78913405527fdad6a444ee7 100644 GIT binary patch literal 25452 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 W0sbI%XAb_a)BpGLzy136TK@yXC;edn literal 25532 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 KAjbLs?D!9!02w#{ diff --git a/rtdata/iccprofiles/output/RTv2_Best.icc b/rtdata/iccprofiles/output/RTv2_Best.icc index 3f9db89e0e40d0ac01ca78440dcc7325df9f1082..84037ecf7f03fa589b9bef0db53d542971a4893d 100644 GIT binary patch literal 25452 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 diff --git a/rtdata/iccprofiles/output/RTv2_Bruce.icc b/rtdata/iccprofiles/output/RTv2_Bruce.icc index c795da140de12099a41e3e8f94175b4e120fcbce..152b4171717d7acf95542e0876b79f808cec73b9 100644 GIT binary patch literal 25452 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 UVs`dH|Mm9&{r=ze`uAM_15{=AbN~PV literal 25496 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 diff --git a/rtdata/iccprofiles/output/RTv2_Large.icc b/rtdata/iccprofiles/output/RTv2_Large.icc index 40f86fcf138583e6f239fdeef3412792970e0544..a7659d318bf822bca36865ab26d79e4dae456455 100644 GIT binary patch literal 25500 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 E0a{T7aR2}S literal 25504 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 diff --git a/rtdata/iccprofiles/output/RTv2_Rec2020.icc b/rtdata/iccprofiles/output/RTv2_Rec2020.icc index b6969a6f1d1c6492e22040e044c63fe615e959d0..5426e8d685ee8558e902b26fb266c8d85f5dee05 100644 GIT binary patch literal 25452 zcmeI5S5y>R!=`st=L`)^&bi4s=bW?TAQ{OyNKOiZs02lVhy)Qq0YOm^5EKIlDk!KZ zCIl0T3K$MBc+UFgeE*t@S!-r4=Ax_Ds(QP6clEAaefg~C1t1_IA|Nsz762eJDk09% z%uvA1-9rE~4Uhl=c%TU|egW|@HcqC_U}qE9+5Q~=`?mgQXY9^4E%WDE|NXQ7?K@&% zP<#LY5bMs!l7N`Fgq?hHCriZbOk^kD+R3aT|K#~U+5eyX?8n~ zLKJ0{<>M6;Wi=F)6yyc}KKbW72my*f7AOOG5Dygo&Kf&=rJXDf{^zj&8vcKNObANZ znHK;?(J`rUdqP4J1RVX6okN4-{9=NF1Qg{J)TITCjO4+eXZFvpwEF{K7P-B>o%`=O z$ru3I-vWSX|M#50&YBTA02tp6NQ_JR=es*gx3k~?-g)*YfCd;B$OU3(|pfA$`aIGJ;GXQ^*{$gsdPN$PTiH93f|D7vu`LL!OWq zML0s2D1NN}+2;sW9#;xb|YF@zXFj3I6# zCJAuW+MNC%`d(iQ26^g;R~gOH)f2xK%e9+`yPi_Ab~ zBlD5_k;TYTWErv&c^p}bJc(>Xo<_DI&mp^zy~sY~0CEU9ioA)ugPcU(M?OS8M$RK& zAYUVwkROmM$gjvXI>>S>IdpCG(aQKSTqsMgl0u^pn1`P zXi+pBErV7-tDrT}x@beRDcTZki*`c0qCL^R=sjR6=W28SVG zs2Da3H-;Z0f|0<;U=%Q_7)^{G#u#IcvB5ZCTreIOUrZn-6cdSw#Ux?UFj<&}hN}whMa^+m9W_-oW0$PGKKnpI{fTZ?NyME7)(?AJ{D%0*A$sa8w*Sju$6{ z6URy86me=eZJYtl3}=mVz`5YOaDKR8TsSTkmxN2h<>2<=ig8D9M{zZ{23!lS9oL1s zh#SCN!`;M9;O^sQar3xWxFy^t+*jNW+$J7@$KuI&7Ca}O4=;kJ32TJkM2LtXl87usE}{TYj3`Z1 zB&rkjh$ciUq65*D=tB%7h7n_kNyH3d9+;tFw%_?rZiup}~xM&c$3kt9fRBo&et$&h4DvLo#xd6E1{dq~lwBvLvlk92@^ zm~@O(M`|Lqk-A8Iq(RaR(m3e>=`m@6^p^CA^o{h343RNpGMPr^CJT}2WO=eGS%+*) zwjw)_-N?S=U~(imp1hZwLoOsAB3F`Y$&KVTau>OeJVYKNPmrg{PslIH%jD1Gb@C0f{DOHW#VKKV3J^xV^U?(VKQN|W^!WkWb$X)!xYPu!j#3d zpQ)6olBtfViK(6G0@D?y5vJQr_nGFH7MPZpR+!eAHknb(L}pfIZf0R-NoGZ64Q2yo z3ub#}H)dbv5auZ6B<4)!0_KCv70k8FP0VMRFEIBrk1*e1e!%>g`6cr^=2hk&R6xa2 znW*ekeyTWCj;c!4rJ7Q0sV-D+Y7jM&nn=x{7EljTE2y>9CTcsihdMyLPMx66Q0J*{ zs2{1{seiE`S%@sGEIceCEYd8>EZQu_EY>W}EM6>uEDu{>va%d*0MPhrntKfqqjUd!IhevbVT`!M@$_6O`w*%#SY*f%%;2abcv!ObDc zAI7ysr zoC2J5PDM^_P7_W$PB%_}&T!5I&P>kzoJTmTIh!~;I4^MybKc>c;e5uq#QBBu7Z-wy z#Kq1fz$MA0#HGV!#%0gt!4=3A$(78N!*zhGg6jlVD_0j+Ki3VeDXuxLS6m;t*0}*U zj+=#>ms^}$fm@T?nA?`yjoY6)f;)*joBIHFId>iRY3?rWe(oFGQ{0caUvq!r-r#|F z2s|_%ejYlH5|0j#8IJ>x7f&!x49{Mke4bLCDxOn39XywKuJMfXJmgv6dC&8mXNwoh zOXcO|73Wpp)#5efwdeKV4dRXFP36t!E#*l-4cZ=@<-!r}?zOQ_n{1|>JKM%h+ zzaqajzZt(Hzc+sfe;j`X|9<{5{yP3v{%-!O{I~e0`JeGG^MB*t62J+t3h)Wg1(XH! z1S|!13G5aK7f2My7AO`tD$pR%E^tX;MBuK#oWN^=6@j0ENI{Aqm!PPiyr7n#si1?P zw_vDXykMqakzj>jyJaJ^x-K*&^hD^b(5ld;FjkmFm|s{@SXJ0S*hbh*I8ZoRI8At;aG7wO z@EPGA;bGx%;aTBV!Yjf*MNlHlB0M4zBFZ9qB32?UBK{&#BB>$;B1c5(L|R39M21Di zMP@}_i+mROEs7SUit>p{imHejh}wv{iw23tie`uwidKl86m1vn6TL2aPjp^%S@gRY z5F?6lh>3{Fi)o9Qi#dz!7K;!|5z7}lELJPlD%K-5EH)uFC$=cIDz+((6Q_v_ipz*= zikpf%iu;I%i6@Kai60WL5pNam5g!)6EB;t~QG8W=O9C&!CLt^#C!sB2F5xWUClM); zDzQ(ZOrl=mtVEy0b&2~D&m`VUtkV&63Y~{8L06$0&~51+^bmSHJ)3@zew^Myzd#?N zPtfP+i}bJbElGkThoq>af~2mbm87d=pk%CMrev|?G07&$F3Ca3amiW9H)z?n*t8T9W!M4M~%wxuqqfRiq82?WDb= z_edv6=Sv@vJ|TTpx=;Fs^aJS^(x0S%$zWtyWrSqpWVB^0WL#weWnyJAWlCg@%e2V! z$Xt_|l$n=#C$lb#lx3FXmz9>)kTsKami3p7md%hoAX_EdEZZ$REPGe>sq8!1bvdLQ zvmC#iw4A1#ncOb90J#{sOt})d<8r6vdgMmr?#Vrq`ylsI9wW~xFC;H7uPbjQ?=BxA zpD3Rze^~y6e7pP=`J3_&6u1@W3Tg_*3XTf96`~Z<6%Hs=DYPi`D2yoF zQ+TfMQQ?;&R*_9nL{U*uU(rs{TQOWQRdK&!rDCIEm*TMEq~g5dd&M707$usLu#$q3 zo|3JSmr|Hgiqd|iN~K1nZlz(RNu_5>AC!J7W0l#IMU|D54V3MbeUu}W)0B&ptCU-m zdzD9(A1J?2{;a&ILR8^Wp{uB?n5yhj2~des$x%6^azdqDrC;Ta%ACrQ%DO62l|@xZ zRbEw3)mGJ8HC%PCYLRM{YKv;G>UGs=)mN&ks@rO0HC{DoH7zwuHFvd8wIsCywFXPaj>gMXM>cQ%X>iOyw>W%8%>etlosV}InsBdbJGbK>HP2{X z*1V-Tr@5rLp@r6>X^CnnYZ+@fX$5G-YvpQ{X*FndX$@=L(^}B_thKF8*5=ce)z;Cr z(e~Dk&`#Gb(XP=xtKF|XuKh&&z4k91ybh-hT}MO5LdRVvR3}BJP^U_#Ri{tqmd>os zlFo)MMweYzTvtukOxIO6L^oM?zwR;J)4G>*Z|ctKF6nOQVf5Jb#P!tl%=Fy!LiJMg z3iYb=TJ`$$ZtFePd#CqPAE(cyFR8DoZ>jI8AFiLKU!q^D->yHPe^>vR{)+yV0oj1x zK+ZtVz}{fDL99WJL7BlRgKmRSgK2{|2Hy=)hBQMlLsdgFLpQ@v!&Ji}!)n7e!+ygF z!+FC`hFeBtBYq=!BYh(WBY&efqdcPuqh_OCqcNjdqh+I?#yDdxV<}^8V;f^{<0#`S z)H7HNR{=Za#1R$$Z;_*+R%d*}}xa)gshluSKy%oyB>J zVT%VAuPxRrF_s*bl9t+*HkQ7Yv6gw36_zcQeU^7DpIUyh+_qx260%aZGPQEE3bRVL zI%rjI)nzqm_0Vd`>Zdiqn%7#++Q8b$I>opsU4X2HijgF0- zjh{`tO@U37O`FYt&7{o>o3FMgTXtKzt(L8=?QYvR+kD$&wr6bnZSUH?u>ER>v}3oU z+iBa`+U>TBw=1waX4hsnU^iv=((b!G+Md&1%3jyr-af!S(Z0~W+P=en$o_%-qWy*g z-hszK&cV>Z*&)PXuS1DLy+gOdb%$Ap_YRwm6h|RP6-RSN564KyY{zoP7RNrvamVM5 zt4>HKb|*9G%bc5?FFQ{- zFF1eQh1$ijOKO+yF2`L#yHa))?>e!od)JL!bGtt5+IFG3h`Ok|SiAVT#JTKqIquT# zGVC(#vgGp1mEggKgn(JEWdd79Y^`7f%*9|wk8=sq^n~9sdTZCJ-Te;h5 zw|=)tw^wfK?l^Z|cLjH2cQ^M4_bm5v_tWnE?vw7X+}Azu9=sk39wr{{9+4h79u*#~ z9s?ftJl=Tx@FaQ)cq)6EdwP0Cd**o_^E~T0rR+hTFTkLz%x5xLk?=#=8yV1M3cgycK-tE3Sa(C|Tqr1=U z9^O5(``zv>KdPU&pSGX9Uy$Ekze9eFetmv-{a*R4`xE>H{8jud{eAu8{R{o;{JZ^c z`p^5X2A~7D0^|aW1Kb0m0`dZ?0y+Xl0%ij~210>sfl`6`fi8jJf!TqTfo*|9fir>c z0=I)$gXlrJK~6!TL7742L9IbogQkO)gEoVy!4knb!H&V9!5P72!L7kpgQtU+gEvE1 zLL@?TL!3fFLo!3kL(YT@hRlS#3)v234V4Vl58V|S9-19`H1urfwb0qnk9*)f9D8K; z80~T26SXIQPxYSjdv5G`x@R>E9mW%;7-k;k6BZv<6jmSB8#W&HGHfH97%mj99&Q^R z7``|BaCl4jK=_03{Pgg>Xmm7hv{JN1^zP`S=!4OX(O07H zMZb;SjA4n9jM0yAjfsrOkExF7in$f@JZ3GH5Gxd`5o;G49Gf0n9@`c>96KAk5{HW8 zj#G@Yi1Uq0iaQwB6xSbjKW;g0JDx3GCf+#SBR)31Fup$iV*K6sH}Ss{s0s80{RG#9 zsDy%q+Jp-UcM@JE{79rEiY4kKIwyuF<|ZCb>`c6sxRAJ>L`o7#(n@kl3QNjKs!Hli zx|#GmX)T$QERw91?35gqoRfS!xik4@@sHo_te@G;+4O9~ zY>(`??BeXk?EdVT?2kF99Nrw&9NV1WoUEK`Er9u<7vhutT*PjjEszKDGV`%dh;wC~=&cl+V}Jo{Dl+wKq9pS}P1 z{_g$b``_%}Dr7H|FSIE1FHA42EIe0uv+!l%uOgNr=_1o2-=dVFvZAv^*NdJPZ5&`e zAbG&(fcJr<1BVZsIWT%){=j-MrI=o9SnO4tSbV6swRoiXY4KVKr9`5{u*9<@vE)!m zYspB-e98Jj%0c=;qk~=tlMWs}*miLA;Io4prOc&Lr6#35r75LlrR}9-r7uc<9b!Es zd&vBd|Dm))m50tBx_#*Nq0PhWhZPT79}Yg8eYpB?&*90#%SYfNJV(@yI2;K-QgEdH z$mJt5M^?(PWkO{-Wv*qhWyNJJWy57p%GSy$<@9pna-Z_l^78VI@>}Jv$~P<6D-Drzb&R@|@nP>HS-sMM<5RT)!RT-jVXT=}GO?I_bx$)hGmcOTt*wDM@@(ea~; z$G|b}W2(pOkA)xGcdX&qz_CZiR;!3r;#G!K-c>18r&pJ+TWc;d;4 zwR+}y>3Z|}!1}EEn)*xi59(J=;!ld6G&t#fGUa5&$DpGa4Pat(W&NB*G@e<^|O)IsL*KBxTmq8v7zy5vZdvGsH9WGbU&J&t#pcIn#G$=FDmv zxlOXotSzuDr>(B-O51GP_p?lAWzJfj4LO^C_T<^CXP=ziXlHF#Xt!+-Yv14A)PAk~ zdHe4Ujt-R$$ByWZl8!SSV;!&0fpfg)G|#!7OFUP0?)`L&J{41xfT)VPxWwW2VU$ft> zKdHa6|3d$R{x1XM0hs}-fv|zXfztyw2HsqSuL@q(yXtc_{c6qC%U9>Ft`E`%l?NRM zV+Rino*TS7_+bb?L?1FA3LYvLY8o0HdN~Y+`G<9fy@u0dypS%9!2Kx=w8@p~K-l({7;l}ihuVc((3S;(T(PM|k&W%lueY#1!DSgxGX86qm zH`{LBzWMGJ_Ljsgvs)pz_T6f^HFj(9HtM#>ZR6X4xASf{-X6XE>JEHI=#JqXzdJd1 z8tz=X^I{x~3ykZJ?;g(@uOA;8Ul`w>;GfW&@SVt-I59Ce@qA+IF5g|hWGsM<=$(&H+t{& zedK+S`^NW!?ibu|zCU*V?E}mM@dxG)LLU@8IP>7ngZI;fX{l-J>4@or(;d^3)1PN3 zGx9U`GqE#eGu<=OGv6PwK2&+=@-X?~v4?#RA3yx{i2IS&BdzswKw6MnuwRH!aXD zyAr!nv2tnU$;#$ufzL*tgFhF2ZvQ;>`RfWI`Eotre+SRoe>&SKSb*uI0^|JMg>yOtrHv~6~H$pc`Haa(^H#UB7|Iq#6|6|{e zwjYx}R)5ldYW(#6ne(&x=k1>#e=+@1{^j;7{nyD~*MBYlCjOTH?fg6CckS=t-*5iH z{w4jF{a=ZH9sldJXF0x(zr1`EJo0T?U*g9Tu)01Os@!2&Q?0EQQU;RRrL0T^BYh8KY0 z1z>mq7+wH|7l7dfV0Zx-UI2y{fZ+vTcmWt*0EQQU;RRrL0T^BYh8KY01z>mq7+wH| z7l7dfV0Zx-UI2y{fZ+vTcme)D_5%Fd8}Q9xry*dcC4g<>pWcSQn*(Tn_ayA7694T= z__r*9_8(;l@;j9Pe_sDD_wK8Ea)yB+=RD+`a}JV`93-y( z1w{;~D4-~C#`j&{`Tmz@opW<8re{spGu6AQt9S3dne|&w0}yyODlj?`1^`6IBqcam z7z??3cnV?W01~hOPM`!7`~wr?Y@N+r7$LyQWv7#}qO#&&{oieE5%aZ~ zM~WO2oEQiIB+H1d35-ifV(8lpEfo|U6U5M;7&}3Jwed0D)y_Vro(x zBObxd(Ch(`|7fYdI)QN!jDFp}I`m)d@K4OYnlTq6#>L5m5t9ah5Ha*0En4(f2mGT= z4*u2t2}z9W39Mtp%l^AghGL9$3J(0620x)tJ!N@Sp+r3;m46QWJqDaWFbD+7K=Gfi z9}oheK#!s2fht2MGPDx--{Jom_J7|d1*b7`0DwtsTzW!yXjqbvlYgp9Sa5=WTyU_E zvZ9ivtdNO`BKRNcC;pF!|D2e}Shqh&1uh_rvHk>xj$^dJ|2h2s-u{pC(?S_pQ~bLn zDk;lrDXS z0x+^2n4FOE?@TOz8wkLR=M4qW00VFU4+ww=$biCl0$BkYqoQbl18@Ouzyo*z9}ob7 zj5-nqqCgCY0|_7n=s+6C069j26c~y5n<7=92GoHjBVpP=hf#6*zyKHmV_*VIff=v> zmcR;FgB`#Y*a3Usz_|C$j61&*xB++I0X%^>@BzNSk5L5yj9Lx?A&i?62Esukhyu|d z2E>ARMvWwbB#^?WnKY0NGC>x|200)P_!4Mb*cfdVxAB=zpU=%z8W8g8E08hYEFa@T;Gw>YDfR|tvyaKPm z8?XT0f_LCOSOOowC-5130bjv4@E!aBYhWGx1RLNt*aTZ(8-gGhLP97A17RUNM1V*T z8KOX}5EWvFXb>mF1@S<<5I-ac2|*%|C?pO^KvEDLl7ZwPc}Njbf>a+Ww z7t)6eAtT5HGK0(^OUN3sfovgr$N_SKT%eth8{`3bLf()svv5GscDK&8-LXdhG#9fT^ND(DDQ4IPDQq2tg=s2(~4 zH9}{hbI=8-1-b~eK^;&h)D87O*P!cAA2a|BLbst|=q_|0dH{_=W6(JC1e%1Vq36&H zGz-0k=ApOHBD4g3gg!%Gpl{H3Xbt)aZ9spZEf~NsjD#^T4ko}Pm;zH_c9;X^f_Y$m zSP&M5MPYGR3YLatVR={yR)N)EO;{V&h4o=0*aS9%En#bT2W$^J!p^WO><)XvKCmC` z4+p^^a5x+ZN5gS&0-Ow|!WnQDoCD{>h45~;1TKU3!w2CC_%K`zAA{@QlW;xU05`$s z;0y3YxDCDxcfmbyFMInx`8L@&`Mf^nkMrPRi59?}qL zg0w(dBW;n6NEf6V(hKQ}3_u1W!;n$PSY#qH1(}Y_M&==lkb972$Z})_@-Xr!vJQC) zc?NkFc^-KY*^cZ&_8_k#`;oVh!^r!{QRHLfQ{*&q2Kfp(k6c84KrSO!kgLdF$W0VL zAyHTq0YyQvp*T=HC;^lRN*qN;$)S``swhpAF3J#Pg0eu_pzKjjC|8sx$`=)Y3PFXV zqEYdvWK=pT8}W1DA6ghKj;5pK&`M}Ev=&+)ZHzWY zTchpJ&S*EZ7upXUhz>(Xq2tg==yY^8Iv-t(-it0rSD>rWwdj-R26QvJ1>KJBLSIGq zp$E~!=n?cI^b_o z8)JYm!B}E!F^(8lj3>qq6Nm}JL}TJHDVR)5E~W@mirJ5;z*J*uF{dz%m~)tmn9GSIl?mRMV?6V?sujrGTdU?Z_{*ko)5HWyojEyb2&E3q}$T_B-|`b`yudVR0lJ6~~F=$BE!1ak4lioCZ!8XM{7y?Z7$W zTyb7Fe_RMI5*Lq4!DZs|al3J4xI?%jxLRC2t_gPm*N*GPUB}(T4dWi*9^PDIlc;i6n_%mh(C{S!*}Da<8R{c;2+{A@YDEN`~v<1{tJE;|C<02Fa#ojO5h?0 z5X1=51O2qlDaLKWc{;S`~X&_d`S^bq<8 zw+Z(NV}wb<4B-u7iSUK6O88BLh!`S?$VTKQ3K1oUvP5N~CQ+YgMzkS165WVC#2{h> zF^-r*%qA8RONj@FM~HRA)5K=tC1Mw`mpDkgOB^LWCB7iOCcY;w6IY49Ne~H3B9mw& zUXn0LiX=}`Bk7QgNtPsg(oT{$DS#ACiY29xvPgxbQqngPcz; zA(xX6lk3Q5$mhxJ3 zVohQ% z%RQDcmT8tbmPM9jmNk}5Run6dm7SHBRg_hlRhdjl=!ti7y*toK>RS)Z}KW?f?a%KDQEs8}k6%1ITZN>b&i>QsHIIn|E3 zlj=harbbhfsoB(G>ON`}wT{|AZJ~BjuTyVRA5foAXQ=bkkJRtf-)smr0vj6}FPkWv z44Vp@4x1_44mKAyZ?+(|D7GZFEVd%HeQZ^1$JrX$TG_hTZmH1 zw#|-Vr?7Lf3$aVFE3#{{8?jrlJFC_@(cEZ$v@lv6EuEH6+e@pY)zTVhEwnCL zA8nZSh&D}oMO&h+&^9;_97GOw4t@>^4h0Sk4nqzr4kr#zjzEqmj%1D;j@=vwIBGcR zInHxj=IG_P&GC?9l4FkJJ;yhW4Ne3nk&~U1pHqTUfm4&yh|`+WnbVsym@|eml{1gC zl(UkvjTBIgy(0nU4z~mrIOGo=bzvkjsk8iOZWSm@9@W zl`EfXFIOd39aj_AC9WQ>L9P+5CtR~!i(Fs1Hnb4)-4JL)^!>8@OA!uW%1=-{+p-e#!lg`z!Yb4}yop!@(oOBh912qsL>;MR2eC2#Ke5d(Z_`3OS@{RC4<(uPM;`_n3#gFBu^7HXa@+E{A#g+Bj=;FUjKHG6iohR1j38BzPf$`&Sx{HdLeNRjTQF2GK`={j zk6?x1alx~K9fCIm?+T6!z7%{f_+4;I2rI-UBp^f=QWY`~vKDd?@)L>>N*2l!Dib;) zR4>#bbVX=T=%LWG(7e#H&@W-6Fh!V0SX@|9SV!1g*iqP9I8-=6I7hftxJvk>@Oj}b z;Q`?X!c)R;gg*=a6hVqmM0iBRMHEGJMJz;|M0`cUMUq5vMao2uh}4U;iu8!w5_u%@ zT;!d|H<3T0SWz}nK~ZT@HBlqc9ir}{fugaZ8KS#I4~ZTZZ5Hhm?H3&pofLf|x-9xj z3?;@Q#wR8vrXpq_W+Ub*79bWQmM&H-c1WyFtXZs6tY2(IY)WiiY*}nW94$^27Z9h5 ztBD(l+lqUL2aCsvXNi}HSBakzZxQbizb!r{J|n&;{#|@qf*`>uAu6FDp(9}-;Vj`N z5h;->Q6zCtqE4b&qEli(;(^4p#Dc_EiA_nIBu!FSQchA!(p=I>(pNG9BpolEExlK|TDn2HUHXRfed#Ib1?g|nTQYbVP8l&7B^iAg8yR<*V3`D& zT$z0`M`apiI%N7~9>_eCc_;H-7Lp~)^2$ods>vG5+RJ*&hRdeN7Rnx!Jt2ERwnuhI zc3gH&_OtAU97c{^PFPMsPFK!K&Q&f*E?zE2u1xNzT$9{oxtnsMaxdhT%kG<*Vfzk9^b~CrJrqL~lN1XS4=SEeY*D>{i3?5MpWZb zqpNACnX9>|1*#>e<*6M|JFeEE)~j|;ZCY(nZB-qq&ZaJ`uBdLHZl~_89;u$8UaDTL z-lX28ep`J){k8g6^=%EZ2ET@^hK`1nhPy_nMv6wUMwP}HjSh{Q8e|x&qkUI3rZcDWMQ2NwtSg`^r>m!HtLv>BrJJQ&rdz9fLHC;O zeck7}A9R1|;qrFdM2TdnT7fe^p z&}N)wQf69a)@EL2QD)g@XPX}|KV{x- zK4?B+zF@v)fwADSpj+rz?6B~$h_T4CIAn3!qSIo?V$$Nh#V<>OC7-37rGce`Wq@U( zWs&6(%d?hOE$>^-SbnzLwqmgou~M-zvvRcxv&yh4vpQ~d(Q3eI+-lxx)f#QhWi4&3 zV{L2gXB}@{U|nV1WPQc@p7jgs&(_;EEH)xGsy5~}?l$2znKt`vPTI8F+_HIUvuN{c z2Yv_N4*4C1JDhd|?MT^Cvg6o}mK}XN#&*2f@xvBv%WW%Tt7mI(>u;NATWnixd(QT{ z?WpZ5+Z8*c9j6`LPRGvH&d)BvuE_3)-8s8nyN7mjb}RNsdro`0y^g(|{Vw|i`(pcQ z`}6kK?MLlj+kbaJJ8(J3IOsVzI0QH(JM3{d=FsZU?=bGL;IQt9bL4YWa5QpsaSU}# zciiWA(y`s~w&RrJlH(sIij#PTWqf?L5h|{doH)o_Xhcn$-*V*1V zz&Y8u#JSe_qVrAXC(et`8!jXlAr}=Fa~BVnD3@H93YSKg9+wf9S(lZasGVFpWp?WC zble%dGi_(t&J#P^cMk2G-uZFomMhg&+*Q-n#?{X?!L``+sB4Ssfa`?oJJ$_2lADm5 zs+)zIms^Zmf!krXb8gq&#@y!J*4^>$0`5xgX729pQSN!}mF{QVuep!9zj0snz@U6dEIl&bHVec7r{%= zOU28=%gZa)tI(_3>w;Im*M!%i*Kco%x2U&g@`@7vzf-k*FRADR!{ zN6*L6C&VYir`+eXPq)vA&z#S9U#u^mucEJ+uZM56Z-MU--}Aoxz7xKSzJL5!{KWmV z{OtS!{8IhO{7(6G`rY$;>9?{Ay^D93!Y%y-7T~Br`?b`IG`b+xj z_&fLq`)Bx<`=9ae@qg(5+J7y85Fiww7GM?N8;}@K5^y}ABj8TJi-50zs6d`Tg+S9l zkHDC~!oZrq*1*BQslZP`P!LCuOpsyF&Y*~(+@Qlj=Y#r#o&+rgZ3VLh(}VScorA-I zvx6&xn}crzj|aaG-VC9JNQUTzIE93UWQSCQoDI1VG9L0iWHXc+Dix|1>KqytniEmt^hxMa=yn);m~@yy*v_zsu)MG%VHd(~hE0Zj3Wviv!{x$F!rjAT!i&O>hF=OF z3V#v)H3A*M7oi+s8Q~L=7*QH=GNLPDB;r-XS|l-2BvLcdE;1-GBl2KmQ{?r?@yPd) zTT$#$(ou#{u2E4@1yMCo7o%=RJ&*btjgIDvR*ANX_KQxAE{i@L-4i_;y%4<-!x|$Q zqZi{G6A_aab0nrU=2pzJn6I(uSiV@5SgY7wu_>|pV$Z~0jU9`97rPn97AGBN80Quj z9aj{0EUrE7PTXwVk9b17NW5meeSAoKR(xgr`S^kOsrcmtWCCx3a)M=oUqVX4{)C2v zYYC4N-Y0A)awN(onk0HA#wV5}o=ogce3-b9xRJz~B$Z^4rpKfgryo!6 zOn;C*pZ+_8EkioPIKwj|KBF|FKBFgNEaQD9$mGma$h64x%S_2E&uq%<%bd(y&O&AJ zXQ^e`W(8+uXC2OJ%^J#jne`)^m@SsAo9&Vvm0grwm))8DF#B!xW)3Y!F2^j#Cnq^) ze@NguJr6GkLvvPx3zH zBlG$5)$;A~L-KR;tMl9P@8-YG|5ZROkS;JO@G3|u*jLb4&{r^7@TCw_C{(Cb=vWw0 zSXfwF*jf0n@NMB%5oeKNk!6v8QASZ^QA^S7qL)Q$#gt;HVxwZu;)LR|;)dcI#goNf zc4K!7@7CV!ygO=l@$M75uk0S%y|f43!@EaykL{k&J$ZYM?&;VwvS(q>W(jABVu@8r zKuKoF;gX9bcS>HBY?QK<%9fg!`jw`Y9xA<1db@PCbbT+&Ug^Cidwuq%>^-pe+}^>x zGkaIdC}mP*#${e*$z|nb&1HjSFUnT;k@rdMGv4R5FL~dAea-s@_s#5E-A~z1-*3F% zdw4)gEj|)59S^`cCho{=)w1g;6r?e)DJlviab<&=;WcRhb9g!S70kdDs(H{ zD&i~3Dw-+=DxO#TsH9ZVD@`kXE7K|~D_bk?R=%nHQ^i@ORJEfjq$L#&akF|P5cNv)}4aaQTwA2M~jc1I@)`5^60l?#AA}j zOpf^;OFve1?9#FO$KKY0TE1G1TBq9R+LGFa+Wy+-wX1ckb+UC9b%Av`bw}&E>c;9m z9>*LPIj(oy<9O2XgU2r%A3px(_~r@j6RIa1PDGyAbK>-gz7x++te#{&DSOiLWZ=o% zleH(iPmZ5lK7~6ae#+>S_o=i~Rj1lcjhtGnN7M_}>(sl}C)AhMpRXUTe^bACn)|fc zX~)yir%O*ap1yhd<>_B%XlInp*q#YLQ+%fW%#Ab8&a5`DHpn$tH3T>0H=Jm=)-c(y z(nxNUZnS6&Y|L$}ZR}}$()hKB*hFtKYw~Z(X*$-_-89kk)LGNByUu2xJ$knL z?D*L)&4gyDX47W>=IrKU&E3rt&0o$D&(Y7BoeMaZbFTJW&$%b(zMUtZmp*TCKInYj z`QzuWou4}Y{Q}DcxeL}8LN63vICbI1h36O6Ti9C^TWnh*TK2RwwA^f&ZTa2G)vDI& z)Ee8muk~E(aO?adgNf#?FUb^_;;?gDbCDBWUmwYc}UaGm&b!p<#*EUj{ zbem;ca9cs!$+jD9&)e49Y3<7G4(-wHd)u4ahuY^mK!-qwPKQTFN=H>kd&i@WPnYqR zB`=#@4!E3m`NZYk%g-*ab+UIVciMMGcb0WFcMf+hbirMMU3y(!UFls%x;neYyS{dl zyJfqrxx$cz|^_Vn%b zA>Zmsk$3jqIe+Kgou#|j zyHa;8?uOpoeYffE(A~H9Q1`^{ncfS!S9tHty<7L*+=uUr+&8-Ke?R|z{r!RauSUR# z(1_uP-$?Gr$&vn%xsmM$f)5NH_&&&aaN}FzT4$XATJegU2$?;P2rN_(6mvt}uUe3)zvm&#m zv%#}_W}9d4&wiRC%_+<|%q7fK&2`O9&HZ}C^Gf%X@2lKb^{;NddixsvTI#j+>!{cJ zUtfCt`1SWUv^N@WJltzGZ%N{_6sDL3P1(A#LHhMR-wc(R?v{v23w*acptrJ^Oo& z_a5&v-=BCt@P2*?wIsDjd_UxWX!tPvVd*3Bqx?t5kBJ|T ze7yQ`=Hu2U;ZLTYLOzv#YWei&)5>S|&l;aSKWBeF_4(H4x69aNnPt1>_~okQE6dN9 zH@^sdG5HemrSwb7mq%Y#zS6#Ge)amA^R@o#(AW3h2;bztIets}R`ad*+w2OoBDP|= z61h^o(!TO^<>zW%k^Q6o$L$~QR|%^Mt4^yat4CLF ztiD=9u1T)hti`TXtaYzFTiaY0UN>D2Ti>_dwmz}G{*(8o{?CA)yMLblIr{V4FWN7y zUp~L`e>MKP_v_OJ%ZBQP`$pErsg2tk?|&12EB_%{iuQ&(_Q~*cRWm+K%3?*zVqbvCU)wm@EL3 z1z@rOOcsF20x($sCJVr10hlZRlLcV108AEu$pSE00458-WC55g0Fwn^vH(mLfXMg##a%P4Za?V4}Ip-i5$vI2TL9&2|ASywTAR<9TP(V-=RDxnaMFj;F z#e`r&Q31mR7Vq8N``@#B&Ys<~ANIraoYVDoO-)T#*L-~D`2i3V6%`bn2nzua9g~#c zWMM4i?%^qfxd*U-0N8;BkPHY)jI(t%cL7^ROl(ZZpZ0$|Rv!WAPtT;>pSk|W_x`t6 z#Gtr@Bmf}#)<~(~ki?*^T6e21O-+jX(|=>DrUyp;UC;ih6I`53w)(#SAVduNyB7ZI zPaXJoZH)a>Cu}VOfWSX<(!>6#rT(7hpZd@I^x){=;H@zZTXkJz|Q;ElgQnRWVUXSzb$7 zMM+Wk@6JE{APgu2d7uguK_XE4yVlw|t8CSZ;J*+1Z^QrZ+dq5u&!<;s|Lb08|J(QP zyg|tcDgRut{b?Wo10+BJG{68Hz;Eq15s(38>%OU5drt=pzyY`bH{b!hfDZ@&K_Iks z*P=iShyw{A1(-k@$N;&m6)J44=g+!Sf!fw@MiXcOZJ-16fIct)hQJt@08?NFEPy4j z0@h#~umyI&9ykIg;0#>AcHjowfd}ve-oOX=0zVJ{0znW62BBL|FdXavksu00gBTDC z;z7dJvrGahAQhy6bdUiuK^DjcxgZbh0{Ng2>;^?(4=4sDpcL!_W#9lf2+BbPr~-$; zVNeZfKrN^P^`HS91C8J~Xa+5y6`TNVpdFk79iS7O0bQUQ^nhN_2hM@>-~zY^2EZV= z46cA7Fbqb(Rd5ZAf$QKVxCO?+ZEzP%fP3IRm;_VcA(#d;;4yd#X2CP?9J~N8!7K0v z%!9XJ5xfH*z(?>2dBp@k>3CTcmkUXRaDM2cbDx?l+LRydxqzCCk zhL90t0+~VPkR@ad*+90CJ>&p6K`zjC$PMyf_k7{=p57!U4#aq%g_)s0$qj1pc~LF=r(j0x(7Xgrl3dA4DmHOSQFNUbzyzj2sVMuU`yB<-Ui#lj<7TA3cJIeun+792g1Q{ zD7*uXgrng&H~~(EQ{kO(CY%lD!TIoRcn@3x?}HD(FV!Yl9^ z{0m-(HxV!bg}@^42oiz~!H!@cxDdPu0faC@6d{3NB4iN?2qlCnLIa_V&_fs^j1guC zON0%=4&jJ!LAW725Z(wsL?9vr5srvN#314kNr+U$PDB9|1*wkILh2z6ktRqB zq&3nO>4mLsc>N04>MW5_1t z31mC+G_o7nhwMiVBCjAvk=K#8kav;ykq?oNk+aAb$k)gPxYL${FQ~@I>>S>IdpCG(aQKSTqsMhNh#r(EMm&v^biHmP0F{)zI2#eY7#!9BqxZ zLp!70&|YXibTB#`9fgiVC!^ERS?E0UZuDMs8M+*O7+s5QKsTe?&>iS*bRYTx`Z9V1 zJ%%1fPoSsJGw50LOY}VYJ$ecK4ZVi`jR6=W28SVGXc!I*FGdg}hLOU^VU#fH7;TIJ z#uQ_TvBfxITrr*)KTI$t921R+$E08~Fgch4OfhC3rW|t^Q;RubK>x6Z~dSe5yq1Z@l95xxd6PtrAz!qc6uoc*9Y(4fk_5`*A+l@Vk9l#D@uVHUt zC$JB(Pq1^?H`sUBCG0os59|gGfy3fRI2w)<$Bz@iN#bO2$~X<2F3t#Nf!l_2#JS?U zaRIncTqG_Ymx9Z{<>7YYN^l2phj6vHMqDed1J{i^ha1EV6}Fnkm~0iTA?!sp|Q z@n!f*d=0(<--17d@4}zM58{XM*YS7ollU3@bNn0pd;Ayt3jQ|%B47w40*$~$5Fm&V zqzQ@yHG&Soh+sjmB{&m22!4bRLL?!ckV42L>>}(Tlo2WkHH2e?Rze4%htN;BOt?z8 zMYuk=zqAxL+7(t99 zrVz7;`NU%4e&Qiw9q~BvB=HQfk2pviA>JTP5FZks5?>J)iA%&4;%^d6!ji}&28ov> zLXsjWkkm*zBx8~#$)2>G`wM0hmxboiR7K+Jn|m$ zesUGLj@(3UCwG(k$ydl@&d6m3QK~e}58iku8M3JP(Q`9KB6cdUy z#gXDp@uP%NqA5v~49YIbUdlmAHKl>lO6jEZQU)lalv|Yhlo`q#9LuyZDVt0^I{8R+rbvkmd2LDR>W4uR>fA&*38zyc9!iT+X&lD zw)<=|Y;$Z2Y)fpbZ0l4Ml}M#id8wjQX{s_+i)uu*qB>CBseaTjY78}nnoTXF?xR*x z>!{7tQ`EE60qO|#7WD!3G4&<&9d()dg9d0=8XJw1CPILkpor z(~@afv_jfGS|zQH)=cZ5_0k4uS82CtQ?yyy8`?+OciLaC5z= z448puurqiWVhmY^8bgm^&ah*+G5i?ej5tO*V;5sDqk>V(Xl8UW`WTlPV~h#L4C4jk z9pfwGHwS`)$id*?=aAq~;LzkSL9_L=p3eGyt7S7Y0 z=Q)QsZ*o51e9Ae`xx~4~1-NirG%j8)aV~i-4K712D=ud)Z>|uo7_Ky~Jg&W56vEfM+jF~f2XaSpCvj(U7jYlt zuHkOx?&LntJ;Z&Bdy4xR_X779?q56z9uf~Hj}VVEj|z_-j|Gndk0(zsPc%;|Pae-+ zo=TphJZ(JPJOez}cqVvecwX^*UU%L=-YDJ_-dx_j zycN9lyeD|Oc?Wo}@lNnQ=6%ikiFb_;;v?`e_yqZwd@6i;d=`9;eBOMad~tj``3m^T z_^SDi^L6r_=Nsl5=X=OE$M>G^JKqLBmY>GY&o9ZZ#IM6|&hNnQ$sfWW%b(6)z+c8+ z&ELe|$$y@Ig#R}GBmS5CANW@VfB;^AAs{FqEubo3AYdinBH$~qLm*KgTVRhsg+RSP zn?R4iC4n0P4+NeGEC_rRSQo?y(ggVgB?XlQbpCeeVhX7W83d{O+n1dt#~a7lXcN!)K#hbQqQE`ORX{yObU~a zDaBM{8Zqsdp3E?2A~Tn{k9maI$~?=w!o1C#Va_wZGB>0N(p=Kw(n`|$(l*j=(!tX4 z(%I4_(ubv+rMsmsOOH!WOTUp`mfnyd$Z*Ms$tcO_%h<@c%Y?`z$mGbB${dktl{qUj zBy&gRiOhn`cUef5EXyk^C95WDENd_8ExSWDMYcfppzKlEQ?mWC*JK~azL5PS`%4ZZ zN0$?kQ;^e@vyyX@3zmzQ%a$vZJ0jOA*DE(HcUNv!?w#DKJW`%2FDNf7uO)9G?;;;4 zA1j|FzgNCmzD2%Aen|d~{8RaN@~a9+1*(Fef~7Eg=~dVg(C_l6nYg# z6z(ZJQ~03pQxT&`R}@iHRMc0rQS?v@Q%qLerFcN`sA7lWMaAoi4;5c4E-P*-k(79q zm`WN-rb+v)y&nls|Beg zsO72cS39cKp*Em)OKnDNL2XqXsm`u0qOPcJpl+w`qaLZgQ@vQdTD?`hPyMR;r1~rM zW%W%BvIf6~tcH$;wT6dAxJHUbp+==flSYrmu*N-&IgKTabxoosucox7mZqhqn`WqH zvSxv1rDl_6kLIxEJ|SDRUK0uXPqFOM4eqa z3)f52+oM;l*QVF6cSCPlZ$WQOAEVEyFR8DgZ=vs|AEuwGU!;Fn|AhW| z{pB(Fl$n;9wV9V$ zlv$QpnOTEbm)VHfq}dy@6?3#Xr@555mbtaLmwB{#w)uYZW9HrFBj!`)^X97-7z-{7 zX$u{TZ5F;3u@<=&2Q8W`dM&P5Oj|5k{In!k@>$AT8dy4523jUs7Fr&%Y_q&zIc_;? z`N?wAifScdrD|nnv-#Y>q_fZ z>wfE7)=#ZJS#R1B+B~#bu=%--u#JD4!ZxFA&f7w^ zrEV+UR=cfp+m&tix4quBVvDimww1Bfv$eMkuuZfrw5_&nw;i;-Yx~0Xs~yUY(~fDU zV`pdQZHA6ZS9dzdN8E zxE*91^c@@=f*g_^_BhlybUIvdc;GPau;z$&ABOgGt!yUS=w3G+1@$OIoWxSbFK4f=V9k5 z=LP3qE+iKr7Zn$C7Y~;xmmHUJmll@`F1KCgT)u8cZRgr9vt56?)Ao?P-AKl)w z{o3}K?H{&py3$<5T{T^|x%#;#xbAj6;@aUlSpQY-1T_nvFeHU z?sMK}+-J_`yD!$4&sWjc%-6#=+IN@lA>UKJS9~XZ7k&Toqxy;aY5Cdt1^T7>mG~X= z>-D?o_ss9BKiZ$yU(w&x-@`xJf0zFu|5N@${!{+%{5Jw<0g?f_0S*Bn0XqZs2Q&rr z2iysG6|fpe2owrb3$zaO3rq~$6IdVE6L>vvHgGuz9mEr)5M&zU5fl@YA5yLf6{a8N92Opy9aa%`GVF5LRM@+)&2W0S zbhu&o_VCE?-0(x;r^1KBr^7$)fOl~1klSIh!(&Ixj)EOEJI?I5w&UrJ%;A{M zn9-OgF<)ZQvHY|pVw++w#@>s48@nFI9w!}V80Quj9aj)n6W1MgBkpzoM4sUmynXMFQGYMAmM((V!~!3N1|M! zX`*LheBz$OhQxD;cM{(u{!XGLF_R3F+>&CF3X|%R&L-VTdYSYinUXA#te5PP9GSc; z`ABkC@{Q!V|GDl;9&gsgzk@F(wXD&6DnQNTunVXPXlG~I!kUN$8F%Ol;pQoN@mlv9s zlXp0;EAK|$%e3Cv#8Lp3{4- z?|HfBS226BY_WN@tHsZY*Y;BPO7At<>$5jy?}5E1_m1wJ-Md;sDPfiv zmw1;Xm+UWTD;X(yTC!3~DU~WUF7+x+F5O?+RytBTTe`ZBvX8mXWS{rGlzj*GweK6< z_iW!<8MREN%&g3}EUm1(tfOqK>_yqH{q+6v`z`ke?$6j?wg1fioBLnyUq8TkK>5J7 z1EB|U57Zp!J#hEH;z9Tz-$9Lojt3(T79MOkc;VpG!KHF+xk$NQxm$UBc}aO|`B3?j z@|6lo1+&7m!nY#5qN1X+;zq@*iuFp)O6AIJm7$e+m9>@UD(_c*s6tl>Rq0f1uZpWG zscNYjs(Mnja)|Aa^dYlD{)cuRsyftlX#CLpVQ`rDu=-(#!;yz~A8tH6c=*xb&jyyWDTtljnsxhhYtx2z`tT|J2 zt7g6ys^zQIsCBB1t}U)@uDw$Gq;|EAS|?j)Q5RH~U3a9eukK#mhk8uCNWFf&M}1QL zf%;SR*Xv)^Zye=5s&>@jXw=c7qfJLIAANFkrGeTY+hExc+>p~y+iqg!J_V_9Q+<5=UX#*O3L$JLHI9*;g=e7xoO@bPEI ze>O3il$vatb~F_>H8x#pdfc?qOl_8HwrUP--qn1x`C{{<=C3W}7MT`{mY|lLmfDv7 zmZ_F6t)y0Ft66J6Yj$f*>$%p+*3TyhC!|i8o(MRRb)x3Pxf2ggd~PGONwt}_1+-!n{4}Xl6aDN((Gj5$()n5C;LxMom_4ww@bHMv_Y@crbev0js+$rl* zVW$dC9XoaD)RR+d9rO;R4!e$sj-rm{j^U2y9ltxdI@LOzI%7LaJ5P3wb-q3gPV=AE zKJ9io`E>c|GpBE#es>0aM)Zu)8Q(J*XR6QiotZrIrHj-h-DTMo(zUDWSl6YlCtW|f z8Qsd=4&Bk+CEab^*ScT#fF6M!ogR;#l%C3-?w*OBk7w~`CC{3j4LX~9_UPGxvyacN z_0oHldmVbCdrNvx_Kx+w>4W=(`tjo*29~ z_~sIPN%)e%CErV#mufFvxHNNV^)lnK>Sd?P@t5~sK7IMlF;p{jVQ6M(ZJ1+Nb=Y}0Vff&1*YL#f(g^9;Aq}xde(2*Ep}KU)z2y`C8?*v)3lC zeI28YDUCUd#g6SCJ3V%H?9+APb=m7S*CVg*z21KP=Jj_sus5V`SlkG^vHM2rjjE`IoSGV9>BDaih1>DNJ)p%?8){Aj4E;Md9?mwP0-Y|Y;d~SU6 zw%~1p+kUrmZXdmU`S$bM8+Qcm=-=_ZlYQstoy<?rh!_ylZgR?{3cBhPzkp&P{*` zp$WqY|B2j*V-v#@FYiJ3gzp*O3%s}MUemqNd#~>!?~C0xy&rPF@P5nvvHNcyU>-<5 zuzV2yp!mVb2e%%)pCnAmOm3Tun%pYda(>vz%b_P^_SH}!7qJ@lels%`aYGvcEKbx%OponXoLs?6{n?T)jN7{QN8QRqU(f*T}DBUwghj{QBb? z?>B>Qf!_+ho&0wD+n4X`-_^f+e$V>e`2Fhl#TCMe!iv*M%F2k{M_0#8P-p`hwH-CQo z#r8|}m;0~GU&nr3{k8a;_*?O}%kQ+`b-#yxzxfOMm+W5-edRV3&3IlSS$dG z1z@oNEEa&p0prSY7~@7l7pjV0i&pUI3OCfaL{Xc>!2n z0G1bkprSY7~@7l7pjV0i&pUI3OCfaL{Xc>!2n0G1bkI^fUie-23ae;SeSpLq?$|44NBv%EhCaVv`;U@KF=Wh-wWWGiDJ0K{#z O|BJMXe}?~`pZ^OV!uxvw literal 25456 zcmeI5S5Q<>yRUn#$r%QQob!-#&N)a%a*&MVoRO>`ib@b9h$u+}1q4JeQ)yb1r76n*Pl@-D_6&x_x+F0Q{rF{UhRF06;`!e5`|+ zp@6HKy8vb!U;zQJ05u@)>mL_w?P%(>GX+FOMF##I|NCqGDS-Y~CT0F!>%V{ZfBi)C zkB*H80Ak&lDG?AD=f9J+ckv5@JDUK&kK^zB;D568-|Y8K*8iIWA_4+-<~Z%-nt+JNzjfbMb3)l++Kp^k|0w5UZ07W1Rly`F6PF4W_Iq^Rh{13*z&+VV(>ofoRd1(H- z_U{Y(C&VWH^NH#2009^v0Scf22H*gG=cy9`8BhSz&dsv`RzL%6fCF#>F2D_V03YDr zxp_e#3`Bq^5Cal`4kUpTklERm9FX7Hp3=_tRDdc_2O2;VXzgrM7w7?fUFkPGs`esBO3fI?6N4uQj<7#s!1KnW-X z<={A|0F|H$RD&8&3+lirP!CRnGoTSPfo9MGTERKc2HL>|&;dF@7w85(pch;Mm%$a# z53Yi1U=R#}>tGn%1S4P++yZyNU2qTF2V>wN7zdBQBzO#-fGIEyo`L6J2D}8b;1zfc z-hj8@9e58G!4miYK7r5R3s?bP!8h<7tb+~k18jm{U<+)6KM(}L5E4Q`7zhjDAp%5# z$Pfi$hNuuLM1$BN4u}ilhIk={p*@f<)?900d9iN z!sp=ga0h%5?t%N@e)t+Z1P{X_@NM`m`~ZFkPry&$Dfl`35}t$Kz;EFN_yhb2{sOPU zYw!lV32(uF5HJFTz#{Mn5`qcAf}kNd5ZnkpgaASqA%>tMq!F?R1%xs}4WWt9LFge2 z5he(8gcZUDVUKV^I3wH;o(La=A0iMDf(S!IB4QBnh$KWRA_I|y$U)>I3J^tzV#F~- z8KM$VjW~&@M>HUs5v_=JLpBnpW|5|9)m6-h&KAbF7dNFk&sl8%%{$|04Isz?o_4pJX! zgfv51BCV13NGGHV(gW#@^g{+BLy+OfC}bQm5t)L_KxQHHkOz=O$YNv(vK)B=S%W-< zJcDdTwj$3XJCQxeKIB#8Ao2!s6nPgphJ1v4f}BRqAYUQpkqgKV$Ytazat-+txrG8K zBnpcnpeQI76dQ^Q#fK6?iK6Hz8I%G_8KsWWM(LxBP-ZAAlr72u<&1Jid87PLL8!f` z2viIz0hNNvKxL!yPz9(%sH3PdR3)kgbqdvhYC*N3E}$-=E}{BSgQy#*Tc~@ehp0)^ z6zT8=_6o zmS`KaBiaS+f%ZZBqeIZ)=xB62It879&PL~>52B0FCFlxtHM$PnfNnvzp*zt%=*#E< z^e}o9eGmN*{TMxso|N|b>|^XR>>Tzjb_u(T{f7O4-NGSoSR4sQ#j)dfaY8t8oHR}Wr-swU8Q@HDyKwe6 zXPgJl7Z-#J!^PkdacQ`0+twb>ez)S8>;IqqzIHN4P264DJnX z0rwfViu-}v!ozqho`h$?bK?2%B6vDp4zG;Y#OvWr@RoQxyffYd?~4z{hvQ@MN%#zW zF1`R?j4#8Vz}Mj$@vZm{d@ueg{yP2^{sDdxKaHQozr}yRf5ETee-R)8hCn1x2^<7I zf(Sv9AV*LkXb}tuW&~@3Bf*W}LkJ**5~2x-gmgj8N^&-A@KC&!Uf$=T!r zaxuA_TthxXZY6h;`^W?25%PWVB>6e{HF=Tzg}hGQq97>*3YEf15uk`uWGN~XZHf`a zl44JBrT9>SC=rx+N*X1HQb;*Usif3Vnkem*Zc0C8m~xl$h%!x?qr9hlrmRtZGa;Dp zOjIULCIKdKCOIZmCLJbYrd>>qOzup6OnaH4nUa|@nf5akGnF&dGBq%rW4g$6g=v`S z4%0Z(G}9c@0@E_nI@1<2ikZmF%FN9y%q+>Q$gII^z--QJ$LzxF!yL>U$(+cX!JN;0 zn7NF(hPi?H9P>rye&%83yUY{J&zN5`FEOt$|DXaYmP(OA!$^&9mU3xb8f!otGMBFrMi zqQs)bV$8CO#fim}C4eQIC7vanC6DD0OBqWoOCw7=OApI6mJyZ*EKgZxS>CfOv#hiH zVa2dgSlL+xSS48HS=Ct$SS?uXS>0LvSVLLkSkqW@Sr4(6vDUCQvbMAKvJSA0vOZ*; zVtvKB$oiG_Ck>+EX;d0FO_(N4Q>N+AOlUSV7n%<(gceOpp=Hw!(n@L7v<6xmt%o*1 z8>Ky@P19b{mT0TAO*RA@k&Ts&mraaKj!lhCpUr~Jfz6%GpDmm%fo&h#ezqfQm2CBF zt!x+B`q^%>Jz#svHpjNe_LXgu9l=gyXJzMQ7h{)WS7$e1w`6x@_hb)bk7Q3`&tflR zFJ-S`Z)88ueu;gE{SNyC`wRBB?4Q{;H~6+ob8;KIEOgza!zu-+z%9F=a%u~s8nx~DYm*+aqJ)S2#b398t-+8uqvAk4X9$s-?1zs&)6J9%BcisTr zDBcv_T;5{dO5W4F?Yx(Guk+sLeaicq_apBbAK=6D(fIiJB>9y2bong!9QnNYLipnN zGWZJkO8IK}TKKy7uJPUCo8X(_Ti{#e`^}Hxr}Fdgi}Ne;YxA4&JMeq*2lL1Br}H1+ zFX6A{Z|3jfzs7%?e}exd|04f4{%rxQ0E+;h09`;?Ku^F@z)8SIAXFehAWNV~;J84& zK%2lNfnk9M0@DKX0?PtF1(AXjK`ud2L3u$fK~q6{K~KS8!C1k4f`x)*f^~wef<1ym zg7*cd1m6gL7W^TE6ru=m35g2H3uz0P2{{OP3+)w(7s?bW5;`taFVrs7Cv-#Tq0n=o z_d;KVehXuTS%mq8C52Ul4TN_Iy9)aYM+v72?-xEMTr1on+$}sPd{6kP@EhS};h!QX z5hf8H5eX3`5j_zr5oZxUkw}pgk$jP3A~hl{BHbc`BKJh5MCL`7MK(pzqEt~nQM#y# zsDY@psGDe@XtZd$Xn|;%=qb@Q(LT|eqT`}7q6?zmME{5p#Ms4z#pJ}a#LUDT#eBrV z#FE7F#Ey#9h_#4yiw%k07n>G)E4CuGC5{uPi3^I$h--+OiaUsVi-(FQisy2dTd`XTxWdK0~iK1jb$pQgW~uhO?A36dO=B9aP{ zx{{WXE|LL~F_IaQ2PG>c8zeg=uSwpOoRWMi`BidT3NOVjB_gFDr7LA6%=b(t}l7cxsS>#|5$W?4R2 zX;}?fGg&8DU)d^3l_~fMJH08|XcFXz6Ma%7z zE0Q}Q*DTj9H!L?U_fqbo+)sJ5JgdBryu7@Qyp_D0e6W1He2)B4`IGW(@|Wdr$v=^w zm;WmNM}efkr68f8s$i_(ps+_FQXyU8phBfWlR~$`u)?^)timUSO+~CCo1%!KqN2W{ zjiRSwsA7uZ0mX8~Gm4#xgNhFnXB0mu{!l_Iu__5GDJbbFSu1%eg(@X0?N=&SI-}I7 zG^8}9G^6xU>8CPAnN3+lSxMPI*;d(GIb1nSxlp-MxkR$)$-NK)Xu1Nsa;naSDRB?R@+i1s&lJL zs%xm5tGlQNsVAuCsh6ssR_|25u0F0lr@pMdr9sr-){xTB)UeQS)d)D ztmUZXuNAA6qjgNHUaLcENNZecPV0--wl-OtPg_P?N84K4Q#)KcUAsuTTKk;#745s) z&$T~j|J1?haO%)?G<3{$Ty;Wpl64AnDs`H5F6rFTnbKL%+0e!4vg?ZLs_B~Py66V$ zCg~o~t1A7=b{&^m#kNySE<*c*Qa+|@0s3`-cNm; zKBvBu(#74fqV?4D<}_4E7jA8)O?CGdOL~ zWpKk_(%`MZcSDpR%}~rx)zHk)#W2J$*|5;C%COb2-|(K{jNxa)EhDlKzmc4gzLC9= zuTiW~u2Gp$gHeyssL_?RT>8YY$|9wy-?879RhbtWAq*G(o&=1snvqDh^?KB-W zoiu%Gx^9Ls<1nL}X_@UZ^D>Jx%Q8D=cG|4lY{cxT*`nD`bAmaKxs17K(h2>|Y_~ z7tb!)UHZEmb_MK8+*PovYFFE?fnDRf-t78rjke~rma^8dwzc-Pjm|RTcj^ZLDp+ZG~;C z?N!?`+t;?=?9g@`c2agac6N4tb_sR|?5gbA?FQ{8?B3dK*yHSZ?B(nY?49g`?NjUz z+1J^3+TXOFvR|_Q?Lcu5a!__Kb8vTvaL95facFetbGYX)>+sbP>B#0tchq*Yb@X#g za4c}Fc0BKR-SM&Gg5#zW$w|OT$;s5o%_-a|)2YO%(W%erp3|(;>Tc9-j@?qbb$8qE z4&0r*yJ+{x-JQEfc2DpAxO>}~>MZK4?ri1k;~eXp?|j0!&3VXq()qpfrVGhMz(v`` z%*Dec(j~{G+~usxRhMy>d6x}Wyeprpf~$$Et82JxmTReNv+EVtG1oV)Yi>9ef~Ft<#%QnzNeD{fRdY+2MK9bK3Kh7vx3rqI>Ch z*?R?frFs>6o%ZVWy5}|L_01dW&EqZaZQ||b9pRnhecZd%d(eB*d%^p+50j6mkA{zp zkDpJHPm#|lpKhN!J}-S%_n`N1?~&VMyvKD<#Gafz$M>AuGq~sRo~1oozEodvUoBrd z-$36~-(uf0zJ0zAd|&&n`w{#E{8aob{Jj0*{0jVP{kr^a`MvO4@kjY{`OEnm`@8u^ z`seyr`nUTJ`%n3Q3V;IG0;B@;19k_524n`52ebwZ20RW}3fK;038V+=208|Y1ZD)5 z2DSuV3!DgC4BQH$28jph1UUo+2W1461T_a;3z`U84B85&21^9%1Um+Y1n&zj4L%z@ z5d1iJDfmwaYlvisUdZl{(2%T<<00olu7^Ag`Lq|_%f44;uhCxDy^(wK_MX^#VeiP^ z7kgJi(V;w{ilOGAUZHWJg`st!J)!qPUxluR5yOPS)WdAT0>VL!Xm;aA|awE;&en`#8|}Jh|NgmNbyLW zNXN*~$gIfYk?oN;BA-RBM4_X2qLiX6qV_~3MjeVe6LmRiJnDVaRy0erWVC*?OLRnZ zUUXG-XY{S;+34>vgczY1^%&cjpqTWS(wNqmp_r+diLpNwZ1o$)se_WbI_9w_1X+CL*X~k(xX#;6b)0Wdw>AdMG z>DK9i=^5$e>Fwzw=`Yj2XAm<)GPEsvTd@1vNN+QvOBVGXTQ$=nM2Ky%rVOG$cfK6l+&0qkn=R>OD-l?AXg*TJ~uQs zH@7;sJNH5EyWH(O_B{DK^E}_Y)V$KXw!E8pFZ0&(Dftrl2Kny!vH3;$4f)sdpXPtr zkKHf0Uvt0X{_y?z`%mt_w10g6(gFAY_W|Vt)(3(QWF0thpzFZB18)y(6|fh`7g!Yd z6{HoE7o0D+Rq(1{vyi1wy3n-Hr!cwjSmC+Cn}xH58wZ&VN***i=yfph;E{u84-Oxk zIk;9tDUv8MEb=HyC@L;$DH<+%QM7i5d`RMu;USMh35SjxYB@A~Xy(w`Vaj3pVZ+0o zhZ7GUJ$&}?jl(YwZxk~ZOBEXzdlx4cmlU@Zj~2fw-aNu`MCORu5#J+eN6L>}ICAI6 z{E@Ar>_-)jS{)5Mnt8P9X!p^vql?GjV?4)HkJ%jyJC=W}?%3sHlgE}zuq8qz+9fU} zF(pMMO(jDm&r80SQcCHi#--k+$)%;G?WMO%-<19?V=q%E+f^1+mR(j|)>}4S_OTpQ zE>NyjzPmiS{9t)w`B3@u^0niXJzjpiM{)+mF z{)(p+Un_}~;+2M#UX@9eC6(=!w=3r>w@+}MP(ERMBJ@Q5iBl)~Pdq*GwTf6JUS(9} zU6oQ*R&}B3Zq>VLP|Z`VR_#z7QC(2oP(4`vyn3yMxkkFitj51)U(Jb{o|^HRkF}Uu zp<10bzN`W zMBVZ!+$qsh2B$nvC7&ug)p6?HsfBt(J%7Dcy>oqReQ|wj{b>E0`mNKPr&UhdpN=?P zc)IcQ_0um;|2#uGqj1Lh%-%EkXX?*fJM-+!S_5-~OoK&3U_*Ap$%ZQpPa9Sn$&HeY zW{v)hnT^$reT|PBSDJ`T^d^%g-==*{RZYE3lTBZm3C$AC#?5=0Gn!8{_cl*7e`z7K zNVFKY__k!URJHWBOtySEOFT)*8^7)mqznrFE+H z+c~ClGUqJM1)s}3ck0}=bI;Fhw6V6yw^_G^wjF3|XuIAv+xDxSqg|!lp*^boQ2W{T z(f0ZC;5_en&GRnjO02l0dSL9@Z2 z!TiC7!QsKzLtu!1NO#C{C~c@}=-`h*JH0AyWVmA;q~QV(y;Wf)o|!= z;c(0Ft>O1KP&Y(w7~Sx@k$vOTjiDQJH@0u`-qgP7aWm~^)y>N{r*CeIu#c#Y>>f!N zDI2*sGBL6`$~-DRYBw4+dSvwc=!4PEw}`i-Z&}?6yLIqZ>#aMtmTqHjOWZcQ9ejKL z?WWr!x8L1C-4VHCd?(;e?wvDtZrpiu7rrZW*Wj-2-R!&dcZcr2x(DtF+|$43b1(B= z-MztkbNBw-=fAIa-~0Z)`zP-Y+@HO_{ebU*?gQ@!`yQNpFz{gZ!S)#cnBJJrSms#W z*x=aQ*q?_25A`4Jd6@O^)Who!UynoMg5!qce&adgr^j!M&p$#u5_x3&DDYAKqsB+0 zkKRvUCd4PqCPF3(CeBXWnfNe?pOl*1H5op6c(Q$RY;yTA<+1!@yT>t)OCEPUo_zfM z3F{M;C(cijo>V;Pd-Ckb=2NbxT2DQnW;{Llbnxli6qpj6GMw_C%A0DO8l760#!l0x zEvLh#4^6jEk4=Ah#`H|#nZvWVXJyZNo;`i`<2mPZ&F3D^)1RMwKKT6A3+RQ=3*#4o zFZRD^d2#2(hZ(|*%#6)U)XcG&u9?R(YcJVes=su5nf9{g<-p6iS!h;h)_68>_P}h* z?A_TVrM^{u>-;wPZPnYWZ)e{@?}Xo( zybFF;`0m`h2k%ziQ{OAUcYdGpzWV*O_j3#Ig2;mD!rq0Vh4zKi63P@+JB7uc>Lq#k24>) zKM8&^{uK17@Kf8Tho4qIvwl|l?EX39^Qq4_KEGSWE=w)jEXORDEnixGzP$BC;EU0h zpf81A+P*yevbsWBQD5;`*|$=^GP1JxmGD*etNqvbua#f>zs{~gt0JrBt6{6ftDUP) zR)2is{-*cM?_2)2v)}H2TlvoNUG=;B_l)oL-*0|jTqCT>tvReEuANxBw)Scrxh}qL zwH~!zvfjJ?Y<+7(aKm^bWaH3A$HwHw#t-fvx#f+W<6Bp@X1C#O@olT^sO_@tzU`Sm;E(7Zi$4*6O8)fzdGY5Dg9Tu)01Os@!2&Q? z00s-dU;!8`0D}c!umB7efWZPVSO5kKz+eFwEC7QAV6XrT7J$J5FjxQv3&3Cj7%TvT z1z@lM3>JXF0x(zr1`EJo0T?U*!wbOh0x-M)3@-q~3&8LKFuVW^F95>}!0-YvyZ{U@ z0K*Hw@B%Qr01Phx!wbOh0x-M)3@-q~3&8LKFuVW^F95>}!0-YvyZ{U@0K*Hw@B%Qr z0RR7b0sh@L;8G|6hFX6c1^m0l`2v8;2LK@P{JSQ43;?7q0He(Rr7r?4c&8!4&VNzJ z%f~4w%4#SoDagwU{=L@U7i~xD|4%mr`JKiA|NO=6^hEeu)A&~-0fm26|8v1V%l=32 u|K;9@|D~(Le_WHe(~H1&r>B6^PQQV`ogM?eAbMx~KXknKj|Km)?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&fDz3xPlP?k|Qp9 delta 217 zcmeys`hr!5fr05oPI7KBiva^eZeB@Ikh_yYL}Zi#`y&QU1~vu`23`i~#N^@v-(a_p ziHTAZ-8}1ck_(DT7#J8G7#J9$%1a7B>^VTTNODGE3Xr`4$kr(W8UkeB0f{F;*dIXb zbTFHV1;j22333M7F9Bq0q(j&aAa)XjodIGeXB6cE)l2}gRZ?>EfaWtXZJ8{D1We8@_1+oGd3^sc(u3!WJ@=z=8 diff --git a/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc index 5dfb4cb0df7aec46770fffef9f78689bbb36cca8..aecee414d24b9a3bb29c1c4b446013300179c227 100644 GIT binary patch delta 242 zcmeyv`hiu4fr05mPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}Z26+bd#N^@v-(a_p ziHTAZ-8}0}k_(DT7#J8m7#J9$%1a7B>?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&YK*<_?hv-QkVb_4z$r(ktKs8H%Y?YMUJfQhZOeZD_FiLBx z0EJ{292t@sQW=UF3K$F-;u#be(iv?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&YK*-_?hv-7#N^@v-(a_p ziHTAZ-8}1Uk_(DT7#J7>7#J9$%1a7B>@`5PNODGE3XpvO$kr(W8Ukd$0f{Gp*-Stt zgGf4rEdpW}g#$ax#B^k`0Hd_3 z0#HbX!HFT2p_rkBA)Y~jA)UdN!H7YR!34-I2C@wqj3;|Aer7yB*@j6SPWCXR001sK BG?M@T diff --git a/rtdata/iccprofiles/output/RTv4_Beta.icc b/rtdata/iccprofiles/output/RTv4_Beta.icc index 86825164a5c0f56637b348ef78a797a509f186ff..27e7c85f7fbdad6d9c680c242fb6eb05ac8c4eb9 100644 GIT binary patch delta 242 zcmeyt`hiu4fr05mPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}Z26YD2#N^@v-(a_p ziHTAZ-8}0}k_(DT7#J8m7#J9$%1a7B>?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&YK*-_?hv-5#N^@v-(a_p ziHTAZ-8}1Uk_(DT7#J7>7#J9$%1a7B>@`5PNODGE3XpvO$kr(W8Ukd$0f{Gp*-Stt zgGf4rEdpW}g#$ax#B^k`0Hd_3 z0#HbX!HFT2p@bokA)Y~jA)UdN!H7YR!34-I2C@wqj3;|Aer7yB*@j6SPWCXR001}- BG?4%R diff --git a/rtdata/iccprofiles/output/RTv4_Bruce.icc b/rtdata/iccprofiles/output/RTv4_Bruce.icc index c3a01b116a63e8dc72374a61e404ea970aba851b..72cf801a4e4ad51ba7f1747dd9239ab3ceff5070 100644 GIT binary patch delta 242 zcmeyv`hiu4fr05mPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}Z25kn-#N^@v-(a_p ziHTAZ-8}0}k_(DT7#J8m7#J9$%1a7B>?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&YK*<_?hv-QkVb_4z$r(ktKs8H%Y?YMUJfQhZOeZD_FiLAG z0fl53oEVB2N*R(FQW@eI6d2MOY#EFg^cYNl>|!9>kinRNVX_C~XU6lBZJ5;IWDipc E0Qkr?761SM diff --git a/rtdata/iccprofiles/output/RTv4_Large.icc b/rtdata/iccprofiles/output/RTv4_Large.icc index 176bff9a7f7266d644f489b9b260c2a013c6ce72..e09992e82feca311cd714d66cc31121065790a11 100644 GIT binary patch delta 242 zcmeyv`hiu4fr05mPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}Z24x1d#N^@v-(a_p ziHTAZ-8}0}k_(DT7#J8m7#J9$%1a7B>?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&YK*<_?hv-QkVb_4z$r(ktKs8H%Y?YMUJfQhZOeZD_FiLAG z0fl53d>9fLiWt%vQW@eI6o9lXgAs!sg9(sb3}hQJ7&9L_1kgbxEo0kG)@7XNCD9KpQ0u*9O wOJiX8w48x~H9R$(W%a Qu_zJ51OrU|>nU@ zI+)GG17a721UUokR{*j#(jjb+nHotDb^(Z;oKchuR5Js}R!Pat1Demov}dvaqqM99 tP)LR$h{2t~i9vxOiJ_DslOczpgh3Zb=S_}a{LFY^vJaCwoSegy0syb}G^79k delta 258 zcmeys+Q6p6z`)Fqlbl=3V!*(Vn^#g4eOhB6%G}0k#keM1u5OxEIot#mW3skcL$W}?o%>$ax#B^q|0Hd_7 z8c;}vA&4QBA(_F5!2pco859`O8Ek=UJq8mXyBNqeWH4r6nC!v$neqH&8zyx)*~63q E0Br*^?*IS* diff --git a/rtdata/iccprofiles/output/RTv4_Wide.icc b/rtdata/iccprofiles/output/RTv4_Wide.icc index f95587797ef41a1578ddf1ebad16512e3192073c..f8043a3c2a94b1aba565c07e2d8915a53102025f 100644 GIT binary patch delta 242 zcmeyt`hiu4fr05mPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}Z1~mqe#N^@v-(a_p ziHTAZ-8}0}k_(DT7#J8m7#J9$%1a7B>?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&YK*-_?hv-(#N^@v-(a_p ziHTAZ-8}1Uk_(DT7#J7>7#J9$%1a7B>@`5PNODGE3XpvO$kr(W8Ukd$0f{Gp*-Stt zgGf4rEdpW}g#$ax#B^k`0Hd_3 z0#HbXA)FzTA%!88A)Y~jA)UdN!H7YR!34-I2C@wqj3;|Aer7yB*@j6SPWCXR001F! BG=Bg9 diff --git a/rtdata/iccprofiles/output/RTv4_sRGB.icc b/rtdata/iccprofiles/output/RTv4_sRGB.icc index e760848acc779f790781358d6fc3c55ba8770ff4..8827a8a85321e7856d9c956ab6b231ca23f218f3 100644 GIT binary patch delta 29 kcmeys`hj(VEI$teCxa@3Xkv14fp4%|$izgcjc%)$0DABUh5!Hn delta 29 kcmeys`hj(VEI&5`FM}8Zb7FFFfp4%|$izgcjc%)$0C@ZeXaE2J diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index f76211bd4..2054a6c15 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -668,11 +668,13 @@ void ICCProfileCreator::savePressed() // -----------------setmedia white point for monitor profile sRGB or AdobeRGB in case of profile used for monitor--------------------- //instead of calculations made by LCMS..small differences - v2except = (profileVersion == "v2" && (primariesPreset == "sRGB" || primariesPreset == "Adobe") && illuminant == "DEF"); + v2except = (profileVersion == "v2" && (primariesPreset == "sRGB" || primariesPreset == "Adobe" || primariesPreset == "Rec2020" || primariesPreset == "BruceRGB" || primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0") && illuminant == "DEF"); //necessary for V2 profile if (!v2except) { + std::string is_RTv4 = ""; + if (primariesPreset == "ACES-AP0" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESp0)) { sNewProfile = options.rtSettings.ACESp0; sPrimariesPreset = "ACES-AP0"; @@ -683,7 +685,14 @@ void ICCProfileCreator::savePressed() 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; @@ -692,13 +701,33 @@ void ICCProfileCreator::savePressed() 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; @@ -715,7 +744,22 @@ void ICCProfileCreator::savePressed() return; } } else { - sNewProfile = "RTv2_Beta"; + //new model for v2 profile different from D50 by entering directly XYZ values and media white point + sNewProfile = "RTv2_Beta";//for copy + + 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"; + } } //begin adaptation rTRC gTRC bTRC @@ -957,16 +1001,30 @@ void ICCProfileCreator::savePressed() } cmsWhitePointFromTemp(&xyD, tempv4); + + if (illuminant == "D65") { + xyD = {0.312700492, 0.329000939}; + } + + if (illuminant == "D60") { + xyD = {0.32168, 0.33767}; + } + + } else { if (v2except) { cmsCIExyY XYZ; { - // XYZ = {0.950486322, 1.0, 1.08902736};//White D65 point calculated from white point xy 0,312710 y 0,3290 - // XYZ = {0.95047, 1.0, 1.088830};//White D65 point from B.Lindbloom - XYZ = {0.95045471, 1.0, 1.08905029}; + XYZ = {0.95045471, 1.0, 1.08905029};//white D65 } + + if (primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0") { + XYZ = {0.952646075, 1.0, 1.008825184};//white D60 + } + + cmsCIExyY blackpoint; { @@ -981,16 +1039,6 @@ void ICCProfileCreator::savePressed() if (primariesPreset == "sRGB") { - //Matrix value from B.Lindbloom - /* - rt = {0.4360747, 0.2225045, 0.0139322}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1430804, 0.0606169, 0.7141733}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.3850649, 0.7168786, 0.0971045}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - */ { //Matrix value from spec Adobe rt = {0.43607, 0.22249, 0.01392}; @@ -1005,17 +1053,6 @@ void ICCProfileCreator::savePressed() } if (primariesPreset == "Adobe") { - { - //B.Lindbloom - /* - rt = {0.6097559, 0.3111242, 0.0194811}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1492240, 0.0632197, 0.7448387}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.2052401, 0.6256560, 0.0608902}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - */ - } { //Adobe spec rt = {0.60974, 0.31111, 0.01947}; @@ -1027,6 +1064,50 @@ void ICCProfileCreator::savePressed() } } + if (primariesPreset == "Rec2020") { + { + rt = {0.67337, 0.27901, -0.00192}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.12506, 0.04561, 0.79686}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.16577, 0.67538, 0.02997}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "BruceRGB") { + { + rt = {0.49400, 0.25204, 0.01578}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.14949, 0.06332, 0.74617}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.32071, 0.68463, 0.06294}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "ACES-AP0") { + { + rt = {0.99084, 0.36192, -0.00272}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {-0.03900, -0.08443, 0.81938}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.01236, 0.72250, 0.00824}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "ACES-AP1") { + { + rt = {0.68970, 0.28445, -0.00604}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.12456, 0.04379, 0.82094}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.14995, 0.67175, 0.00999}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + } else { cmsWhitePointFromTemp(&xyD, (double)temp); } @@ -1036,6 +1117,14 @@ void ICCProfileCreator::savePressed() xyD = {0.447573, 0.407440, 1.0}; } + if (illuminant == "D65") { + xyD = {0.312700492, 0.329000939}; + } + + if (illuminant == "D60") { + xyD = {0.32168, 0.33767}; + } + // Calculate output profile's rTRC gTRC bTRC @@ -1046,7 +1135,7 @@ void ICCProfileCreator::savePressed() } if (gammaPreset == "standard_g2.2") { - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 2.19921875); + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 2.19921875);//spec Adobe } if (gammaPreset == "standard_g1.8") { @@ -1176,6 +1265,7 @@ void ICCProfileCreator::savePressed() } } } + } else if (cmsMLUsetWide(descMLU, "en", "US", wDescription.str().c_str())) { if (!v2except) { diff --git a/rtgui/options.cc b/rtgui/options.cc index c690a42e3..c1494a085 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; @@ -1442,66 +1442,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")) { From 25eb93a256e87aeb861b9c801678736b4c3a1a4c Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Mon, 12 Nov 2018 16:45:05 +0100 Subject: [PATCH 008/116] Change Tag desc for all ICCv2 and ICCv4 --- rtdata/iccprofiles/output/RTv2_ACES-AP0.icc | Bin 25452 -> 25444 bytes rtdata/iccprofiles/output/RTv2_ACES-AP1.icc | Bin 25452 -> 25444 bytes rtdata/iccprofiles/output/RTv2_Best.icc | Bin 25452 -> 25432 bytes rtdata/iccprofiles/output/RTv2_Beta.icc | Bin 25424 -> 25412 bytes rtdata/iccprofiles/output/RTv2_Bruce.icc | Bin 25452 -> 25436 bytes rtdata/iccprofiles/output/RTv2_Large.icc | Bin 25500 -> 25484 bytes rtdata/iccprofiles/output/RTv2_Medium.icc | Bin 884 -> 876 bytes rtdata/iccprofiles/output/RTv2_Rec2020.icc | Bin 25452 -> 25444 bytes rtdata/iccprofiles/output/RTv2_Wide.icc | Bin 25452 -> 25432 bytes rtdata/iccprofiles/output/RTv2_sRGB.icc | Bin 25452 -> 25432 bytes rtdata/iccprofiles/output/RTv4_ACES-AP0.icc | Bin 752 -> 756 bytes rtdata/iccprofiles/output/RTv4_ACES-AP1.icc | Bin 752 -> 756 bytes rtdata/iccprofiles/output/RTv4_Best.icc | Bin 752 -> 748 bytes rtdata/iccprofiles/output/RTv4_Beta.icc | Bin 752 -> 752 bytes rtdata/iccprofiles/output/RTv4_Bruce.icc | Bin 752 -> 748 bytes rtdata/iccprofiles/output/RTv4_Large.icc | Bin 752 -> 748 bytes rtdata/iccprofiles/output/RTv4_Medium.icc | Bin 752 -> 752 bytes rtdata/iccprofiles/output/RTv4_Rec2020.icc | Bin 752 -> 752 bytes rtdata/iccprofiles/output/RTv4_Wide.icc | Bin 752 -> 748 bytes rtdata/iccprofiles/output/RTv4_sRGB.icc | Bin 752 -> 748 bytes 20 files changed, 0 insertions(+), 0 deletions(-) diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc index 03d952f9fc09d25b7e828a2213281daee89fe0ff..b54fcfb4e51bd534ca3ccfbc6170a637a4d6dc89 100644 GIT binary patch delta 218 zcmaEJjPc1aMivH!;piyNIHal1;kE*uwQ`K zMIk}XKsA3D7!-KY!E7ZC5IYIXb`k-x%S#G?W+o|s)TiX8qyX6_K=z!J+&mEb0+8L1 zlnqkjlpFw7lvD1We5hd R0vHS?PfT*(JfHDwA^;69F7E&U delta 220 zcmaEIjPcDeMivH!=Qt?NIHal2gFW-us?v< zMIk}X3=B*_0~C1D!E7Y~5IYIXc9H?H%S#G?W+rKX)TiX8qyX7AK=z!J+&mEb29Vv5 zlnqkjk{kh6lvGpxDqz&(g@)&_EF)3KVBZXE0*WV=!SbU?^rV1hXxH Sq%nix;piyNIHal1;kE*uwQ`K zMIk}XKsA3D7!-KY!E7ZC5IYIXb`k-x%S#G?W+o|s)TiX8qyX6_K=z!J+&mEb0+8L1 zlnqkjlpFw7lvD1We5hd R0vHS@PfT*(JfHDwA^;6$F7W^W delta 220 zcmaEIjPcDeMivH!=Qt?NIHal2gFW-us?v< zMIk}X3=B*_0~C1D!E7Y~5IYIXc9H?H%S#G?W+rKX)TiX8qyX7AK=z!J+&mEb29Vv5 zlnqkjk{kh6lvGpxDqz&(g@)&_EF)3KVBZXE0*WV=!SbU?^rV1hXxH Sq%nixyko^&u< z@db#T1ZF#a0kMlBBBK}>l7Pw?MA9K_5wJNBwg!lulADqORAU2V&q>M61F>%a*$pMB z6+n9@OEK!Ias`Ey8O1xL76Sz!fQuoBA%vlf!H6NA!HFT2p_rj$^1>vK%_kU_Bmw|v C+$_id delta 211 zcmca{jPcDeMivH!i`Ng^Qi=@7OC*c=Gk2E`O^q~zv-*l&RBhLY3@ zpuLl&7?42lhn^el~x4Gk25(qJIKkj`MlpvPdsV8Bq!Ua+kioF O^28+f%^Mk)CjtN=vMkyF diff --git a/rtdata/iccprofiles/output/RTv2_Beta.icc b/rtdata/iccprofiles/output/RTv2_Beta.icc index ebd5005e278a4cbe5de8067570451140c7826cef..d697c8caf9baf1177f71f0cdb05cb7dda70f44c2 100644 GIT binary patch literal 25412 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 I|9$^|05wDT$p8QV literal 25424 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 aQ!Bt}r;b42PVE3+5WUj|{`>a-zWqOZ7x~5j diff --git a/rtdata/iccprofiles/output/RTv2_Bruce.icc b/rtdata/iccprofiles/output/RTv2_Bruce.icc index 152b4171717d7acf95542e0876b79f808cec73b9..8d53051887c297477b93446c68e08008fef7c5ef 100644 GIT binary patch delta 209 zcmaEJjPcGfMivH!>WV1NIHal2Euw=04T%|#1O(z#$dz{&)~#R#8AqR%#b>H MVv_sjd5q^00Z{%e+5i9m delta 224 zcmca}jPcDeMivH!=Qt?NIHal2gFW-us?v< zMIk}X3=B*_0~C1D!E7Y~5IYIXc9H?H%S#G?W+rKX)TiX8qyX7AK=z!J+&mEb29Vv5 zlnqkjksJY5lvGpxDqz&(g@)&_EF)3KVBZXE0*WV=!SbU?^rV1hXxH Uq%n|fz@Rv}G0A;%FXQ<{0BoNv1^@s6 diff --git a/rtdata/iccprofiles/output/RTv2_Large.icc b/rtdata/iccprofiles/output/RTv2_Large.icc index a7659d318bf822bca36865ab26d79e4dae456455..019ce621310bdd86893359fbf2bd3ff764d38133 100644 GIT binary patch delta 203 zcmbPpoU!LPBMSpVa?eDT>Gd@!xhW|O3`{Z%3=DJ1OA1PW>>WV1NKr&&6p(!e#7=^+ zAAs2D5cU_anvfu81_ovh1_lM5bTC_41jJ4Pvz-+{?BtB1T%ct-K=mrg1w}yflLLTk zjihX_UC9-bWf=Q4xPwB8i5X2C|P{v@y5YOPlkjPNPkj{`gxsl0z N@;pY~&E`z0i2&okE1CcR delta 218 zcmeA<&N$~dBMSpV@|=k*)9ZUua#Ke%n}R?3Owmxwz3L{odjk(8-Uo!8AZ83%WQz^Rgw#efaWJB z0NENz*%J-0ND*m*&sDG z%n@Kksl~}a8U%QPLduNdeN$61OLHM2Krx0Oh7g7_1|x=e2499$h7^WOhEj&y$qSk6 NCl+vTp2K*95dcP2E0X{K delta 219 zcmaFE_Jxgwfq}VXB1?CDM{+??2?GP;90mpkjiQLiC?NX?kS&r9Vc!6;lOXIjAa+qm zkTU}V6OhTkmkwbIfY?b8wgQMrXNddB5fb2Obxp^S=10cI0DI285 zl{o>(5lKlcP6pB-z@KiUXJk-ppl1LAiV#7dFhe?n5rZBO8!!|Du^te^pyK3-OzxW} IG2UVX0BoHn=>Px# diff --git a/rtdata/iccprofiles/output/RTv2_Rec2020.icc b/rtdata/iccprofiles/output/RTv2_Rec2020.icc index 5426e8d685ee8558e902b26fb266c8d85f5dee05..57eb17a86eafc65cc4945d6aa8e3788540e0e204 100644 GIT binary patch delta 218 zcmaEJjPc1aMivH!;piyNIHal1;kE*uwQ`K zMIk}XKsA3D7!-KY!E7ZC5IYIXb`k-x%S#G?W+o|s)TiX8qyX6_K=z!J+&mEb0+8L1 zlnqj2pBw;Ilv=Qt?NIHal2gFW-us?v< zMIk}X3=B*_0~C1D!E7Y~5IYIXc9H?H%S#G?W+rKX)TiX8qyX7AK=z!J+&mEb29Vv5 zlnqkjk{kh6lvGpxDqz&(g@)&_EF)3KVBZXE0*WV=!SbU?^rV1hXxH Sq%nixyko^&u< z@db#T1ZF#a0kMlBBBK}>l7Pw?MA9K_5wJNBwg!lulADqORAU2V&q>M61F>%a*$pMB z6+n9@OEKyya|MNz8O4WZrlbNTz<`S(h#`cbjKPQ@o*|qelObiYLbBK96O2m|0T5&> A*#H0l delta 211 zcmca{jPcDeMivH!i`Ng^Qi=@7OC*c=Gk2E`O^q~zv-*l&RBhLY3@ zpuLl&7?42lhn^el~x4Gk25(qJIKkj`MlpvPdsV8Bq!Ua+kioF O^28+f%^Mk)CjtN=vMkyF diff --git a/rtdata/iccprofiles/output/RTv2_sRGB.icc b/rtdata/iccprofiles/output/RTv2_sRGB.icc index e311e5d71e11af3f0cd72c78ca2f23bbc23fff16..a039d2f6efa89e23a1c6698f56d9c3b48ce0492a 100644 GIT binary patch delta 206 zcmaEJjPb@XMivH!7 zlnqj2mh1vnlv=Qt?NIHal2gFW-us?v< zMIk}X3=B*_0~C1D!E7Y~5IYIXc9H?H%S#G?W+rKX)TiX8qyX7AK=z!J+&mEb29Vv5 zlnqj2lpFz8lvGpxDqz&(g@)&_EF)3KVBZXE0*WV=$SVm?X-mIJq&& Nd13+k<{ri~i2!5?EhPW| diff --git a/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc index 55de42f4d619afead84ae8a70cc4eaf8620a37c5..5661f7e9ee44ee3351b7863c0a496664d7d80f14 100644 GIT binary patch delta 229 zcmeys`h``8fr05uPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}}23ZD;#N^@v-(a_p ziHTAZ-8}2fk_(DT7#J9R7#J9$%1a7B>=i(^NODGE3Xr`A$kr(W8Ukd$0Es6-*ndFm zbTFGq0K_f|333M7uL5Liq(j&sGc}SRY@oRe8p#<&xj;2@fNYhN+&rN9OiTwR3ouG6 mN&$sr7=jo=7|Iw-7~&Zm8Jrnh8G^yA00y9UHhVCxU<3exhc34O delta 229 zcmeyu`hiu4fr05mPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}Z1~~?f#N^@v-(a_p ziHTAZ-8}0}k_(DT7#J8m7#J9$%1a7B>?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&YOIINqloM<3vUPT!SzE diff --git a/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc index aecee414d24b9a3bb29c1c4b446013300179c227..4237752a48186428f964d0da3b8686528fc2d434 100644 GIT binary patch delta 229 zcmeys`h``8fr05uPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}}26+aN#N^@v-(a_p ziHTAZ-8}2fk_(DT7#J9R7#J9$%1a7B>=i(^NODGE3Xr`A$kr(W8Ukd$0Es6-*ndFm zbTFGq0K_f|333M7uL5Liq(j&sGc}SRY@oRe8p#<&xj;2@fNYhN+&rN9OiTwR3ouG6 mN&$sr7=jo=7|Iw-7~&Zm8Jrnh8G^yA00u(_hRq&~D;NQENiL=U delta 229 zcmeyu`hiu4fr05mPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}Z26+bd#N^@v-(a_p ziHTAZ-8}0}k_(DT7#J8m7#J9$%1a7B>?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&YOIINqloM<3vUPT!k;*u!NODGE3Xr`8$kr(W8UkcL0Es6-*k3^G zbTFHV1H>*0333M7F9T$2q(j&sGc}SR>>Lm~Iin~SsAdX~t&)?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&fDz5xPlP?v>`66 diff --git a/rtdata/iccprofiles/output/RTv4_Beta.icc b/rtdata/iccprofiles/output/RTv4_Beta.icc index 27e7c85f7fbdad6d9c680c242fb6eb05ac8c4eb9..b3c36c28bd3f2b29eb9cd6aa029e043381f097d5 100644 GIT binary patch delta 53 zcmeys`hj(VJTE_k41-Eya&duguv^H)M5&2xZ$(2G${0)-;u)M6QW;7Z5*dOR+!>rU JdoZqG1OS@h4ix|Z delta 53 zcmeys`hj(VJTE7MI)iFra&duguv^H)M5&2xZ$;f1oEQ`sk{C)EG8u9hN*Hv3blzqU H#ubbJnH>%^ diff --git a/rtdata/iccprofiles/output/RTv4_Bruce.icc b/rtdata/iccprofiles/output/RTv4_Bruce.icc index 72cf801a4e4ad51ba7f1747dd9239ab3ceff5070..e6d0a69f7f321b8a41ffcfa8c5cceb82660df851 100644 GIT binary patch delta 221 zcmeys`i519fr05wPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}}26YCj#N^@v-(a_p ziHTAZ-8}0Jk_(DT7#J8`7#J9$%1a7B>;*u!NODGE3Xr`8$kr(W8UkcL0Es6-*k3^G zbTFHV1H>*0333M7F9T$2q(j&sGc}SR>>Lm~Iin~SsAdX~t&)?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&fDz5xPlP?w+}9` diff --git a/rtdata/iccprofiles/output/RTv4_Large.icc b/rtdata/iccprofiles/output/RTv4_Large.icc index e09992e82feca311cd714d66cc31121065790a11..b9cfc94894c1b63910d6990241d9b1e452717f40 100644 GIT binary patch delta 221 zcmeys`i519fr05wPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}}1|;*u!NODGE3Xr`8$kr(W8UkcL0Es6-*k3^G zbTFHV1H>*0333M7F9T$2q(j&sGc}SR>>Lm~Iin~SsAdX~t&)?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&fDz5xPlP?uM94w diff --git a/rtdata/iccprofiles/output/RTv4_Medium.icc b/rtdata/iccprofiles/output/RTv4_Medium.icc index 072bda68fe1656d154d53b7fba3d9521347cc438..40bed87871fa6e665c61166ee421387e7ec18baf 100644 GIT binary patch delta 66 zcmeys`hj(VJTE_k0s~uOa&duguv^H)M5&2xo{UBlC(M==V_;yAVF+RfVJKrTVTfn& WWk_X6VaQ}CWyob<*zCc$f)M~kwGZ3? delta 66 zcmeys`hj(VJTE7MG6Pd$a&duguv^H)M5&2xo{T0FC(M?WU|?X7VF+SyXK-RrU`S#p VWyoa6VJKnH1=4w&Js4Lo0sug+59j~@ diff --git a/rtdata/iccprofiles/output/RTv4_Rec2020.icc b/rtdata/iccprofiles/output/RTv4_Rec2020.icc index e2e2de5dd3e59793accb474af27ed385295eb890..bb7603b5528030ecbebd6d635ae5884b871a8887 100644 GIT binary patch delta 53 zcmeys`hj(VJTE_k5`$i1a&duguv^H)M5&2xZ$(2G${0)-;u(S%QW=sNj2H|+c(VuN G3Pu2#BMqzo delta 53 zcmeys`hj(VJTE7M3WH^0a&duguv^H)M5&2xZ$;f1oEQ`sk{C)EG8u9hN*Hv3blzqU H#ubbJo8b;c diff --git a/rtdata/iccprofiles/output/RTv4_Wide.icc b/rtdata/iccprofiles/output/RTv4_Wide.icc index f8043a3c2a94b1aba565c07e2d8915a53102025f..9a63a8c721d631a472452228a726dcdf84a759b5 100644 GIT binary patch delta 221 zcmeys`i519fr05wPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}}22}>R#N^@v-(a_p ziHTAZ-8}2{k_(DT7#J8`7#J9$%1a7B>;*u!NODGE3Xr`8$kr(W8UkcL0Es6-*k3^G zbTFHV1H>*0333M7F9T$2q(j&sGc}SR>>Lm~Iin~SsAdX~t&)?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&fDz5xPlP?q&qH_ diff --git a/rtdata/iccprofiles/output/RTv4_sRGB.icc b/rtdata/iccprofiles/output/RTv4_sRGB.icc index 8827a8a85321e7856d9c956ab6b231ca23f218f3..6e348a98a3939d7540c5ad7073b0170c591c7df5 100644 GIT binary patch delta 221 zcmeys`i519fr05wPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!1|9}}22}>;#N^@v-(a_p ziHTAZ-8}2{k_(DT7#J8`7#J9$%1a7B>;*u!NODGE3Xr`8$kr(W8UkcL0Es6-*k3^G zbTFHV1H>*0333M7F9T$2q(j&sGc}SR>>Lm~Iin~SsAdX~t&)p#N^@v-(a_p ziHTAZ-8}0}k_(DT7#J8m7#J9$%1a7B>?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)&fDz5xPlP?q&Y5@ From 3cec74c50995522375f7a82969ac8c4c92fcf5f3 Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Tue, 13 Nov 2018 10:36:51 +0100 Subject: [PATCH 009/116] Normalize D50 profiles --- rtdata/iccprofiles/output/RTv2_Best.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv2_Beta.icc | Bin 25412 -> 25432 bytes rtdata/iccprofiles/output/RTv2_Large.icc | Bin 25484 -> 25436 bytes rtdata/iccprofiles/output/RTv2_Wide.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv4_Best.icc | Bin 748 -> 748 bytes rtdata/iccprofiles/output/RTv4_Beta.icc | Bin 752 -> 748 bytes rtdata/iccprofiles/output/RTv4_Large.icc | Bin 748 -> 748 bytes rtdata/iccprofiles/output/RTv4_Wide.icc | Bin 748 -> 748 bytes rtgui/iccprofilecreator.cc | 71 ++++++++++++++++++++++- 9 files changed, 69 insertions(+), 2 deletions(-) diff --git a/rtdata/iccprofiles/output/RTv2_Best.icc b/rtdata/iccprofiles/output/RTv2_Best.icc index 8347db4d6cda8e5a8812f316ff3661b565210e27..f04b96d2807a34cc3844d87cee7c773d3171d3d6 100644 GIT binary patch delta 296 zcmca{jPb@X#tD+rml;?X7#X-2tQgo6lZy*{gWW>eOnqbMRW3dr69WQ(Lj*e5{jBnbNsh+PyCl}Q&NCz4Iq0?N^TyAEqDaTX-LWjDN1$$DVl7u1sAYGTOHrpi0 MFp3~lfossI20 delta 295 zcmca{jPb@X#tD+r7a5otco{?(bQp9KlZy*{gWWPpVNIHZKGG8PK!qxz>Q*u*MfNBImmd#1Y%>!|60ND+bdl)q)i!fGb02M0$ z1%Tk&9R@}aec1{j2I51&<`0Z|2}TQlGcZ`yf;zQc{bP85kHv7#J8TCQhiZNy;uL0jh8T@$>e7~K;%?=Ucegf3fc)<}|J6hSBgi9!GX6OSVg delta 151 zcmca{jPb}ZMivH!WS5C7_Kb`ZUF>IGKTgQ3S}ZNiHZV0kS6m*&0Pa6M*a;K( zfY?PLLC!!mUw}sPq=VT?Kw$-*Brw~F2gEKfDFB+8Bmq*NlADqOWa|Lgb5e5ifNY_p z6F^QwQZ`6YvIj`fUK2WUF?WNpS$Bn2Qz2mk;aaYkDJ delta 377 zcmca}jIrl9qXh#)a!*cjZZVSr14C|JNl}oylR`vflmh!521W*c20;dP2K~h3;sW1b zw-5#(@NxDH22xBDExhY_Q*!fC7#J88fC3FEsl~}a_5vWgCM7ooD9$7UWX~xtDJTK5 zcL3QUML?5*>@y&C5`_H##7>8>zkt<*1UWM>Fmo_4DDb3%*~%gyb`qHFtN>ysXB6c! zFvunA05zy27Zd?4NDct9HIlMHmL*q!44Ql*sbR7RW6flpq&Wc~F98LC;M*~v$AI9{ zZ-m$xEd~b9T|hxbgct`8kPmdlWqpL0(gFsCZFc|v|Npm1Ny1^160d?X*d;)f%s|Yr hN0foV`8CiTcNiG1t1vKd#sdY}Cr@BB;sQxS008!4PLlut diff --git a/rtdata/iccprofiles/output/RTv2_Wide.icc b/rtdata/iccprofiles/output/RTv2_Wide.icc index b93ec47bac04c4d383d50417c5eff834339d1541..06d5747cba04616d580230da0d77a17fcbf56e74 100644 GIT binary patch delta 296 zcmca{jPb@X#tD+rml;?X7#X-2tQgo6lZy*{gWW>eOnqbMRW3dr69WQ(Lj*e5{jBnbNsh+PyCl}Q&NCz4Iq0?N^TyAEqDaTX-LWjDN1$$DVl7u1sAYGTOHrpi0 MFp3~lf@~ delta 295 zcmca{jPb@X#tD+r7Z^AgxEX{Q%o)@ZlZy*{gWWPpVNIHZKGG8PK!qxz>Q*u*MfNBImmd#1Y%>!|60ND+bdl)q)i!fGb02M0$ z1%Tk&9R@}aec1{j2I51&<`0Z|2}awq7#N(aK_Un>lD8QccD6Gx@X8>>R3|bpu-Gv$ M924BEktD+i0K0@dU;qFB diff --git a/rtdata/iccprofiles/output/RTv4_Best.icc b/rtdata/iccprofiles/output/RTv4_Best.icc index 0aaa2a71e0f16cca8d1feef07bdb375ca843fe0e..22ce4276cc641056bf025b047eec12513a193bbc 100644 GIT binary patch delta 29 kcmaFE`i6CaEI%&;2ZIs=dt!2Nfp4%|$izgcjc&`B0C@BWX#fBK delta 29 kcmaFE`i6CaEI$teKZ81ha$<6Efp4%|$izgcjc&`B0DFW8kN^Mx diff --git a/rtdata/iccprofiles/output/RTv4_Beta.icc b/rtdata/iccprofiles/output/RTv4_Beta.icc index b3c36c28bd3f2b29eb9cd6aa029e043381f097d5..6d5bce2a415e2038c0a80448836bbe266c494810 100644 GIT binary patch delta 221 zcmeys`i519fr05wPI7KBiva^eZeB@Ikh_yYL}Zi#`y&Q!23`gZ1|;*u!NODGE3Xr`8$kr(W8UkcL0Es6-*k3^G zbTFHV1H>*0333M7F9T$2q(j&sGc}SR>>Lm~Iin~SsAdX~t&)?J_9NODGE3Xr`6$kr(W8UkcL0f{F;*grt* zbTFHV2gEK4333M7uK;9gq(j&sGc}SR>;e!wIin~SsAdL`t&)outputProfileExist(options.rtSettings.ACESp0)) { sNewProfile = options.rtSettings.ACESp0; sPrimariesPreset = "ACES-AP0"; @@ -759,6 +763,14 @@ void ICCProfileCreator::savePressed() 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"; } } @@ -1010,6 +1022,9 @@ void ICCProfileCreator::savePressed() xyD = {0.32168, 0.33767}; } + if (illuminant == "D50") { + xyD = {0.3457, 0.3585};//white D50 near LCMS values but not perfect...it's a compromise!! + } } else { if (v2except) { @@ -1024,6 +1039,9 @@ void ICCProfileCreator::savePressed() XYZ = {0.952646075, 1.0, 1.008825184};//white D60 } + if (isD50) { + XYZ = {0.964295676, 1.0, 0.825104603};//white D50 room (prophoto) near LCMS values but not perfect...it's a compromise!! + } cmsCIExyY blackpoint; @@ -1108,6 +1126,50 @@ void ICCProfileCreator::savePressed() } } + if (primariesPreset == "ProPhoto") { + { + rt = {0.79755, 0.28802, 0.0}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.03134, 0.00008, 0.82492}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.13531, 0.71190, -0.00002}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "Widegamut") { + { + rt = {0.71603, 0.25818, 0.0}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.14713, 0.01688, 0.77312}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.10104, 0.72493, 0.05177}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "BestRGB") { + { + rt = {0.63254, 0.22844, 0.0}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.12695, 0.03418, 0.81540}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.20471, 0.73738, 0.00951}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "BetaRGB") { + { + rt = {0.67113, 0.30321, 0.0}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.11833, 0.03293, 0.78419}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.17473, 0.66386, 0.04070}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + } else { cmsWhitePointFromTemp(&xyD, (double)temp); } @@ -1125,6 +1187,11 @@ void ICCProfileCreator::savePressed() xyD = {0.32168, 0.33767}; } + if (illuminant == "D50") { + xyD = {0.3457, 0.3585}; + } + +// {0.3457, 0.3585, 1.0}; // Calculate output profile's rTRC gTRC bTRC From b70d06f639d951c5d89dbfc5c28358f931c2af81 Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Tue, 13 Nov 2018 11:35:17 +0100 Subject: [PATCH 010/116] small changes for xyD --- rtgui/iccprofilecreator.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 2a587a528..dc75db61f 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1015,15 +1015,15 @@ void ICCProfileCreator::savePressed() cmsWhitePointFromTemp(&xyD, tempv4); if (illuminant == "D65") { - xyD = {0.312700492, 0.329000939}; + xyD = {0.312700492, 0.329000939, 1.0}; } if (illuminant == "D60") { - xyD = {0.32168, 0.33767}; + xyD = {0.32168, 0.33767, 1.0}; } if (illuminant == "D50") { - xyD = {0.3457, 0.3585};//white D50 near LCMS values but not perfect...it's a compromise!! + xyD = {0.3457, 0.3585, 1.0};//white D50 near LCMS values but not perfect...it's a compromise!! } } else { @@ -1180,15 +1180,15 @@ void ICCProfileCreator::savePressed() } if (illuminant == "D65") { - xyD = {0.312700492, 0.329000939}; + xyD = {0.312700492, 0.329000939, 1.0}; } if (illuminant == "D60") { - xyD = {0.32168, 0.33767}; + xyD = {0.32168, 0.33767, 1.0}; } if (illuminant == "D50") { - xyD = {0.3457, 0.3585}; + xyD = {0.3457, 0.3585, 1.0}; } // {0.3457, 0.3585, 1.0}; From 3ba386d0ca8d1dd1612a0c102c8f21d3a5093c56 Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Tue, 13 Nov 2018 12:23:03 +0100 Subject: [PATCH 011/116] Normalize ICCv4 white point --- rtdata/iccprofiles/output/RTv4_ACES-AP0.icc | Bin 756 -> 756 bytes rtdata/iccprofiles/output/RTv4_ACES-AP1.icc | Bin 756 -> 756 bytes rtdata/iccprofiles/output/RTv4_Best.icc | Bin 748 -> 748 bytes rtdata/iccprofiles/output/RTv4_Beta.icc | Bin 748 -> 748 bytes rtdata/iccprofiles/output/RTv4_Bruce.icc | Bin 748 -> 748 bytes rtdata/iccprofiles/output/RTv4_Large.icc | Bin 748 -> 748 bytes rtdata/iccprofiles/output/RTv4_Medium.icc | Bin 752 -> 752 bytes rtdata/iccprofiles/output/RTv4_Rec2020.icc | Bin 752 -> 752 bytes rtdata/iccprofiles/output/RTv4_Wide.icc | Bin 748 -> 748 bytes rtdata/iccprofiles/output/RTv4_sRGB.icc | Bin 748 -> 748 bytes rtgui/iccprofilecreator.cc | 6 +++--- 11 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc index 5661f7e9ee44ee3351b7863c0a496664d7d80f14..03efd91e258071cb54fb97623a63e58034982a43 100644 GIT binary patch delta 135 zcmeyu`h|6ZEI%&;Hv>O|X<~A5fp4%|$izgcjc$#MvHKYqSp5F~|CYhPz}m^c@Q?Zb z|3CZw|Nm#nz`*p3f#HH;L}Zi#0~q{W&A;YC$Z7m_j`R1IGadh6{TUVkXfH40{eUFfbKNmSMU804wq> AK>z>% delta 127 zcmaFE`i6CaJTC`>5(9f;a&duguv^H)M5&E#<&5!+3_J`B4D3J*0^AG?|G)hQ0w9|a zNd04AWZ;X4j8XteGB7NB$G~7!4Pqh06dD*9I1Vr{T-b*YGs$3J*mIPDfhm8o4ATVw DL{lGd diff --git a/rtdata/iccprofiles/output/RTv4_Beta.icc b/rtdata/iccprofiles/output/RTv4_Beta.icc index 6d5bce2a415e2038c0a80448836bbe266c494810..1186153260e27a9977bb1e5b4295128399e1ab8b 100644 GIT binary patch delta 93 zcmaFE`i6CaJTEtc2m@PUa&duguv^H)M5&E#<&4G*|Ns8~|NkEp|7BogU5`$J^a&duguv^H)M5&E#<&4IR3_J`B4D3J*0^AG?|G)hQ0w9|a oNd04AWZ;X4j8XteGBB(@&%oe2fAR-LW!Bvc3@blRmSDO90K?xKvH$=8 diff --git a/rtdata/iccprofiles/output/RTv4_Bruce.icc b/rtdata/iccprofiles/output/RTv4_Bruce.icc index e6d0a69f7f321b8a41ffcfa8c5cceb82660df851..d617673052158f35d8a05c5349e0b6983637b811 100644 GIT binary patch delta 127 zcmaFE`i6CaEI%&;H-iX+Y+`b8fp4%|$izgcjc%2Uu}%yOtoQ!^|E$Wuz&@FQ;qQe1 z|9>z1|NrkI1_tIk3=9YIA|j&{7{H*ek%7UXhk=2G3n8ZF&cGmG!N9Pe10fc~$H1`O M1}H8)S%&EX0OFV;761SM delta 127 zcmaFE`i6CaEI$teKZ81hRbp~+fp4%|$izgcjc%2Uv0e-etdIZy|E$Hpz&@LS;cxr@ z|GyXg|NnO}0|WC728IJuA|j&{7{H*eoPoiije&uM3n8ZF%D^CC#=x+j6(JTR#lW!M M1t=~%S%&EX00s#neEy&7zZnm3&fXo5MoNR7#OzM0>v38%P?I40L@e?8~^|S delta 127 zcmaFE`i6CaJTC`>JOh7Xa&duguv^H)M5&E#<&5!+3_J`B4D3J*0^AG?|G)hQ0w9|a zNd04AWZ;X4j8XteGBBLcVPNpw17ab>IM{$(RtAR4dI&M4B@7JP>_O&CmSMU802JCF AbpQYW diff --git a/rtdata/iccprofiles/output/RTv4_Medium.icc b/rtdata/iccprofiles/output/RTv4_Medium.icc index 40bed87871fa6e665c61166ee421387e7ec18baf..f81aba3913cacce8561847d4589ce657ea58f249 100644 GIT binary patch delta 127 zcmeys`hj(VEI%&;H-jL9Qetv(fp4%|$izgcjc&D!u}%yOtoQ!^|E$Wuz&@FQ;qQe1 z|9>z1|NrkI1_tIk3=9YIA|j&{7{FkT1OtQrQU(T=KL{~3Lk0!`eFlbovk_t@y$lQs ObQl=;r%qO2x&QziR3s$; delta 127 zcmeys`hj(VEI$teKZ61TTVir?fp4%|$izgcjc&D!v0e-etdIZy|E$Hpz&@LS;cxr@ z|GyXg|NnO}0|WC728IJuA|j&{7{FkTAOnN{0tN<_KL{~30|o{GT?U4IGZA7YQyCZ* O7%?#LPoJ#7bO8V*NF+}H diff --git a/rtdata/iccprofiles/output/RTv4_Rec2020.icc b/rtdata/iccprofiles/output/RTv4_Rec2020.icc index bb7603b5528030ecbebd6d635ae5884b871a8887..9fcb5d263b82e3f388e382be0f890f0552785ea4 100644 GIT binary patch delta 127 zcmeys`hj(VEI%&;H-iv^WMXo0fp4%|$izgcjc&D!u}%yOtoQ!^|E$Wuz&@FQ;qQe1 z|9>z1|NrkI1_tIk3=9YIA|j&{7{FjnCIf?e{{R2~8xdj(%nS_NYZ(|$|3ipr0oAQ} M3^Z@;WCf-R0IlOF7ytkO delta 127 zcmeys`hj(VEI$teKZ6p3USe`_fp4%|$izgcjc&D!v0e-etdIZy|E$Hpz&@LS;cxr@ z|GyXg|NnO}0|WC728IJuA|j&{7{Fjn5(9&K?*IS)n-F3OEDQ|XYZ(|$|3`>v6)-TY Nc?L9Z&140p3joe-D0lz> diff --git a/rtdata/iccprofiles/output/RTv4_Wide.icc b/rtdata/iccprofiles/output/RTv4_Wide.icc index fced23d15f6bda0494fa4e95a78530c24102202b..6dca43823e347e6d3a519d85ee52b34f444e9137 100644 GIT binary patch delta 119 zcmaFE`i6CaJTEtcFav*La&duguv^H)M5&E#<&5DB|Ns8~|NkEp|7BogU0)us8a&duguv^H)M5&E#<&5Es3_J`B4D3J*0^AG?|G)hQ0w9|a vNd04AWZ;X4j8XteGB9lSV_z1|NrkI1_tIk3=9YIA|j&{7{DNZ0Rw}@SD^R=gqX^F1_u5X28L~i5n@Tx85p*= NGcZWpoGin10RT)+CM5s> delta 127 zcmaFE`i6CaEI$teKZ7a*b7FFFfp4%|$izgcjc%2Uv0e-etdIZy|E$Hpz&@LS;cxr@ z|GyXg|NnO}0|WC728IJuA|j&{7{DNZ3Il`1JD~UkgqX@)1_u6S28M0>5MoJ785p)t NU|^8AH(7@10su_tCP4rI diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index dc75db61f..c028ee9e7 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1179,15 +1179,15 @@ void ICCProfileCreator::savePressed() xyD = {0.447573, 0.407440, 1.0}; } - if (illuminant == "D65") { + if (isD65) { xyD = {0.312700492, 0.329000939, 1.0}; } - if (illuminant == "D60") { + if (isD60) { xyD = {0.32168, 0.33767, 1.0}; } - if (illuminant == "D50") { + if (isD50) { xyD = {0.3457, 0.3585, 1.0}; } From 5535603710282195d6c581026a9142312ff8a50f Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Tue, 13 Nov 2018 14:31:30 +0100 Subject: [PATCH 012/116] Change sligthly matrix XYZ for ICCv2 due to white point change --- rtdata/iccprofiles/output/RTv2_ACES-AP0.icc | Bin 25444 -> 25444 bytes rtdata/iccprofiles/output/RTv2_ACES-AP1.icc | Bin 25444 -> 25444 bytes rtdata/iccprofiles/output/RTv2_Best.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv2_Beta.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv2_Bruce.icc | Bin 25436 -> 25436 bytes rtdata/iccprofiles/output/RTv2_Large.icc | Bin 25436 -> 25436 bytes rtdata/iccprofiles/output/RTv2_Medium.icc | Bin 876 -> 876 bytes rtdata/iccprofiles/output/RTv2_Rec2020.icc | Bin 25444 -> 25444 bytes rtdata/iccprofiles/output/RTv2_Wide.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv2_sRGB.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv4_Medium.icc | Bin 752 -> 752 bytes rtgui/iccprofilecreator.cc | 54 ++++++++++---------- 12 files changed, 27 insertions(+), 27 deletions(-) diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc index b54fcfb4e51bd534ca3ccfbc6170a637a4d6dc89..a12a57402705fa3564bff99bebd5056c2ab07465 100644 GIT binary patch delta 64 zcmaEIjPc1a#to+#4OcTT#4P>)|G!^EWRwB}7%(d_Fzoooz`!I66Z`-F8|VN3uTmHo ME*{$ahcP1&02bvKm;e9( delta 64 zcmaEIjPc1a#to+#4OcKQ#4P{+|G!^EWRwB}7%*!wFzoooz`!H}6Z`-F8_WOyuaX%U ME*{?ehcP1&02fmjnE(I) diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc index dc7e1f709e7de8c83be15926b36b1f2ab61ba022..079eed297c05d9ca44d6c9347de1236be5d87c27 100644 GIT binary patch delta 44 xcmaEIjPc1a#to+#W#=$3cwGDc|6fT&WRwB}7^sCaFs%N^SXDCsK}2Mf0*Gc{Fv(zG*mIPDfhiv$rqIB^z;S?q;ljSn I9~d(d0X*0c$^ZZW diff --git a/rtdata/iccprofiles/output/RTv2_Beta.icc b/rtdata/iccprofiles/output/RTv2_Beta.icc index c17ff0f0f9b6090d80e42d0127386407752abaa3..e6772948388f460585a855fc8af1f5d699488605 100644 GIT binary patch delta 40 scmca{jPb@X#tr)!CGRjW_%3Atf{4f{1rW`^ptGKVVddM+Hy9fd0TYc3p8x;= delta 40 scmca{jPb@X#tr)!CC@W3_|9hlf{4f{1rW`^ptGBSVddw|Hy9fd0TKrco&W#< diff --git a/rtdata/iccprofiles/output/RTv2_Bruce.icc b/rtdata/iccprofiles/output/RTv2_Bruce.icc index 8d53051887c297477b93446c68e08008fef7c5ef..601c485fd5d73571fb12bad7ef194ad604f77523 100644 GIT binary patch delta 72 zcmca}jPcGf#tnxV4I3F49C{cSShyl0qZAmxAc&8FVZ99lgMc(bOwAq0w_sq{&#_5K P!eNsVkHTh&Bo{^ia^Vjx delta 72 zcmca}jPcGf#tnxV4a*rA9NHKdShyl0qZAmxAV`XVVZ93jgMchTOwAR@H)CMf&$>xT P!eNsVkHTh&Bo{^iatjYE diff --git a/rtdata/iccprofiles/output/RTv2_Large.icc b/rtdata/iccprofiles/output/RTv2_Large.icc index 962c759bbaae93009497befacaff670aeb255295..acb6a91f993470d6bbe4f7c0a548930659e9c6f0 100644 GIT binary patch delta 72 zcmca}jPcGf#tnxV4b2%CJohmGK}2Mf0*Gc{P@2WSu+0|8U_^**w-S&6qp$pxYsf;oc_1@ I4`W6m0MT?4>Hq)$ delta 64 zcmaEIjPc1a#to+#4U-rc+;ji`|KAi58KuAg23iFS3~Qb-FtD#dh$*lzFmSJBU^xAM J^B=~HL;%qS6YT&1 diff --git a/rtdata/iccprofiles/output/RTv2_Wide.icc b/rtdata/iccprofiles/output/RTv2_Wide.icc index 06d5747cba04616d580230da0d77a17fcbf56e74..a932f5a06ec1686765ca94d7b8f47859b9a04a26 100644 GIT binary patch delta 36 ocmca{jPb@X#tr)!MZ*~woTM0lAR;nK0Yoz}NM7B1g|Q_O0L)tn{Qv*} delta 36 ocmca{jPb@X#tr)!Mg15UoFo{4AR;nK0Yoz}NZ#9gg|Q_O0Lyy``v3p{ diff --git a/rtdata/iccprofiles/output/RTv2_sRGB.icc b/rtdata/iccprofiles/output/RTv2_sRGB.icc index a039d2f6efa89e23a1c6698f56d9c3b48ce0492a..e0f967bfe4a296e12e95de7886163450cd033aed 100644 GIT binary patch delta 64 zcmca{jPb@X#tr)!4HqylSbSw*V4e^W8KuAg21(Ny7`C@FFi6})h^fqHVBl|IVAyte J^9RO^L;!C|5&8fC delta 64 zcmca{jPb@X#tr)!4Hq#mSbSw*V4e^W8KuAg21zp+7`C@EFi6}&h^Z`KVBl|IVAytk J^9RO^L;!Ft5()qS diff --git a/rtdata/iccprofiles/output/RTv4_Medium.icc b/rtdata/iccprofiles/output/RTv4_Medium.icc index f81aba3913cacce8561847d4589ce657ea58f249..075e9637c4daf56c91e68ba325a3ef214bc9eda3 100644 GIT binary patch delta 27 icmeys`hj(VJTEVU00UoQa&duguv^H)M5&E#tC#?D0tjLN delta 27 icmeys`hj(VJTEtcAcIn3a&duguv^H)M5&E#tC#?EEC_V~ diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index e5e0f759f..0e4921b3f 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1063,12 +1063,12 @@ void ICCProfileCreator::savePressed() if (primariesPreset == "sRGB") { { - //Matrix value from spec Adobe - rt = {0.43607, 0.22249, 0.01392}; + //Matrix value from spec Adobe but adapted with wp + rt = {0.43604, 0.22249, 0.01392}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.14307, 0.06061, 0.71410}; + bt = {0.14305, 0.06061, 0.71391}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.38515, 0.71687, 0.09708}; + gt = {0.38512, 0.71690, 0.09706}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } @@ -1077,10 +1077,10 @@ void ICCProfileCreator::savePressed() if (primariesPreset == "Adobe") { { - //Adobe spec + //Adobe spec adapted with wp rt = {0.60974, 0.31111, 0.01947}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.14919, 0.06322, 0.74457}; + bt = {0.14919, 0.06322, 0.74455}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); gt = {0.20528, 0.62567, 0.06087}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); @@ -1089,88 +1089,88 @@ void ICCProfileCreator::savePressed() if (primariesPreset == "Rec2020") { { - rt = {0.67337, 0.27901, -0.00192}; + rt = {0.67348, 0.27904, -0.00194}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.12506, 0.04561, 0.79686}; + bt = {0.12505, 0.04561, 0.79684}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.16577, 0.67538, 0.02997}; + gt = {0.16566, 0.67534, 0.02998}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "BruceRGB") { { - rt = {0.49400, 0.25204, 0.01578}; + rt = {0.49416, 0.25214, 0.01578}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.14949, 0.06332, 0.74617}; + bt = {0.14952, 0.06335, 0.74622}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.32071, 0.68463, 0.06294}; + gt = {0.32053, 0.68451, 0.06291}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "ACES-AP0") { { - rt = {0.99084, 0.36192, -0.00272}; + rt = {0.99089, 0.36189, -0.00272}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {-0.03900, -0.08443, 0.81938}; + bt = {-0.03893, -0.08441, 0.81937}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.01236, 0.72250, 0.00824}; + gt = {0.01224, 0.72250, 0.00826}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "ACES-AP1") { { - rt = {0.68970, 0.28445, -0.00604}; + rt = {0.68988, 0.28452, -0.00604}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); bt = {0.12456, 0.04379, 0.82094}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.14995, 0.67175, 0.00999}; + gt = {0.14977, 0.67169, 0.01001}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "ProPhoto") { { - rt = {0.79755, 0.28802, 0.0}; + rt = {0.79771, 0.28806, 0.0}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.03134, 0.00008, 0.82492}; + bt = {0.03133, 0.00008, 0.82489}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.13531, 0.71190, -0.00002}; + gt = {0.13516, 0.71187, 0.00002}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "Widegamut") { { - rt = {0.71603, 0.25818, 0.0}; + rt = {0.71617, 0.25821, 0.0}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); bt = {0.14713, 0.01688, 0.77312}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.10104, 0.72493, 0.05177}; + gt = {0.10091, 0.72493, 0.05177}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "BestRGB") { { - rt = {0.63254, 0.22844, 0.0}; + rt = {0.63274, 0.22847, 0.0}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.12695, 0.03418, 0.81540}; + bt = {0.12694, 0.03418, 0.81538}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.20471, 0.73738, 0.00951}; + gt = {0.20451, 0.73735, 0.00952}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "BetaRGB") { { - rt = {0.67113, 0.30321, 0.0}; + rt = {0.67133, 0.30330, 0.0}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); bt = {0.11833, 0.03293, 0.78419}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.17473, 0.66386, 0.04070}; + gt = {0.17455, 0.66377, 0.04070}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } From 7a84f8211ecb6b7ebe31b3dff25ad51f89842b49 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 13 Nov 2018 22:22:09 +0100 Subject: [PATCH 013/116] Show 'Could not extract thumb from ...' only in verbose mode, closes #4984 --- rtengine/rtthumbnail.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index f01e87ff7..aafdea029 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -421,7 +421,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; From 24ce9148b96b9cb62246e272540a3b9f53518dfb Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 13 Nov 2018 22:23:30 +0100 Subject: [PATCH 014/116] Remove useless logging in verbose mode, #4985 --- rtengine/ipvibrance.cc | 6 ------ 1 file changed, 6 deletions(-) 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) { From be4027349d583149be4c3e9457cde813e0d4cd77 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 13 Nov 2018 22:39:54 +0100 Subject: [PATCH 015/116] Remove useless logging while panning in verbose mode, #4985 --- rtengine/dcrop.cc | 12 ------------ rtengine/improccoordinator.cc | 17 ----------------- 2 files changed, 29 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 6aa1bd2fe..ddb1b750d 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1163,10 +1163,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 +1254,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 +1318,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/improccoordinator.cc b/rtengine/improccoordinator.cc index ac330db23..f683f0b71 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1010,10 +1010,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 +1023,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 +1046,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"); - } - } From 9453c23b48cb587cffdd731c3902916b8c5a38bf Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 13 Nov 2018 22:46:13 +0100 Subject: [PATCH 016/116] Remove useless 'freeall...' logs, #4985 --- rtengine/dcrop.cc | 4 ---- rtengine/improccoordinator.cc | 4 ---- 2 files changed, 8 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index ddb1b750d..48d1df191 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1100,10 +1100,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; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index f683f0b71..2eb72a72b 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -965,10 +965,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; From 406a64c4697b0170f198916b83120c9cbde7ea47 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 13 Nov 2018 22:59:29 +0100 Subject: [PATCH 017/116] Don't log filter settings on startup, #4985 --- rtgui/filecatalog.cc | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 55e293718..49559f93e 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; /* From 88e9cf165c9b463bc70a0eb2c36227ab3db42e2d Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Wed, 14 Nov 2018 09:07:14 +0100 Subject: [PATCH 018/116] Increases the accuracy of XYZ matrix for ICC v2 --- rtgui/iccprofilecreator.cc | 82 +++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 0e4921b3f..10d3614d9 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1061,14 +1061,14 @@ void ICCProfileCreator::savePressed() cmsCIExyY gt; if (primariesPreset == "sRGB") { - + //calculated with personnal special spreadsheat { //Matrix value from spec Adobe but adapted with wp - rt = {0.43604, 0.22249, 0.01392}; + rt = {0.4360411843, 0.2224843154, 0.0139201582}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.14305, 0.06061, 0.71391}; + bt = {0.1430457992, 0.0606099658, 0.7139121724}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.38512, 0.71690, 0.09706}; + gt = {0.3851136574, 0.7169049862, 0.0970677661}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } @@ -1077,100 +1077,100 @@ void ICCProfileCreator::savePressed() if (primariesPreset == "Adobe") { { - //Adobe spec adapted with wp - rt = {0.60974, 0.31111, 0.01947}; + //Adobe spec adapted with wp calculated with personnal special spreadsheat + rt = {0.6097408852, 0.3111123176, 0.0194653393}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.14919, 0.06322, 0.74455}; + bt = {0.1491866649, 0.0632119133, 0.7445599707}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.20528, 0.62567, 0.06087}; + gt = {0.2052730908, 0.6256750365, 0.0608747867}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "Rec2020") { - { - rt = {0.67348, 0.27904, -0.00194}; + {//calculated with personnal special spreadsheat + rt = {0.6734800343, 0.2790423273, -0.0019336766}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.12505, 0.04561, 0.79684}; + bt = {0.1250489478, 0.0456126910, 0.7968509159}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.16566, 0.67534, 0.02998}; + gt = {0.1656716588, 0.6753442491, 0.0299828575}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "BruceRGB") { - { - rt = {0.49416, 0.25214, 0.01578}; + {//calculated with personnal special spreadsheat + rt = {0.4941542253, 0.2521357351, 0.0157753562}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.14952, 0.06335, 0.74622}; + bt = {0.1495175342, 0.0633521060, 0.7462112712}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.32053, 0.68451, 0.06291}; + gt = {0.3205288814, 0.6845114263, 0.0629134693}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "ACES-AP0") { - { - rt = {0.99089, 0.36189, -0.00272}; + {//calculated with personnal special spreadsheat + rt = {0.9908835135, 0.3618940325, -0.0027137400}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {-0.03893, -0.08441, 0.81937}; + bt = {-0.0389246557, -0.084405166, 0.8193659780}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.01224, 0.72250, 0.00826}; + gt = {0.0122417831, 0.7225104015, 0.0082478587}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } - if (primariesPreset == "ACES-AP1") { - { - rt = {0.68988, 0.28452, -0.00604}; + if (primariesPreset == "ACES-AP1") {//done + {//calculated with personnal special spreadsheat + rt = {0.6898756188, 0.2845109670, -0.0060455375}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.12456, 0.04379, 0.82094}; + bt = {0.1245615936, 0.0437959432, 0.8209388333}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.14977, 0.67169, 0.01001}; + gt = {0.1497634285, 0.6716923572, 0.0100068009}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "ProPhoto") { - { - rt = {0.79771, 0.28806, 0.0}; + {//calculated with personnal special spreadsheat + rt = {0.7977198204, 0.2880493171, -0.0000030551}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.03133, 0.00008, 0.82489}; + bt = {0.0313194091, 0.0000771282, 0.8248890748}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.13516, 0.71187, 0.00002}; + gt = {0.1351614114, 0.7118728221, 0.0000140770}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "Widegamut") { - { - rt = {0.71617, 0.25821, 0.0}; + {//calculated with personnal special spreadsheat + rt = {0.7161680478, 0.2582038074, -0.0000027515}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.14713, 0.01688, 0.77312}; + bt = {0.1471328469, 0.0168600579, 0.7731227232}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.10091, 0.72493, 0.05177}; + gt = {0.1008997462, 0.7249354021, 0.0517801251}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "BestRGB") { - { - rt = {0.63274, 0.22847, 0.0}; + {//calculated with personnal special spreadsheat + rt = {0.6327383009, 0.2284760022, -0.0000024233}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.12694, 0.03418, 0.81538}; + bt = {0.1269437333, 0.0341753604, 0.8153773703}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.20451, 0.73735, 0.00952}; + gt = {0.2045186067, 0.7373479048, 0.0095251497}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } if (primariesPreset == "BetaRGB") { - { - rt = {0.67133, 0.30330, 0.0}; + {//calculated with personnal special spreadsheat + rt = {0.6713200674, 0.3033034560, -0.0000012307}; cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.11833, 0.03293, 0.78419}; + bt = {0.1183343909, 0.0329265310, 0.7842009909}; cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.17455, 0.66377, 0.04070}; + gt = {0.1745461827, 0.6637692805, 0.0407003365}; cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); } } From 1f04599bc31fbba73879fbb3c73e7575f4814878 Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Wed, 14 Nov 2018 11:29:26 +0100 Subject: [PATCH 019/116] change ICCv2 to be in line with the most accurate data XYZ --- rtdata/iccprofiles/output/RTv2_Wide.icc | Bin 25432 -> 25432 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/rtdata/iccprofiles/output/RTv2_Wide.icc b/rtdata/iccprofiles/output/RTv2_Wide.icc index a932f5a06ec1686765ca94d7b8f47859b9a04a26..3d3f72f5359d6d32378b582b17e239990ca237d7 100644 GIT binary patch delta 16 Ycmca{jPb@X#tp9-83Q-JVa!Pc07nJ~ng9R* delta 16 Ycmca{jPb@X#tp9-8G|;zVa!Pc07nc5n*aa+ From e02d4ac24d058ff706df875f65f360c5fd013fa4 Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Wed, 14 Nov 2018 13:01:43 +0100 Subject: [PATCH 020/116] Change CmsCIExyY by cmsCIEXYZ in some cases --- rtgui/iccprofilecreator.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 10d3614d9..6ac043437 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1034,7 +1034,7 @@ void ICCProfileCreator::savePressed() } else { if (v2except) { - cmsCIExyY XYZ; + cmsCIEXYZ XYZ; { XYZ = {0.95045471, 1.0, 1.08905029};//white D65 @@ -1056,9 +1056,9 @@ void ICCProfileCreator::savePressed() cmsWriteTag(profile_v2_except, cmsSigMediaBlackPointTag, &blackpoint); cmsWriteTag(profile_v2_except, cmsSigMediaWhitePointTag, &XYZ); - cmsCIExyY rt; - cmsCIExyY bt; - cmsCIExyY gt; + cmsCIEXYZ rt; + cmsCIEXYZ bt; + cmsCIEXYZ gt; if (primariesPreset == "sRGB") { //calculated with personnal special spreadsheat From 297324794821b13fee28d81ceebc4792bf0bada8 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 14 Nov 2018 14:42:25 +0100 Subject: [PATCH 021/116] lossless_dnglj92_load_raw(), don't use malloc/free --- rtengine/dcraw.cc | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 79c0e59f6..f61cd94c2 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -1147,11 +1147,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 +1159,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 +1172,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() From 66bb7ba8540a5bf86b2fa510501c1be3c34de7a3 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 14 Nov 2018 15:18:14 +0100 Subject: [PATCH 022/116] Fix broken arm builds --- rtengine/boxblur.h | 1 + 1 file changed, 1 insertion(+) 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 From ff8ec9be084b9b887dd222783a158f52eebdda1e Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Wed, 14 Nov 2018 17:47:34 +0100 Subject: [PATCH 023/116] Small changes to ICCv2 profiles --- rtdata/iccprofiles/output/RTv2_ACES-AP0.icc | Bin 25444 -> 25444 bytes rtdata/iccprofiles/output/RTv2_ACES-AP1.icc | Bin 25444 -> 25444 bytes rtdata/iccprofiles/output/RTv2_Best.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv2_Beta.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv2_Bruce.icc | Bin 25436 -> 25436 bytes rtdata/iccprofiles/output/RTv2_Large.icc | Bin 25436 -> 25436 bytes rtdata/iccprofiles/output/RTv2_Medium.icc | Bin 876 -> 876 bytes rtdata/iccprofiles/output/RTv2_Rec2020.icc | Bin 25444 -> 25444 bytes rtdata/iccprofiles/output/RTv2_Wide.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv2_sRGB.icc | Bin 25432 -> 25432 bytes rtdata/iccprofiles/output/RTv4_ACES-AP0.icc | Bin 756 -> 756 bytes rtdata/iccprofiles/output/RTv4_ACES-AP1.icc | Bin 756 -> 756 bytes rtgui/iccprofilecreator.cc | 1 - 13 files changed, 1 deletion(-) diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc index a12a57402705fa3564bff99bebd5056c2ab07465..dce81742c5c408e7fef01ee483ed2dcf6acf8e59 100644 GIT binary patch delta 24 gcmaEIjPc1a#tD+#j~KWa_!tBk6d8m!syHMA0BUIl!vFvP delta 24 gcmaEIjPc1a#tD+#ml;?X7#X-2tQgogsyHMA0BF(%rT_o{ diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc index 079eed297c05d9ca44d6c9347de1236be5d87c27..65af92f1ce79354c7453f5e54e96c810ee4dd5c7 100644 GIT binary patch delta 24 gcmaEIjPc1a#tD+#j~KWa_!tBk6d8m!syHMA0BUIl!vFvP delta 24 gcmaEIjPc1a#tD+#ml;?X7#X-2tQgogsyHMA0BF(%rT_o{ diff --git a/rtdata/iccprofiles/output/RTv2_Best.icc b/rtdata/iccprofiles/output/RTv2_Best.icc index 36b0b2c28d718c2b760438d1bffd015e9b3979f9..6390b1f34c055effde63fb82b6cee9c842558985 100644 GIT binary patch delta 24 gcmca{jPb@X#tD+#j~KWa_!tBk6d8m!s+c4L0BAJ^p8x;= delta 24 gcmca{jPb@X#tD+#ml;?X7#X-2tQgogs+c4L0A`*Bf&c&j diff --git a/rtdata/iccprofiles/output/RTv2_Beta.icc b/rtdata/iccprofiles/output/RTv2_Beta.icc index e6772948388f460585a855fc8af1f5d699488605..13907b35a3f3c05f331cefad0ba6a2e88fd68e2f 100644 GIT binary patch delta 24 gcmca{jPb@X#tD+#j~KWa_!tBk6d8m!s+c4L0BAJ^p8x;= delta 24 gcmca{jPb@X#tD+#ml;?X7#X-2tQgogs+c4L0A`*Bf&c&j diff --git a/rtdata/iccprofiles/output/RTv2_Bruce.icc b/rtdata/iccprofiles/output/RTv2_Bruce.icc index 601c485fd5d73571fb12bad7ef194ad604f77523..7dd7f383c831b207ae50de7c31600ee56aa40739 100644 GIT binary patch delta 24 gcmca}jPcGf#tD+#j~KWa_!tBk6d8m!s#qig0BG?Bs{jB1 delta 24 gcmca}jPcGf#tD+#ml;?X7#X-2tQgogs#qig0B2eTjsO4v diff --git a/rtdata/iccprofiles/output/RTv2_Large.icc b/rtdata/iccprofiles/output/RTv2_Large.icc index acb6a91f993470d6bbe4f7c0a548930659e9c6f0..9d2c3fc01171f83e59c50667f3773030697261be 100644 GIT binary patch delta 24 gcmca}jPcGf#tD+#j~KWa_!tBk6d8m!s#qig0BG?Bs{jB1 delta 24 gcmca}jPcGf#tD+#ml;?X7#X-2tQgogs#qig0B2eTjsO4v diff --git a/rtdata/iccprofiles/output/RTv2_Medium.icc b/rtdata/iccprofiles/output/RTv2_Medium.icc index 3ab78bcaad5ee50c985e43433c471d3594a82381..065c43bc44ed6cbe53fd332875a727a48fc03eb0 100644 GIT binary patch delta 22 dcmaFE_J(bOB=;i*ZU#OEK?X$z;f*RD%m7G01o;2} delta 22 dcmaFE_J(bOB==O|X<~A5fp4%|$izgcjc)6h0DOuFp8x;= diff --git a/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc index ce26048890878eb5acec135e34668d2a3ef857cb..7194ff6dac9f2f388c39a4c7390ae970ee1d50d6 100644 GIT binary patch delta 29 kcmeyu`h|6ZEI%KE0D}&LWnyx1fp4%|$izgcjc)6h0Dn#h#sB~S delta 29 kcmeyu`h|6ZEI%&;H-i9!Wnyx1fp4%|$izgcjc)6h0DRmCqyPW_ diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 6ac043437..e0fc1365f 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1387,7 +1387,6 @@ void ICCProfileCreator::savePressed() if (!v2except) { cmsSaveProfileToFile(newProfile, absoluteFName.c_str()); } else { - printf("save except\n"); cmsSaveProfileToFile(profile_v2_except, absoluteFName.c_str()); } From 834f6bafead2813781ea8651c9c6bdccc1f8d18d Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 15 Nov 2018 07:49:58 +0100 Subject: [PATCH 024/116] Japanese translation updated by firefly, closes #4988 --- rtdata/languages/Japanese | 92 +++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 8a2f90dfd..e36e77efb 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 - アンカー @@ -982,6 +1003,7 @@ PARTIALPASTE_CROP;切り抜き PARTIALPASTE_DARKFRAMEAUTOSELECT;ダークフレーム自動選択 PARTIALPASTE_DARKFRAMEFILE;ダークフレーム・ファイル PARTIALPASTE_DEFRINGE;フリンジ低減 +PARTIALPASTE_DEHAZE;霞除去 PARTIALPASTE_DETAILGROUP;ディテールの設定 PARTIALPASTE_DIALOGLABEL;処理プロファイルの部分ペースト PARTIALPASTE_DIRPYRDENOISE;ノイズ低減 @@ -1018,6 +1040,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 ホワイトポイント リニア補正係数 @@ -1055,6 +1078,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;サムネイル縦の最大値 @@ -1481,6 +1509,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;カラー(レッド、グリーン、シアン、ブルーなど)を変える際に、これを有効にすると、各ピクセルの明度は維持されます。 @@ -1529,6 +1567,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注意:設定値の計算はあくまで平均的なもので、かなり主観的でです @@ -1840,6 +1882,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 +1946,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;幅: @@ -2036,6 +2080,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 +2328,3 @@ 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 From a1d2fcdc2c8ec1b68f4525becffa892f346b038c Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Thu, 15 Nov 2018 10:47:45 +0100 Subject: [PATCH 025/116] Add comment for RTv2_Beta usage --- rtgui/iccprofilecreator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index e0fc1365f..0d16a401a 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -749,7 +749,7 @@ void ICCProfileCreator::savePressed() } } else { //new model for v2 profile different from D50 by entering directly XYZ values and media white point - sNewProfile = "RTv2_Beta";//for copy + 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"; From 220714e376d00f717525aaca40a914fe9b6a52ca Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 15 Nov 2018 15:35:56 +0100 Subject: [PATCH 026/116] Remove some logging, #4985 --- rtengine/dirpyr_equalizer.cc | 8 -------- rtengine/improccoordinator.cc | 4 ---- rtengine/iplab2rgb.cc | 2 -- rtengine/rawimagesource.cc | 4 ++++ 4 files changed, 4 insertions(+), 14 deletions(-) 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/improccoordinator.cc b/rtengine/improccoordinator.cc index 2eb72a72b..16d94dd57 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -653,10 +653,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 } diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index c4707f16f..b2fd20cb8 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -335,8 +335,6 @@ Imagefloat* ImProcFunctions::lab2rgbOut(LabImage* lab, int cx, int cy, int cw, i #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("!"); diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 9b8d3794e..85e68745b 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -894,6 +894,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); From 6074fe3be4386b276f32baad743236dede0a2460 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 15 Nov 2018 17:16:55 +0100 Subject: [PATCH 027/116] Do not search lensfun modifier if make, model or lens is empty, #4985 --- rtengine/rtlensfun.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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) { From 7c2953986826d4b977e486590a5f17b6bc97e2f2 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 15 Nov 2018 18:36:11 +0100 Subject: [PATCH 028/116] Don't log filter settings, #4985 --- rtgui/filecatalog.cc | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 49559f93e..0b45d3e3d 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -1652,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); - } } From 94f4afeb6b5f3b743693139c8c3015b62fde2102 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 16 Nov 2018 14:50:51 +0100 Subject: [PATCH 029/116] Fix two issues reported by coverity --- rtengine/ipdehaze.cc | 1 + rtgui/labgrid.h | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) 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/rtgui/labgrid.h b/rtgui/labgrid.h index 35e259996..30f6e76e5 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(); From 0b8117ef35422825e88f4855c79c2be0fca7d4fa Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 16 Nov 2018 15:00:20 +0100 Subject: [PATCH 030/116] Change line endings --- rtgui/iccprofilecreator.cc | 2790 ++++++++++++++++++------------------ rtgui/iccprofilecreator.h | 214 +-- 2 files changed, 1502 insertions(+), 1502 deletions(-) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 0d16a401a..b322fa005 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1,1395 +1,1395 @@ -/* - * 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 . - */ -#include -#include "iccprofilecreator.h" -#include "multilangmgr.h" -#include "cachemanager.h" -#include "addsetids.h" -#include "../rtengine/icons.h" -#include "../rtengine/color.h" -#include "rtimage.h" -#ifdef _OPENMP -#include -#endif - -extern Options options; - -namespace rtengine -{ - -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) - , primariesPreset(options.ICCPC_primariesPreset) - , redPrimaryX(options.ICCPC_redPrimaryX) - , redPrimaryY(options.ICCPC_redPrimaryY) - , greenPrimaryX(options.ICCPC_greenPrimaryX) - , greenPrimaryY(options.ICCPC_greenPrimaryY) - , bluePrimaryX(options.ICCPC_bluePrimaryX) - , bluePrimaryY(options.ICCPC_bluePrimaryY) - , gammaPreset(options.ICCPC_gammaPreset) - , gamma(options.ICCPC_gamma) - , slope(options.ICCPC_slope) - , appendParamsToDesc(options.ICCPC_appendParamsToDesc) - , profileVersion(options.ICCPC_profileVersion) - , illuminant(options.ICCPC_illuminant) - , description(options.ICCPC_description) - , copyright(options.ICCPC_copyright) - , parent(rtwindow) -{ - - set_default_size(600, -1); - - Gtk::Grid* mainGrid = Gtk::manage(new Gtk::Grid()); - mainGrid->set_column_spacing(3); - mainGrid->set_row_spacing(3); - - //--------------------------------- primaries - - Gtk::Label* prilab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_PRIMARIES"))); - setExpandAlignProperties(prilab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*prilab, 0, 0, 1, 1); - - primaries = Gtk::manage(new MyComboBoxText()); - setExpandAlignProperties(primaries, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - primaries->append(M("ICCPROFCREATOR_CUSTOM")); - primaries->append(M("ICCPROFCREATOR_PRIM_ACESP0")); - primaries->append(M("ICCPROFCREATOR_PRIM_ACESP1")); - primaries->append(M("ICCPROFCREATOR_PRIM_ADOBE")); - primaries->append(M("ICCPROFCREATOR_PRIM_PROPH")); - primaries->append(M("ICCPROFCREATOR_PRIM_REC2020")); - primaries->append(M("ICCPROFCREATOR_PRIM_SRGB")); - primaries->append(M("ICCPROFCREATOR_PRIM_WIDEG")); - primaries->append(M("ICCPROFCREATOR_PRIM_BEST")); - primaries->append(M("ICCPROFCREATOR_PRIM_BETA")); - primaries->append(M("ICCPROFCREATOR_PRIM_BRUCE")); - primaries->set_tooltip_text(M("ICCPROFCREATOR_PRIM_TOOLTIP")); - mainGrid->attach(*primaries, 1, 0, 1, 1); - - primariesGrid = Gtk::manage(new Gtk::Grid()); - setExpandAlignProperties(primariesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - primariesGrid->set_column_spacing(5); - - /* - Gtk::Image* gamuts0 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl0 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts1 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl1 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts2 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl2 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts3 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl3 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts4 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl4 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts5 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl5 = Gtk::manage(new RTImage("rt-logo-small.png")); - */ - - aPrimariesRedX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDX"), 0.6300, 0.7350, 0.0001, 0.6400/*, gamuts0, gamutl0*/)); - setExpandAlignProperties(aPrimariesRedX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesRedY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDY"), 0.2650, 0.3350, 0.0001, 0.3300/*, gamutl1, gamuts1*/)); - setExpandAlignProperties(aPrimariesRedY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesGreenX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREX"), 0.0000, 0.3100, 0.0001, 0.3000/*, gamutl2, gamuts2*/)); - setExpandAlignProperties(aPrimariesGreenX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesGreenY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREY"), 0.5900, 1.0000, 0.0001, 0.6000/*, gamuts3, gamutl3*/)); - setExpandAlignProperties(aPrimariesGreenY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesBlueX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUX"), 0.0001, 0.1600, 0.0001, 0.1500/*, gamutl4, gamuts4*/)); - setExpandAlignProperties(aPrimariesBlueX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesBlueY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUY"), -0.0800, 0.0700, 0.0001, 0.060/*, gamutl5, gamuts5*/)); - setExpandAlignProperties(aPrimariesBlueY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - - primariesGrid->attach(*aPrimariesRedX, 0, 0, 1, 1); - primariesGrid->attach(*aPrimariesRedY, 1, 0, 1, 1); - - primariesGrid->attach(*aPrimariesGreenX, 0, 1, 1, 1); - primariesGrid->attach(*aPrimariesGreenY, 1, 1, 1, 1); - - primariesGrid->attach(*aPrimariesBlueX, 0, 2, 1, 1); - primariesGrid->attach(*aPrimariesBlueY, 1, 2, 1, 1); - - mainGrid->attach(*primariesGrid, 1, 1, 1, 1); - - //--------------------------------- output gamma - - Gtk::Label* galab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_TRC_PRESET"))); - setExpandAlignProperties(galab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*galab, 0, 2, 1, 1); - - trcPresets = Gtk::manage(new MyComboBoxText()); - 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)); - 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 - - aSlope = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_SLOPE"), 0, 15, 0.00001, 12.92310)); - setExpandAlignProperties(aSlope, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - - if (aSlope->delay < options.adjusterMaxDelay) { - aSlope->delay = options.adjusterMaxDelay; - } - - aSlope->show(); - mainGrid->attach(*aSlope, 1, 4, 1, 1); //slope - - //--------------------------------- temperature - - Gtk::Label* illlab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ILL"))); - setExpandAlignProperties(illlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*illlab, 0, 5, 1, 1); //slope - cIlluminant = Gtk::manage(new MyComboBoxText()); - setExpandAlignProperties(cIlluminant, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - cIlluminant->append(M("ICCPROFCREATOR_ILL_DEF")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_41")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_50")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_55")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_60")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_65")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_80")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_INC")); - cIlluminant->set_tooltip_text(M("ICCPROFCREATOR_ILL_TOOLTIP")); - mainGrid->attach(*cIlluminant, 1, 5, 1, 1); - - //--------------------------------- V2 or V4 profiles - - Gtk::Label* proflab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ICCVERSION"))); - setExpandAlignProperties(proflab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*proflab, 0, 6, 1, 1); - iccVersion = Gtk::manage(new MyComboBoxText()); - setExpandAlignProperties(iccVersion, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - iccVersion->append(M("ICCPROFCREATOR_PROF_V4")); - iccVersion->append(M("ICCPROFCREATOR_PROF_V2")); - mainGrid->attach(*iccVersion, 1, 6, 1, 1); - - //--------------------------------- Description - - Gtk::Label* desclab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_DESCRIPTION"))); - setExpandAlignProperties(desclab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_START); - mainGrid->attach(*desclab, 0, 7, 1, 2); - eDescription = Gtk::manage(new Gtk::Entry()); - setExpandAlignProperties(eDescription, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - eDescription->set_tooltip_text(M("ICCPROFCREATOR_DESCRIPTION_TOOLTIP")); - mainGrid->attach(*eDescription, 1, 7, 1, 1); - cAppendParamsToDesc = Gtk::manage(new Gtk::CheckButton(M("ICCPROFCREATOR_DESCRIPTION_ADDPARAM"))); - setExpandAlignProperties(cAppendParamsToDesc, true, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*cAppendParamsToDesc, 1, 8, 1, 1); - - //--------------------------------- Copyright - - Gtk::Label* copylab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_COPYRIGHT"))); - setExpandAlignProperties(copylab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*copylab, 0, 9, 1, 1); - Gtk::Grid* copygrid = Gtk::manage(new Gtk::Grid()); - setExpandAlignProperties(copygrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); - eCopyright = Gtk::manage(new Gtk::Entry()); - 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"))); - 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->get_style_context()->add_class(GTK_STYLE_CLASS_FLAT); - resetCopyright->set_can_focus(false); - copygrid->attach(*resetCopyright, 1, 0, 1, 1); - mainGrid->attach(*copygrid, 1, 9, 1, 1); - - //--------------------------------- Adding the mainGrid - - get_content_area()->add(*mainGrid); - - //--------------------------------- Setting default values for Adjusters - - aGamma->setDefault(gamma); - aSlope->setDefault(slope); - aPrimariesRedX->setDefault(redPrimaryX); - aPrimariesRedY->setDefault(redPrimaryY); - aPrimariesGreenX->setDefault(greenPrimaryX); - aPrimariesGreenY->setDefault(greenPrimaryY); - aPrimariesBlueX->setDefault(bluePrimaryX); - aPrimariesBlueY->setDefault(bluePrimaryY); - - //--------------- Updating widgets with actual values (from options) - - if (primariesPreset == "custom") { - primaries->set_active_text(M("ICCPROFCREATOR_CUSTOM")); - } else if (primariesPreset == "ACES-AP0") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP0")); - } else if (primariesPreset == "ACES-AP1") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP1")); - } else if (primariesPreset == "Adobe") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ADOBE")); - } else if (primariesPreset == "ProPhoto") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_PROPH")); - } else if (primariesPreset == "Rec2020") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_REC2020")); - } else if (primariesPreset == "sRGB") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_SRGB")); - } else if (primariesPreset == "Widegamut") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_WIDEG")); - } else if (primariesPreset == "BestRGB") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BEST")); - } else if (primariesPreset == "BetaRGB") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BETA")); - } else if (primariesPreset == "BruceRGB") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BRUCE")); - } - - trcPresets->set_active(0); - - if (gammaPreset != "Custom") { - trcPresets->set_active_text(gammaPreset); - } - - aGamma->setValue(gamma); - aSlope->setValue(slope); - aPrimariesRedX->setValue(redPrimaryX); - aPrimariesRedY->setValue(redPrimaryY); - aPrimariesGreenX->setValue(greenPrimaryX); - aPrimariesGreenY->setValue(greenPrimaryY); - aPrimariesBlueX->setValue(bluePrimaryX); - aPrimariesBlueY->setValue(bluePrimaryY); - - eDescription->set_text(description); - eCopyright->set_text(copyright); - cAppendParamsToDesc->set_active(appendParamsToDesc); - - if (illuminant == "DEF") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_DEF")); - } else if (illuminant == "D41") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_41")); - } else if (illuminant == "D50") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_50")); - } else if (illuminant == "D55") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_55")); - } else if (illuminant == "D60") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_60")); - } else if (illuminant == "D65") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_65")); - } else if (illuminant == "D80") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_80")); - } else if (illuminant == "stdA") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_INC")); - } - - iccVersion->set_active(0); - - if (profileVersion == "v2") { - iccVersion->set_active(1); - } - - trcPresetsChanged(); - illuminantChanged(); - primariesChanged(); - - //--------------- 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* 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(); - - //--------------- Connecting the signals - - aPrimariesRedX->setAdjusterListener(this); - aPrimariesRedY->setAdjusterListener(this); - aPrimariesGreenX->setAdjusterListener(this); - aPrimariesGreenY->setAdjusterListener(this); - aPrimariesBlueX->setAdjusterListener(this); - aPrimariesBlueY->setAdjusterListener(this); - aGamma->setAdjusterListener(this); - aSlope->setAdjusterListener(this); - primariesconn = primaries->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::primariesChanged)); - trcpresetsconn = trcPresets->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::trcPresetsChanged)); - illconn = cIlluminant->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::illuminantChanged)); - resetCopyright->signal_clicked().connect(sigc::mem_fun(*this, &ICCProfileCreator::onResetCopyright)); -} - -void ICCProfileCreator::closePressed() -{ - storeValues(); - hide(); -} - -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); - } -} - -void ICCProfileCreator::adjusterChanged(Adjuster* a, double newval) -{ - if (a == aPrimariesRedX || a == aPrimariesRedY || - a == aPrimariesGreenX || a == aPrimariesGreenY || - a == aPrimariesBlueX || a == aPrimariesBlueY) { - if (primaries->get_active_row_number() > 0) { - ConnectionBlocker blocker(primariesconn); - primaries->set_active(0); - updateICCVersion(); - } - } else if (a == aGamma || a == aSlope) { - if (trcPresets->get_active_row_number() > 0) { - ConnectionBlocker blocker(trcpresetsconn); - trcPresets->set_active(0); - } - } -} - -void ICCProfileCreator::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - -void ICCProfileCreator::primariesChanged() -{ - if (primaries->get_active_row_number() > 0) { - float p[6]; - ColorTemp temp; - Glib::ustring activeValue = primaries->get_active_text(); - Glib::ustring primPresetName = getPrimariesPresetName(activeValue); - getPrimaries(primPresetName, p, temp); - aPrimariesRedX->setValue(p[0]); - aPrimariesRedY->setValue(p[1]); - aPrimariesGreenX->setValue(p[2]); - aPrimariesGreenY->setValue(p[3]); - aPrimariesBlueX->setValue(p[4]); - aPrimariesBlueY->setValue(p[5]); - } - - updateICCVersion(); -} - -void ICCProfileCreator::illuminantChanged() -{ - updateICCVersion(); -} - -void ICCProfileCreator::trcPresetsChanged() -{ - aGamma->block(true); - aSlope->block(true); - - double gamma; - double slope; - getGamma(getGammaPresetName(trcPresets->get_active_text()), gamma, slope); - aGamma->setValue(gamma); - aSlope->setValue(slope); - - aGamma->block(false); - aSlope->block(false); -} - -void ICCProfileCreator::storeValues() -{ - if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V4")) { - options.ICCPC_profileVersion = profileVersion = "v4"; - } else if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V2")) { - options.ICCPC_profileVersion = profileVersion = "v2"; - } - - if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_DEF")) { - options.ICCPC_illuminant = illuminant = "DEF"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_41")) { - options.ICCPC_illuminant = illuminant = "D41"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_50")) { - options.ICCPC_illuminant = illuminant = "D50"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_55")) { - options.ICCPC_illuminant = illuminant = "D55"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_60")) { - options.ICCPC_illuminant = illuminant = "D60"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_65")) { - options.ICCPC_illuminant = illuminant = "D65"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_80")) { - options.ICCPC_illuminant = illuminant = "D80"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_INC")) { - options.ICCPC_illuminant = illuminant = "stdA"; - } - - options.ICCPC_primariesPreset = primariesPreset = getPrimariesPresetName(primaries->get_active_text()); - options.ICCPC_gammaPreset = gammaPreset = getGammaPresetName(trcPresets->get_active_text()); - options.ICCPC_gamma = gamma = aGamma->getValue(); - options.ICCPC_slope = slope = aSlope->getValue(); - options.ICCPC_redPrimaryX = redPrimaryX = aPrimariesRedX->getValue(); - options.ICCPC_redPrimaryY = redPrimaryY = aPrimariesRedY->getValue(); - options.ICCPC_greenPrimaryX = greenPrimaryX = aPrimariesGreenX->getValue(); - options.ICCPC_greenPrimaryY = greenPrimaryY = aPrimariesGreenY->getValue(); - options.ICCPC_bluePrimaryX = bluePrimaryX = aPrimariesBlueX->getValue(); - options.ICCPC_bluePrimaryY = bluePrimaryY = aPrimariesBlueY->getValue(); - options.ICCPC_description = description = eDescription->get_text(); - options.ICCPC_copyright = copyright = eCopyright->get_text(); - options.ICCPC_appendParamsToDesc = appendParamsToDesc = cAppendParamsToDesc->get_active(); -} - -Glib::ustring ICCProfileCreator::getPrimariesPresetName(const Glib::ustring &preset) -{ - if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP0")) { - return Glib::ustring("ACES-AP0"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP1")) { - return Glib::ustring("ACES-AP1"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ADOBE")) { - return Glib::ustring("Adobe"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_PROPH")) { - return Glib::ustring("ProPhoto"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_REC2020")) { - return Glib::ustring("Rec2020"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_SRGB")) { - return Glib::ustring("sRGB"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_WIDEG")) { - return Glib::ustring("Widegamut"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BEST")) { - return Glib::ustring("BestRGB"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BETA")) { - return Glib::ustring("BetaRGB"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BRUCE")) { - return Glib::ustring("BruceRGB"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_CUSTOM")) { - return Glib::ustring("custom"); - } else { - return Glib::ustring(); - } -} - -void ICCProfileCreator::getPrimaries(const Glib::ustring &preset, float *p, ColorTemp &temp) -{ - temp = ColorTemp::D50; - - if (preset == "Widegamut") { - p[0] = 0.7350; //Widegamut primaries - p[1] = 0.2650; - p[2] = 0.1150; - p[3] = 0.8260; - p[4] = 0.1570; - p[5] = 0.0180; - - } else if (preset == "Adobe") { - p[0] = 0.6400; //Adobe primaries - p[1] = 0.3300; - p[2] = 0.2100; - p[3] = 0.7100; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (preset == "sRGB") { - p[0] = 0.6400; // sRGB primaries - p[1] = 0.3300; - p[2] = 0.3000; - p[3] = 0.6000; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (preset == "BruceRGB") { - p[0] = 0.6400; // Bruce primaries - p[1] = 0.3300; - p[2] = 0.2800; - p[3] = 0.6500; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (preset == "BetaRGB") { - p[0] = 0.6888; // Beta primaries - p[1] = 0.3112; - p[2] = 0.1986; - p[3] = 0.7551; - p[4] = 0.1265; - p[5] = 0.0352; - } else if (preset == "BestRGB") { - p[0] = 0.7347; // Best primaries - p[1] = 0.2653; - p[2] = 0.2150; - p[3] = 0.7750; - p[4] = 0.1300; - p[5] = 0.0350; - } else if (preset == "Rec2020") { - p[0] = 0.7080; // Rec2020 primaries - p[1] = 0.2920; - p[2] = 0.1700; - p[3] = 0.7970; - p[4] = 0.1310; - p[5] = 0.0460; - temp = ColorTemp::D65; - } else if (preset == "ACES-AP0") { - p[0] = 0.7347; // ACES P0 primaries - p[1] = 0.2653; - p[2] = 0.0000; - p[3] = 1.0; - p[4] = 0.0001; - p[5] = -0.0770; - temp = ColorTemp::D60; - } else if (preset == "ACES-AP1") { - p[0] = 0.713; // ACES P1 primaries - p[1] = 0.293; - p[2] = 0.165; - p[3] = 0.830; - p[4] = 0.128; - p[5] = 0.044; - temp = ColorTemp::D60; - } else if (preset == "ProPhoto") { - p[0] = 0.7347; // ProPhoto and default primaries - p[1] = 0.2653; - p[2] = 0.1596; - p[3] = 0.8404; - p[4] = 0.0366; - p[5] = 0.0001; - } else if (preset == "custom") { - p[0] = redPrimaryX; - p[1] = redPrimaryY; - p[2] = greenPrimaryX; - p[3] = greenPrimaryY; - p[4] = bluePrimaryX; - p[5] = bluePrimaryY; - - } else { - p[0] = 0.7347; //default primaries - p[1] = 0.2653; - p[2] = 0.1596; - p[3] = 0.8404; - p[4] = 0.0366; - p[5] = 0.0001; - } -} - -Glib::ustring ICCProfileCreator::getGammaPresetName(const Glib::ustring &preset) -{ - Glib::ustring name(trcPresets->get_active_text()); - - if (name == M("ICCPROFCREATOR_CUSTOM")) { - name = "Custom"; - } - - return name; -} - -void ICCProfileCreator::getGamma(const Glib::ustring &preset, double &presetGamma, double &presetSlope) -{ - if (preset == "High_g1.3_s3.35") { - presetGamma = 1.3; - presetSlope = 3.35; - } else if (preset == "Low_g2.6_s6.9") { - presetGamma = 2.6; - presetSlope = 6.9; - } else if (preset == "sRGB_g2.4_s12.92") { - presetGamma = 2.4; - presetSlope = 12.92310; - } else if (preset == "BT709_g2.2_s4.5") { - presetGamma = 2.22; - presetSlope = 4.5; - } else if (preset == "linear_g1.0") { - presetGamma = 1.; - presetSlope = 0.; - } else if (preset == "standard_g2.2") { - presetGamma = 2.2; - presetSlope = 0.; - } else if (preset == "standard_g1.8") { - presetGamma = 1.8; - presetSlope = 0.; - } else if (preset == "Lab_g3.0s9.03296") { - presetGamma = 3.0; - presetSlope = 9.03296; - } else if (preset == "Custom") { - presetGamma = gamma; - presetSlope = slope; - } else { - presetGamma = 2.4; - presetSlope = 12.92310; - } -} - -void ICCProfileCreator::onResetCopyright() -{ - eCopyright->set_text(Options::getICCProfileCopyright()); -} - -// Copyright (c) 2018 Jacques DESMIS -// WARNING: the caller must lock lcmsMutex -void ICCProfileCreator::savePressed() -{ - cmsHPROFILE newProfile = nullptr; - cmsHPROFILE profile_v2_except = nullptr; - - Glib::ustring sNewProfile; - Glib::ustring sPrimariesPreset; - Glib::ustring sGammaPreset; - - 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"); - - //necessary for V2 profile - - 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"; - } - } - - //begin adaptation rTRC gTRC bTRC - //"newProfile" profile has the same characteristics than RGB values, but TRC are adapted... for applying profile - if (rtengine::settings->verbose) { - printf("Output Gamma - profile Primaries as RT profile: \"%s\"\n", sNewProfile.c_str()); - } - - 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; - } - */ - //change desc Tag , to "free gamma", or "BT709", etc. - Glib::ustring fName; - Glib::ustring sPrimariesAndIlluminant; - double presetGamma = 2.4; - 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 - ga[1] = 0.998279; - ga[2] = 0.001721; - ga[3] = 0.298507; - ga[4] = 0.005746; - } 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 - ga[1] = 0.891161; - ga[2] = 0.108839; - ga[3] = 0.144928; - ga[4] = 0.076332; - } 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; - } 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[1] = 0.909995; - ga[2] = 0.090005; - ga[3] = 0.222222; - ga[4] = 0.081071; - } 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...) - ga[1] = 1.; - ga[2] = 0.; - ga[3] = 1. / eps; - ga[4] = 0.; - } else if (gammaPreset == "standard_g2.2") { - sGammaPreset = "g=2.2"; - ga[0] = 2.2; //gamma=2.2(as gamma of Adobe, Widegamut...) - ga[1] = 1.; - ga[2] = 0.; - ga[3] = 1. / eps; - ga[4] = 0.; - } else if (gammaPreset == "standard_g1.8") { - sGammaPreset = "g=1.8"; - ga[0] = 1.8; //gamma=1.8(as gamma of Prophoto) - ga[1] = 1.; - ga[2] = 0.; - ga[3] = 1. / eps; - ga[4] = 0.; - } else if (gammaPreset == "Lab_g3.0s9.03296") { - sGammaPreset = "LAB_g3.0_s9.03296"; - ga[0] = 3.0; //Lab gamma =3 slope=9.03296 - ga[1] = 0.8621; - ga[2] = 0.1379; - ga[3] = 0.1107; - ga[4] = 0.08; - } else if (gammaPreset == "Custom") { - rtengine::GammaValues g_a; //gamma parameters - double pwr = 1.0 / gamma; - double ts = slope; - double slope2 = slope == 0 ? eps : slope; - - int mode = 0; - rtengine::Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 - 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[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)); - presetGamma = gamma; - presetSlope = slope; - } - - ga[5] = 0.0; - ga[6] = 0.0; - - - sPrimariesAndIlluminant = sPrimariesPreset; - - if (profileVersion == "v4" && illuminant != "DEF") { - sPrimariesPreset += "-" + illuminant; - } - - Glib::ustring profileDesc; - Glib::ustring sGammaSlopeParam;//to save gamma and slope in a dmdd - Glib::ustring sGammaSlopeDesc; //to save gamma and slope in a desc - Glib::ustring sGamma; - 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); - 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); - 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); - - // -------------------------------------------- Asking the file name - - Gtk::FileChooserDialog dialog(getToplevelWindow(this), M("ICCPROFCREATOR_SAVEDIALOG_TITLE"), Gtk::FILE_CHOOSER_ACTION_SAVE); - bindCurrentFolder(dialog, options.lastICCProfCreatorDir); - dialog.set_current_name(fName); - //dialog.set_current_folder(lastPath); - - dialog.add_button(M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); - dialog.add_button(M("GENERAL_SAVE"), Gtk::RESPONSE_OK); - - Glib::RefPtr filter_icc = Gtk::FileFilter::create(); - filter_icc->set_name(M("FILECHOOSER_FILTER_COLPROF")); - filter_icc->add_pattern("*.icc"); - dialog.add_filter(filter_icc); - - /* - Glib::RefPtr filter_any = Gtk::FileFilter::create(); - filter_any->set_name(M("FILECHOOSER_FILTER_ANY")); - filter_any->add_pattern("*"); - dialog.add_filter(filter_any); - */ - - dialog.show_all_children(); - //dialog.set_do_overwrite_confirmation (true); - - Glib::ustring absoluteFName; - - do { - int result = dialog.run(); - - if (result != Gtk::RESPONSE_OK) { - return; - } else { - absoluteFName = dialog.get_filename(); - Glib::ustring ext = getExtension(absoluteFName); - - if (ext != "icc") { - absoluteFName += ".icc"; - } - - if (confirmOverwrite(dialog, absoluteFName)) { - //lastPath = Glib::path_get_dirname(absoluteFName); - break; - } - } - } while (1); - - // --------------- main tags ------------------ - /* - if (profileVersion == "v4") { - cmsSetProfileVersion(newProfile, 4.3); - } else { - cmsSetProfileVersion(newProfile, 2.0); - } - */ - -//change - float p[6]; //primaries - ga[6] = 0.0; - - ColorTemp temp; - getPrimaries(primariesPreset, p, temp); - - 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 - }; - - - 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") { - tempv4 = 5003.; - } else if (illuminant == "D55") { - tempv4 = 5500.; - } else if (illuminant == "D60") { - tempv4 = 6004.; - } else if (illuminant == "D65") { - tempv4 = 6504.; - } else if (illuminant == "D80") { - tempv4 = 8000.; - } 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 { - if (v2except) { - - cmsCIEXYZ XYZ; - - { - XYZ = {0.95045471, 1.0, 1.08905029};//white D65 - } - - if (primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0") { - XYZ = {0.952646075, 1.0, 1.008825184};//white D60 - } - - if (isD50) { - XYZ = {0.964295676, 1.0, 0.825104603};//white D50 room (prophoto) near LCMS values but not perfect...it's a compromise!! - } - - cmsCIExyY blackpoint; - - { - blackpoint = {0., 0., 0.};//White D65 point from the sRGB.icm and AdobeRGB1998 profile specs - } - - cmsWriteTag(profile_v2_except, cmsSigMediaBlackPointTag, &blackpoint); - cmsWriteTag(profile_v2_except, cmsSigMediaWhitePointTag, &XYZ); - cmsCIEXYZ rt; - cmsCIEXYZ bt; - cmsCIEXYZ gt; - - if (primariesPreset == "sRGB") { - //calculated with personnal special spreadsheat - { - //Matrix value from spec Adobe but adapted with wp - rt = {0.4360411843, 0.2224843154, 0.0139201582}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1430457992, 0.0606099658, 0.7139121724}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.3851136574, 0.7169049862, 0.0970677661}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - - } - - } - - if (primariesPreset == "Adobe") { - { - //Adobe spec adapted with wp calculated with personnal special spreadsheat - rt = {0.6097408852, 0.3111123176, 0.0194653393}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1491866649, 0.0632119133, 0.7445599707}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.2052730908, 0.6256750365, 0.0608747867}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "Rec2020") { - {//calculated with personnal special spreadsheat - rt = {0.6734800343, 0.2790423273, -0.0019336766}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1250489478, 0.0456126910, 0.7968509159}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1656716588, 0.6753442491, 0.0299828575}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "BruceRGB") { - {//calculated with personnal special spreadsheat - rt = {0.4941542253, 0.2521357351, 0.0157753562}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1495175342, 0.0633521060, 0.7462112712}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.3205288814, 0.6845114263, 0.0629134693}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "ACES-AP0") { - {//calculated with personnal special spreadsheat - rt = {0.9908835135, 0.3618940325, -0.0027137400}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {-0.0389246557, -0.084405166, 0.8193659780}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.0122417831, 0.7225104015, 0.0082478587}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "ACES-AP1") {//done - {//calculated with personnal special spreadsheat - rt = {0.6898756188, 0.2845109670, -0.0060455375}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1245615936, 0.0437959432, 0.8209388333}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1497634285, 0.6716923572, 0.0100068009}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "ProPhoto") { - {//calculated with personnal special spreadsheat - rt = {0.7977198204, 0.2880493171, -0.0000030551}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.0313194091, 0.0000771282, 0.8248890748}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1351614114, 0.7118728221, 0.0000140770}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "Widegamut") { - {//calculated with personnal special spreadsheat - rt = {0.7161680478, 0.2582038074, -0.0000027515}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1471328469, 0.0168600579, 0.7731227232}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1008997462, 0.7249354021, 0.0517801251}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "BestRGB") { - {//calculated with personnal special spreadsheat - rt = {0.6327383009, 0.2284760022, -0.0000024233}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1269437333, 0.0341753604, 0.8153773703}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.2045186067, 0.7373479048, 0.0095251497}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "BetaRGB") { - {//calculated with personnal special spreadsheat - rt = {0.6713200674, 0.3033034560, -0.0000012307}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1183343909, 0.0329265310, 0.7842009909}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1745461827, 0.6637692805, 0.0407003365}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - } else { - cmsWhitePointFromTemp(&xyD, (double)temp); - } - } - - - 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}; - } - -// {0.3457, 0.3585, 1.0}; - // Calculate output profile's rTRC gTRC bTRC - - - cmsToneCurve* GammaTRC[3]; - - if (gammaPreset != "standard_g2.2" || gammaPreset != "standard_g1.8" || gammaPreset != "linear_g1.0") { - 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 - } - - if (gammaPreset == "standard_g1.8") { - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.80078125); - } - - if (gammaPreset == "linear_g1.0") { - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.0); - } - - - - if (profileVersion == "v4") { - newProfile = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); - } - - if (profileVersion == "v2") { - if (v2except) { - cmsSetProfileVersion(profile_v2_except, 2.2); - } else { - cmsSetProfileVersion(newProfile, 2.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"); - - if (!v2except) { - cmsWriteTag(newProfile, cmsSigDeviceMfgDescTag, dmnd); - } else { - cmsWriteTag(profile_v2_except, cmsSigDeviceMfgDescTag, dmnd); - } - - cmsMLUfree(dmnd); - - - -// --------------- set dmdd tag ------------------ - - if (profileVersion == "v2") { - //write in tag 'dmdd' values of current gamma and slope to retrieve after in Output profile - std::wostringstream wGammaSlopeParam; - 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 (!v2except) { - if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, dmdd)) { - printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); - } - } else { - if (!cmsWriteTag(profile_v2_except, cmsSigProfileDescriptionTag, dmdd)) { - printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); - } - - } - } - } else if (cmsMLUsetWide(dmdd, "en", "US", wGammaSlopeParam.str().c_str())) { - 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 ------------------ - - Glib::ustring sDescription; - - if (!description.empty()) { - if (cAppendParamsToDesc->get_active()) { - sDescription = description + " / " + sGammaSlopeDesc; - } else { - sDescription = description; - } - } else { - if (cAppendParamsToDesc->get_active()) { - sDescription = profileDesc + " / " + sGammaSlopeDesc; - } else { - sDescription = profileDesc; - } - } - -//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 - 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 (!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 ------------------ - - std::wostringstream wCopyright; - wCopyright << copyright; - - cmsMLU *copyMLU = cmsMLUalloc(nullptr, 1); - - if (cmsMLUsetWide(copyMLU, "en", "US", wCopyright.str().c_str())) { - 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); - - - /* //to read XYZ values - cmsCIEXYZ *redT = static_cast(cmsReadTag(newProfile, cmsSigRedMatrixColumnTag)); - cmsCIEXYZ *greenT = static_cast(cmsReadTag(newProfile, cmsSigGreenMatrixColumnTag)); - 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()); - - } - - cmsFreeToneCurve(GammaTRC[0]); -} +/* + * 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 . + */ +#include +#include "iccprofilecreator.h" +#include "multilangmgr.h" +#include "cachemanager.h" +#include "addsetids.h" +#include "../rtengine/icons.h" +#include "../rtengine/color.h" +#include "rtimage.h" +#ifdef _OPENMP +#include +#endif + +extern Options options; + +namespace rtengine +{ + +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) + , primariesPreset(options.ICCPC_primariesPreset) + , redPrimaryX(options.ICCPC_redPrimaryX) + , redPrimaryY(options.ICCPC_redPrimaryY) + , greenPrimaryX(options.ICCPC_greenPrimaryX) + , greenPrimaryY(options.ICCPC_greenPrimaryY) + , bluePrimaryX(options.ICCPC_bluePrimaryX) + , bluePrimaryY(options.ICCPC_bluePrimaryY) + , gammaPreset(options.ICCPC_gammaPreset) + , gamma(options.ICCPC_gamma) + , slope(options.ICCPC_slope) + , appendParamsToDesc(options.ICCPC_appendParamsToDesc) + , profileVersion(options.ICCPC_profileVersion) + , illuminant(options.ICCPC_illuminant) + , description(options.ICCPC_description) + , copyright(options.ICCPC_copyright) + , parent(rtwindow) +{ + + set_default_size(600, -1); + + Gtk::Grid* mainGrid = Gtk::manage(new Gtk::Grid()); + mainGrid->set_column_spacing(3); + mainGrid->set_row_spacing(3); + + //--------------------------------- primaries + + Gtk::Label* prilab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_PRIMARIES"))); + setExpandAlignProperties(prilab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*prilab, 0, 0, 1, 1); + + primaries = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(primaries, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + primaries->append(M("ICCPROFCREATOR_CUSTOM")); + primaries->append(M("ICCPROFCREATOR_PRIM_ACESP0")); + primaries->append(M("ICCPROFCREATOR_PRIM_ACESP1")); + primaries->append(M("ICCPROFCREATOR_PRIM_ADOBE")); + primaries->append(M("ICCPROFCREATOR_PRIM_PROPH")); + primaries->append(M("ICCPROFCREATOR_PRIM_REC2020")); + primaries->append(M("ICCPROFCREATOR_PRIM_SRGB")); + primaries->append(M("ICCPROFCREATOR_PRIM_WIDEG")); + primaries->append(M("ICCPROFCREATOR_PRIM_BEST")); + primaries->append(M("ICCPROFCREATOR_PRIM_BETA")); + primaries->append(M("ICCPROFCREATOR_PRIM_BRUCE")); + primaries->set_tooltip_text(M("ICCPROFCREATOR_PRIM_TOOLTIP")); + mainGrid->attach(*primaries, 1, 0, 1, 1); + + primariesGrid = Gtk::manage(new Gtk::Grid()); + setExpandAlignProperties(primariesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + primariesGrid->set_column_spacing(5); + + /* + Gtk::Image* gamuts0 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl0 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts1 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl1 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts2 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl2 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts3 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl3 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts4 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl4 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts5 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl5 = Gtk::manage(new RTImage("rt-logo-small.png")); + */ + + aPrimariesRedX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDX"), 0.6300, 0.7350, 0.0001, 0.6400/*, gamuts0, gamutl0*/)); + setExpandAlignProperties(aPrimariesRedX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesRedY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDY"), 0.2650, 0.3350, 0.0001, 0.3300/*, gamutl1, gamuts1*/)); + setExpandAlignProperties(aPrimariesRedY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesGreenX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREX"), 0.0000, 0.3100, 0.0001, 0.3000/*, gamutl2, gamuts2*/)); + setExpandAlignProperties(aPrimariesGreenX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesGreenY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREY"), 0.5900, 1.0000, 0.0001, 0.6000/*, gamuts3, gamutl3*/)); + setExpandAlignProperties(aPrimariesGreenY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesBlueX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUX"), 0.0001, 0.1600, 0.0001, 0.1500/*, gamutl4, gamuts4*/)); + setExpandAlignProperties(aPrimariesBlueX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesBlueY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUY"), -0.0800, 0.0700, 0.0001, 0.060/*, gamutl5, gamuts5*/)); + setExpandAlignProperties(aPrimariesBlueY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + primariesGrid->attach(*aPrimariesRedX, 0, 0, 1, 1); + primariesGrid->attach(*aPrimariesRedY, 1, 0, 1, 1); + + primariesGrid->attach(*aPrimariesGreenX, 0, 1, 1, 1); + primariesGrid->attach(*aPrimariesGreenY, 1, 1, 1, 1); + + primariesGrid->attach(*aPrimariesBlueX, 0, 2, 1, 1); + primariesGrid->attach(*aPrimariesBlueY, 1, 2, 1, 1); + + mainGrid->attach(*primariesGrid, 1, 1, 1, 1); + + //--------------------------------- output gamma + + Gtk::Label* galab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_TRC_PRESET"))); + setExpandAlignProperties(galab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*galab, 0, 2, 1, 1); + + trcPresets = Gtk::manage(new MyComboBoxText()); + 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)); + 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 + + aSlope = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_SLOPE"), 0, 15, 0.00001, 12.92310)); + setExpandAlignProperties(aSlope, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + + if (aSlope->delay < options.adjusterMaxDelay) { + aSlope->delay = options.adjusterMaxDelay; + } + + aSlope->show(); + mainGrid->attach(*aSlope, 1, 4, 1, 1); //slope + + //--------------------------------- temperature + + Gtk::Label* illlab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ILL"))); + setExpandAlignProperties(illlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*illlab, 0, 5, 1, 1); //slope + cIlluminant = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(cIlluminant, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + cIlluminant->append(M("ICCPROFCREATOR_ILL_DEF")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_41")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_50")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_55")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_60")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_65")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_80")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_INC")); + cIlluminant->set_tooltip_text(M("ICCPROFCREATOR_ILL_TOOLTIP")); + mainGrid->attach(*cIlluminant, 1, 5, 1, 1); + + //--------------------------------- V2 or V4 profiles + + Gtk::Label* proflab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ICCVERSION"))); + setExpandAlignProperties(proflab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*proflab, 0, 6, 1, 1); + iccVersion = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(iccVersion, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + iccVersion->append(M("ICCPROFCREATOR_PROF_V4")); + iccVersion->append(M("ICCPROFCREATOR_PROF_V2")); + mainGrid->attach(*iccVersion, 1, 6, 1, 1); + + //--------------------------------- Description + + Gtk::Label* desclab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_DESCRIPTION"))); + setExpandAlignProperties(desclab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_START); + mainGrid->attach(*desclab, 0, 7, 1, 2); + eDescription = Gtk::manage(new Gtk::Entry()); + setExpandAlignProperties(eDescription, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + eDescription->set_tooltip_text(M("ICCPROFCREATOR_DESCRIPTION_TOOLTIP")); + mainGrid->attach(*eDescription, 1, 7, 1, 1); + cAppendParamsToDesc = Gtk::manage(new Gtk::CheckButton(M("ICCPROFCREATOR_DESCRIPTION_ADDPARAM"))); + setExpandAlignProperties(cAppendParamsToDesc, true, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*cAppendParamsToDesc, 1, 8, 1, 1); + + //--------------------------------- Copyright + + Gtk::Label* copylab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_COPYRIGHT"))); + setExpandAlignProperties(copylab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*copylab, 0, 9, 1, 1); + Gtk::Grid* copygrid = Gtk::manage(new Gtk::Grid()); + setExpandAlignProperties(copygrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); + eCopyright = Gtk::manage(new Gtk::Entry()); + 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"))); + 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->get_style_context()->add_class(GTK_STYLE_CLASS_FLAT); + resetCopyright->set_can_focus(false); + copygrid->attach(*resetCopyright, 1, 0, 1, 1); + mainGrid->attach(*copygrid, 1, 9, 1, 1); + + //--------------------------------- Adding the mainGrid + + get_content_area()->add(*mainGrid); + + //--------------------------------- Setting default values for Adjusters + + aGamma->setDefault(gamma); + aSlope->setDefault(slope); + aPrimariesRedX->setDefault(redPrimaryX); + aPrimariesRedY->setDefault(redPrimaryY); + aPrimariesGreenX->setDefault(greenPrimaryX); + aPrimariesGreenY->setDefault(greenPrimaryY); + aPrimariesBlueX->setDefault(bluePrimaryX); + aPrimariesBlueY->setDefault(bluePrimaryY); + + //--------------- Updating widgets with actual values (from options) + + if (primariesPreset == "custom") { + primaries->set_active_text(M("ICCPROFCREATOR_CUSTOM")); + } else if (primariesPreset == "ACES-AP0") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP0")); + } else if (primariesPreset == "ACES-AP1") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP1")); + } else if (primariesPreset == "Adobe") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ADOBE")); + } else if (primariesPreset == "ProPhoto") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_PROPH")); + } else if (primariesPreset == "Rec2020") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_REC2020")); + } else if (primariesPreset == "sRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_SRGB")); + } else if (primariesPreset == "Widegamut") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_WIDEG")); + } else if (primariesPreset == "BestRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BEST")); + } else if (primariesPreset == "BetaRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BETA")); + } else if (primariesPreset == "BruceRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BRUCE")); + } + + trcPresets->set_active(0); + + if (gammaPreset != "Custom") { + trcPresets->set_active_text(gammaPreset); + } + + aGamma->setValue(gamma); + aSlope->setValue(slope); + aPrimariesRedX->setValue(redPrimaryX); + aPrimariesRedY->setValue(redPrimaryY); + aPrimariesGreenX->setValue(greenPrimaryX); + aPrimariesGreenY->setValue(greenPrimaryY); + aPrimariesBlueX->setValue(bluePrimaryX); + aPrimariesBlueY->setValue(bluePrimaryY); + + eDescription->set_text(description); + eCopyright->set_text(copyright); + cAppendParamsToDesc->set_active(appendParamsToDesc); + + if (illuminant == "DEF") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_DEF")); + } else if (illuminant == "D41") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_41")); + } else if (illuminant == "D50") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_50")); + } else if (illuminant == "D55") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_55")); + } else if (illuminant == "D60") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_60")); + } else if (illuminant == "D65") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_65")); + } else if (illuminant == "D80") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_80")); + } else if (illuminant == "stdA") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_INC")); + } + + iccVersion->set_active(0); + + if (profileVersion == "v2") { + iccVersion->set_active(1); + } + + trcPresetsChanged(); + illuminantChanged(); + primariesChanged(); + + //--------------- 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* 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(); + + //--------------- Connecting the signals + + aPrimariesRedX->setAdjusterListener(this); + aPrimariesRedY->setAdjusterListener(this); + aPrimariesGreenX->setAdjusterListener(this); + aPrimariesGreenY->setAdjusterListener(this); + aPrimariesBlueX->setAdjusterListener(this); + aPrimariesBlueY->setAdjusterListener(this); + aGamma->setAdjusterListener(this); + aSlope->setAdjusterListener(this); + primariesconn = primaries->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::primariesChanged)); + trcpresetsconn = trcPresets->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::trcPresetsChanged)); + illconn = cIlluminant->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::illuminantChanged)); + resetCopyright->signal_clicked().connect(sigc::mem_fun(*this, &ICCProfileCreator::onResetCopyright)); +} + +void ICCProfileCreator::closePressed() +{ + storeValues(); + hide(); +} + +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); + } +} + +void ICCProfileCreator::adjusterChanged(Adjuster* a, double newval) +{ + if (a == aPrimariesRedX || a == aPrimariesRedY || + a == aPrimariesGreenX || a == aPrimariesGreenY || + a == aPrimariesBlueX || a == aPrimariesBlueY) { + if (primaries->get_active_row_number() > 0) { + ConnectionBlocker blocker(primariesconn); + primaries->set_active(0); + updateICCVersion(); + } + } else if (a == aGamma || a == aSlope) { + if (trcPresets->get_active_row_number() > 0) { + ConnectionBlocker blocker(trcpresetsconn); + trcPresets->set_active(0); + } + } +} + +void ICCProfileCreator::adjusterAutoToggled(Adjuster* a, bool newval) +{ +} + +void ICCProfileCreator::primariesChanged() +{ + if (primaries->get_active_row_number() > 0) { + float p[6]; + ColorTemp temp; + Glib::ustring activeValue = primaries->get_active_text(); + Glib::ustring primPresetName = getPrimariesPresetName(activeValue); + getPrimaries(primPresetName, p, temp); + aPrimariesRedX->setValue(p[0]); + aPrimariesRedY->setValue(p[1]); + aPrimariesGreenX->setValue(p[2]); + aPrimariesGreenY->setValue(p[3]); + aPrimariesBlueX->setValue(p[4]); + aPrimariesBlueY->setValue(p[5]); + } + + updateICCVersion(); +} + +void ICCProfileCreator::illuminantChanged() +{ + updateICCVersion(); +} + +void ICCProfileCreator::trcPresetsChanged() +{ + aGamma->block(true); + aSlope->block(true); + + double gamma; + double slope; + getGamma(getGammaPresetName(trcPresets->get_active_text()), gamma, slope); + aGamma->setValue(gamma); + aSlope->setValue(slope); + + aGamma->block(false); + aSlope->block(false); +} + +void ICCProfileCreator::storeValues() +{ + if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V4")) { + options.ICCPC_profileVersion = profileVersion = "v4"; + } else if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V2")) { + options.ICCPC_profileVersion = profileVersion = "v2"; + } + + if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_DEF")) { + options.ICCPC_illuminant = illuminant = "DEF"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_41")) { + options.ICCPC_illuminant = illuminant = "D41"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_50")) { + options.ICCPC_illuminant = illuminant = "D50"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_55")) { + options.ICCPC_illuminant = illuminant = "D55"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_60")) { + options.ICCPC_illuminant = illuminant = "D60"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_65")) { + options.ICCPC_illuminant = illuminant = "D65"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_80")) { + options.ICCPC_illuminant = illuminant = "D80"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_INC")) { + options.ICCPC_illuminant = illuminant = "stdA"; + } + + options.ICCPC_primariesPreset = primariesPreset = getPrimariesPresetName(primaries->get_active_text()); + options.ICCPC_gammaPreset = gammaPreset = getGammaPresetName(trcPresets->get_active_text()); + options.ICCPC_gamma = gamma = aGamma->getValue(); + options.ICCPC_slope = slope = aSlope->getValue(); + options.ICCPC_redPrimaryX = redPrimaryX = aPrimariesRedX->getValue(); + options.ICCPC_redPrimaryY = redPrimaryY = aPrimariesRedY->getValue(); + options.ICCPC_greenPrimaryX = greenPrimaryX = aPrimariesGreenX->getValue(); + options.ICCPC_greenPrimaryY = greenPrimaryY = aPrimariesGreenY->getValue(); + options.ICCPC_bluePrimaryX = bluePrimaryX = aPrimariesBlueX->getValue(); + options.ICCPC_bluePrimaryY = bluePrimaryY = aPrimariesBlueY->getValue(); + options.ICCPC_description = description = eDescription->get_text(); + options.ICCPC_copyright = copyright = eCopyright->get_text(); + options.ICCPC_appendParamsToDesc = appendParamsToDesc = cAppendParamsToDesc->get_active(); +} + +Glib::ustring ICCProfileCreator::getPrimariesPresetName(const Glib::ustring &preset) +{ + if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP0")) { + return Glib::ustring("ACES-AP0"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP1")) { + return Glib::ustring("ACES-AP1"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ADOBE")) { + return Glib::ustring("Adobe"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_PROPH")) { + return Glib::ustring("ProPhoto"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_REC2020")) { + return Glib::ustring("Rec2020"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_SRGB")) { + return Glib::ustring("sRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_WIDEG")) { + return Glib::ustring("Widegamut"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BEST")) { + return Glib::ustring("BestRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BETA")) { + return Glib::ustring("BetaRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BRUCE")) { + return Glib::ustring("BruceRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_CUSTOM")) { + return Glib::ustring("custom"); + } else { + return Glib::ustring(); + } +} + +void ICCProfileCreator::getPrimaries(const Glib::ustring &preset, float *p, ColorTemp &temp) +{ + temp = ColorTemp::D50; + + if (preset == "Widegamut") { + p[0] = 0.7350; //Widegamut primaries + p[1] = 0.2650; + p[2] = 0.1150; + p[3] = 0.8260; + p[4] = 0.1570; + p[5] = 0.0180; + + } else if (preset == "Adobe") { + p[0] = 0.6400; //Adobe primaries + p[1] = 0.3300; + p[2] = 0.2100; + p[3] = 0.7100; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (preset == "sRGB") { + p[0] = 0.6400; // sRGB primaries + p[1] = 0.3300; + p[2] = 0.3000; + p[3] = 0.6000; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (preset == "BruceRGB") { + p[0] = 0.6400; // Bruce primaries + p[1] = 0.3300; + p[2] = 0.2800; + p[3] = 0.6500; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (preset == "BetaRGB") { + p[0] = 0.6888; // Beta primaries + p[1] = 0.3112; + p[2] = 0.1986; + p[3] = 0.7551; + p[4] = 0.1265; + p[5] = 0.0352; + } else if (preset == "BestRGB") { + p[0] = 0.7347; // Best primaries + p[1] = 0.2653; + p[2] = 0.2150; + p[3] = 0.7750; + p[4] = 0.1300; + p[5] = 0.0350; + } else if (preset == "Rec2020") { + p[0] = 0.7080; // Rec2020 primaries + p[1] = 0.2920; + p[2] = 0.1700; + p[3] = 0.7970; + p[4] = 0.1310; + p[5] = 0.0460; + temp = ColorTemp::D65; + } else if (preset == "ACES-AP0") { + p[0] = 0.7347; // ACES P0 primaries + p[1] = 0.2653; + p[2] = 0.0000; + p[3] = 1.0; + p[4] = 0.0001; + p[5] = -0.0770; + temp = ColorTemp::D60; + } else if (preset == "ACES-AP1") { + p[0] = 0.713; // ACES P1 primaries + p[1] = 0.293; + p[2] = 0.165; + p[3] = 0.830; + p[4] = 0.128; + p[5] = 0.044; + temp = ColorTemp::D60; + } else if (preset == "ProPhoto") { + p[0] = 0.7347; // ProPhoto and default primaries + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } else if (preset == "custom") { + p[0] = redPrimaryX; + p[1] = redPrimaryY; + p[2] = greenPrimaryX; + p[3] = greenPrimaryY; + p[4] = bluePrimaryX; + p[5] = bluePrimaryY; + + } else { + p[0] = 0.7347; //default primaries + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } +} + +Glib::ustring ICCProfileCreator::getGammaPresetName(const Glib::ustring &preset) +{ + Glib::ustring name(trcPresets->get_active_text()); + + if (name == M("ICCPROFCREATOR_CUSTOM")) { + name = "Custom"; + } + + return name; +} + +void ICCProfileCreator::getGamma(const Glib::ustring &preset, double &presetGamma, double &presetSlope) +{ + if (preset == "High_g1.3_s3.35") { + presetGamma = 1.3; + presetSlope = 3.35; + } else if (preset == "Low_g2.6_s6.9") { + presetGamma = 2.6; + presetSlope = 6.9; + } else if (preset == "sRGB_g2.4_s12.92") { + presetGamma = 2.4; + presetSlope = 12.92310; + } else if (preset == "BT709_g2.2_s4.5") { + presetGamma = 2.22; + presetSlope = 4.5; + } else if (preset == "linear_g1.0") { + presetGamma = 1.; + presetSlope = 0.; + } else if (preset == "standard_g2.2") { + presetGamma = 2.2; + presetSlope = 0.; + } else if (preset == "standard_g1.8") { + presetGamma = 1.8; + presetSlope = 0.; + } else if (preset == "Lab_g3.0s9.03296") { + presetGamma = 3.0; + presetSlope = 9.03296; + } else if (preset == "Custom") { + presetGamma = gamma; + presetSlope = slope; + } else { + presetGamma = 2.4; + presetSlope = 12.92310; + } +} + +void ICCProfileCreator::onResetCopyright() +{ + eCopyright->set_text(Options::getICCProfileCopyright()); +} + +// Copyright (c) 2018 Jacques DESMIS +// WARNING: the caller must lock lcmsMutex +void ICCProfileCreator::savePressed() +{ + cmsHPROFILE newProfile = nullptr; + cmsHPROFILE profile_v2_except = nullptr; + + Glib::ustring sNewProfile; + Glib::ustring sPrimariesPreset; + Glib::ustring sGammaPreset; + + 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"); + + //necessary for V2 profile + + 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"; + } + } + + //begin adaptation rTRC gTRC bTRC + //"newProfile" profile has the same characteristics than RGB values, but TRC are adapted... for applying profile + if (rtengine::settings->verbose) { + printf("Output Gamma - profile Primaries as RT profile: \"%s\"\n", sNewProfile.c_str()); + } + + 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; + } + */ + //change desc Tag , to "free gamma", or "BT709", etc. + Glib::ustring fName; + Glib::ustring sPrimariesAndIlluminant; + double presetGamma = 2.4; + 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 + ga[1] = 0.998279; + ga[2] = 0.001721; + ga[3] = 0.298507; + ga[4] = 0.005746; + } 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 + ga[1] = 0.891161; + ga[2] = 0.108839; + ga[3] = 0.144928; + ga[4] = 0.076332; + } 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; + } 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[1] = 0.909995; + ga[2] = 0.090005; + ga[3] = 0.222222; + ga[4] = 0.081071; + } 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...) + ga[1] = 1.; + ga[2] = 0.; + ga[3] = 1. / eps; + ga[4] = 0.; + } else if (gammaPreset == "standard_g2.2") { + sGammaPreset = "g=2.2"; + ga[0] = 2.2; //gamma=2.2(as gamma of Adobe, Widegamut...) + ga[1] = 1.; + ga[2] = 0.; + ga[3] = 1. / eps; + ga[4] = 0.; + } else if (gammaPreset == "standard_g1.8") { + sGammaPreset = "g=1.8"; + ga[0] = 1.8; //gamma=1.8(as gamma of Prophoto) + ga[1] = 1.; + ga[2] = 0.; + ga[3] = 1. / eps; + ga[4] = 0.; + } else if (gammaPreset == "Lab_g3.0s9.03296") { + sGammaPreset = "LAB_g3.0_s9.03296"; + ga[0] = 3.0; //Lab gamma =3 slope=9.03296 + ga[1] = 0.8621; + ga[2] = 0.1379; + ga[3] = 0.1107; + ga[4] = 0.08; + } else if (gammaPreset == "Custom") { + rtengine::GammaValues g_a; //gamma parameters + double pwr = 1.0 / gamma; + double ts = slope; + double slope2 = slope == 0 ? eps : slope; + + int mode = 0; + rtengine::Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 + 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[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)); + presetGamma = gamma; + presetSlope = slope; + } + + ga[5] = 0.0; + ga[6] = 0.0; + + + sPrimariesAndIlluminant = sPrimariesPreset; + + if (profileVersion == "v4" && illuminant != "DEF") { + sPrimariesPreset += "-" + illuminant; + } + + Glib::ustring profileDesc; + Glib::ustring sGammaSlopeParam;//to save gamma and slope in a dmdd + Glib::ustring sGammaSlopeDesc; //to save gamma and slope in a desc + Glib::ustring sGamma; + 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); + 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); + 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); + + // -------------------------------------------- Asking the file name + + Gtk::FileChooserDialog dialog(getToplevelWindow(this), M("ICCPROFCREATOR_SAVEDIALOG_TITLE"), Gtk::FILE_CHOOSER_ACTION_SAVE); + bindCurrentFolder(dialog, options.lastICCProfCreatorDir); + dialog.set_current_name(fName); + //dialog.set_current_folder(lastPath); + + dialog.add_button(M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); + dialog.add_button(M("GENERAL_SAVE"), Gtk::RESPONSE_OK); + + Glib::RefPtr filter_icc = Gtk::FileFilter::create(); + filter_icc->set_name(M("FILECHOOSER_FILTER_COLPROF")); + filter_icc->add_pattern("*.icc"); + dialog.add_filter(filter_icc); + + /* + Glib::RefPtr filter_any = Gtk::FileFilter::create(); + filter_any->set_name(M("FILECHOOSER_FILTER_ANY")); + filter_any->add_pattern("*"); + dialog.add_filter(filter_any); + */ + + dialog.show_all_children(); + //dialog.set_do_overwrite_confirmation (true); + + Glib::ustring absoluteFName; + + do { + int result = dialog.run(); + + if (result != Gtk::RESPONSE_OK) { + return; + } else { + absoluteFName = dialog.get_filename(); + Glib::ustring ext = getExtension(absoluteFName); + + if (ext != "icc") { + absoluteFName += ".icc"; + } + + if (confirmOverwrite(dialog, absoluteFName)) { + //lastPath = Glib::path_get_dirname(absoluteFName); + break; + } + } + } while (1); + + // --------------- main tags ------------------ + /* + if (profileVersion == "v4") { + cmsSetProfileVersion(newProfile, 4.3); + } else { + cmsSetProfileVersion(newProfile, 2.0); + } + */ + +//change + float p[6]; //primaries + ga[6] = 0.0; + + ColorTemp temp; + getPrimaries(primariesPreset, p, temp); + + 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 + }; + + + 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") { + tempv4 = 5003.; + } else if (illuminant == "D55") { + tempv4 = 5500.; + } else if (illuminant == "D60") { + tempv4 = 6004.; + } else if (illuminant == "D65") { + tempv4 = 6504.; + } else if (illuminant == "D80") { + tempv4 = 8000.; + } 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 { + if (v2except) { + + cmsCIEXYZ XYZ; + + { + XYZ = {0.95045471, 1.0, 1.08905029};//white D65 + } + + if (primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0") { + XYZ = {0.952646075, 1.0, 1.008825184};//white D60 + } + + if (isD50) { + XYZ = {0.964295676, 1.0, 0.825104603};//white D50 room (prophoto) near LCMS values but not perfect...it's a compromise!! + } + + cmsCIExyY blackpoint; + + { + blackpoint = {0., 0., 0.};//White D65 point from the sRGB.icm and AdobeRGB1998 profile specs + } + + cmsWriteTag(profile_v2_except, cmsSigMediaBlackPointTag, &blackpoint); + cmsWriteTag(profile_v2_except, cmsSigMediaWhitePointTag, &XYZ); + cmsCIEXYZ rt; + cmsCIEXYZ bt; + cmsCIEXYZ gt; + + if (primariesPreset == "sRGB") { + //calculated with personnal special spreadsheat + { + //Matrix value from spec Adobe but adapted with wp + rt = {0.4360411843, 0.2224843154, 0.0139201582}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1430457992, 0.0606099658, 0.7139121724}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.3851136574, 0.7169049862, 0.0970677661}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + + } + + } + + if (primariesPreset == "Adobe") { + { + //Adobe spec adapted with wp calculated with personnal special spreadsheat + rt = {0.6097408852, 0.3111123176, 0.0194653393}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1491866649, 0.0632119133, 0.7445599707}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.2052730908, 0.6256750365, 0.0608747867}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "Rec2020") { + {//calculated with personnal special spreadsheat + rt = {0.6734800343, 0.2790423273, -0.0019336766}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1250489478, 0.0456126910, 0.7968509159}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1656716588, 0.6753442491, 0.0299828575}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "BruceRGB") { + {//calculated with personnal special spreadsheat + rt = {0.4941542253, 0.2521357351, 0.0157753562}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1495175342, 0.0633521060, 0.7462112712}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.3205288814, 0.6845114263, 0.0629134693}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "ACES-AP0") { + {//calculated with personnal special spreadsheat + rt = {0.9908835135, 0.3618940325, -0.0027137400}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {-0.0389246557, -0.084405166, 0.8193659780}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.0122417831, 0.7225104015, 0.0082478587}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "ACES-AP1") {//done + {//calculated with personnal special spreadsheat + rt = {0.6898756188, 0.2845109670, -0.0060455375}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1245615936, 0.0437959432, 0.8209388333}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1497634285, 0.6716923572, 0.0100068009}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "ProPhoto") { + {//calculated with personnal special spreadsheat + rt = {0.7977198204, 0.2880493171, -0.0000030551}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.0313194091, 0.0000771282, 0.8248890748}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1351614114, 0.7118728221, 0.0000140770}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "Widegamut") { + {//calculated with personnal special spreadsheat + rt = {0.7161680478, 0.2582038074, -0.0000027515}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1471328469, 0.0168600579, 0.7731227232}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1008997462, 0.7249354021, 0.0517801251}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "BestRGB") { + {//calculated with personnal special spreadsheat + rt = {0.6327383009, 0.2284760022, -0.0000024233}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1269437333, 0.0341753604, 0.8153773703}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.2045186067, 0.7373479048, 0.0095251497}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "BetaRGB") { + {//calculated with personnal special spreadsheat + rt = {0.6713200674, 0.3033034560, -0.0000012307}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1183343909, 0.0329265310, 0.7842009909}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1745461827, 0.6637692805, 0.0407003365}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + } else { + cmsWhitePointFromTemp(&xyD, (double)temp); + } + } + + + 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}; + } + +// {0.3457, 0.3585, 1.0}; + // Calculate output profile's rTRC gTRC bTRC + + + cmsToneCurve* GammaTRC[3]; + + if (gammaPreset != "standard_g2.2" || gammaPreset != "standard_g1.8" || gammaPreset != "linear_g1.0") { + 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 + } + + if (gammaPreset == "standard_g1.8") { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.80078125); + } + + if (gammaPreset == "linear_g1.0") { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.0); + } + + + + if (profileVersion == "v4") { + newProfile = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); + } + + if (profileVersion == "v2") { + if (v2except) { + cmsSetProfileVersion(profile_v2_except, 2.2); + } else { + cmsSetProfileVersion(newProfile, 2.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"); + + if (!v2except) { + cmsWriteTag(newProfile, cmsSigDeviceMfgDescTag, dmnd); + } else { + cmsWriteTag(profile_v2_except, cmsSigDeviceMfgDescTag, dmnd); + } + + cmsMLUfree(dmnd); + + + +// --------------- set dmdd tag ------------------ + + if (profileVersion == "v2") { + //write in tag 'dmdd' values of current gamma and slope to retrieve after in Output profile + std::wostringstream wGammaSlopeParam; + 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 (!v2except) { + if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, dmdd)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + } else { + if (!cmsWriteTag(profile_v2_except, cmsSigProfileDescriptionTag, dmdd)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + + } + } + } else if (cmsMLUsetWide(dmdd, "en", "US", wGammaSlopeParam.str().c_str())) { + 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 ------------------ + + Glib::ustring sDescription; + + if (!description.empty()) { + if (cAppendParamsToDesc->get_active()) { + sDescription = description + " / " + sGammaSlopeDesc; + } else { + sDescription = description; + } + } else { + if (cAppendParamsToDesc->get_active()) { + sDescription = profileDesc + " / " + sGammaSlopeDesc; + } else { + sDescription = profileDesc; + } + } + +//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 + 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 (!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 ------------------ + + std::wostringstream wCopyright; + wCopyright << copyright; + + cmsMLU *copyMLU = cmsMLUalloc(nullptr, 1); + + if (cmsMLUsetWide(copyMLU, "en", "US", wCopyright.str().c_str())) { + 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); + + + /* //to read XYZ values + cmsCIEXYZ *redT = static_cast(cmsReadTag(newProfile, cmsSigRedMatrixColumnTag)); + cmsCIEXYZ *greenT = static_cast(cmsReadTag(newProfile, cmsSigGreenMatrixColumnTag)); + 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()); + + } + + cmsFreeToneCurve(GammaTRC[0]); +} diff --git a/rtgui/iccprofilecreator.h b/rtgui/iccprofilecreator.h index e8de318d3..605cb9dcd 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; - 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); - 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); + 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); +}; From 91706c284a73efc8e8967768d815bba6d037a8b3 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 16 Nov 2018 15:04:08 +0100 Subject: [PATCH 031/116] Fix issue reported by coverity --- rtgui/iccprofilecreator.cc | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index b322fa005..3e868ce04 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1199,29 +1199,21 @@ void ICCProfileCreator::savePressed() cmsToneCurve* GammaTRC[3]; - if (gammaPreset != "standard_g2.2" || gammaPreset != "standard_g1.8" || gammaPreset != "linear_g1.0") { - 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 - } - - if (gammaPreset == "standard_g1.8") { + } else if (gammaPreset == "standard_g1.8") { GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.80078125); - } - - if (gammaPreset == "linear_g1.0") { + } else if (gammaPreset == "linear_g1.0") { GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.0); + } else { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, ga); } if (profileVersion == "v4") { newProfile = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); - } - - if (profileVersion == "v2") { + } else if (profileVersion == "v2") { if (v2except) { cmsSetProfileVersion(profile_v2_except, 2.2); } else { From 1c081965624a88888a9adf1dbf26652c7cd8d1de Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Fri, 16 Nov 2018 18:14:04 +0100 Subject: [PATCH 032/116] Added color-picker-small icon #4986 --- .../themed/png/dark/color-picker-small.png | Bin 0 -> 455 bytes .../themed/png/light/color-picker-small.png | Bin 0 -> 475 bytes .../images/themed/svg/color-picker-small.svg | 133 ++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 rtdata/images/themed/png/dark/color-picker-small.png create mode 100644 rtdata/images/themed/png/light/color-picker-small.png create mode 100644 rtdata/images/themed/svg/color-picker-small.svg 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 0000000000000000000000000000000000000000..5976b6e11c0f9e7e121e422c9f3a206265ffb36c GIT binary patch literal 455 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}P>E|qiF1BIWl?5&MhSznvw~wu zNl|7}X-Q^&o^EhPVo|DNPG)whLPkkRft9{~a#3nxNoHAUa(-@ZeqOO&eo?x9PG)jy zUU6!%ep01waiYG7o`L@1kR(>1>9QcxT~dpai!uv91~LRCmWO1d79|#>rYdA6=jZ9& zSk*NLs89r?(6O{6Bfp5jH!(RgHA}&zJijP0+co zc5yP$9FPlUzq647D&j2gh%9Dc;5!1sj8nDwq=ACQ0X`wF?gc()&YU@Q>J*SXefl(z zgae2mgaitnJbCi$*|R{#_Ey;*pmxEMAirP+R_O^bTOLneDR{`YBv+%#X4x^v2B2i1 zr;B5V#O2!ajzSFv9Lx?;Tr8`u{@;Hsn!V)M9kT+?i~iFR)5<#(DqA`VcCB8uAb)pj z*2kBESrE|qiF1BIWl?5&MhSznvw~wu zNl|7}X-Q^&o^EhPVo|DNPG)whLPkkRft9{~a#3nxNoHAUa(-@ZeqOO&eo?x9PG)jy zUU6!%ep01waiYG7o`L@1kR(>1>9QcxT~dpai!uv91~LRCmWO1d79|#>rYdA6=jZ9& zSk*NLs89r?(6O{6Bfp5jH!(RgHA}&zJijP0+co zc5yP$9FPlUzq647D&j2gh%9Dc;5!1sj8nDwq=AC=0X`wF?gc(7Dk?TMHb4>xR8>`# zl$3xZ5J0#F&vqgH^D#7{tHTrxm zm-<(6*t8z~ycMV*)YHW=MB;Moc}u + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + From 1fa253ba635707db657b68370d2fc1a555e8d6ff Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 16 Nov 2018 20:48:33 +0100 Subject: [PATCH 033/116] Fix some issues reported by coverity --- rtengine/FTblockDN.cc | 4 ++-- rtengine/image16.cc | 2 +- rtengine/image16.h | 2 +- rtengine/image8.cc | 2 +- rtengine/image8.h | 2 +- rtengine/imagefloat.cc | 2 +- rtengine/imagefloat.h | 2 +- rtengine/imageio.h | 2 +- rtengine/imagesource.h | 2 +- rtengine/rawimagesource.cc | 6 +++--- rtengine/rawimagesource.h | 2 +- rtengine/stdimagesource.cc | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 8ced521d3..dfab72089 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -807,8 +807,8 @@ BENCHFUN #endif const std::size_t blox_array_size = denoiseNestedLevels * numthreads; - float *LbloxArray[blox_array_size]; - float *fLbloxArray[blox_array_size]; + float *LbloxArray[blox_array_size] = {}; + float *fLbloxArray[blox_array_size] = {}; for (std::size_t i = 0; i < blox_array_size; ++i) { LbloxArray[i] = nullptr; diff --git a/rtengine/image16.cc b/rtengine/image16.cc index c014d1c06..5ceb4f804 100644 --- a/rtengine/image16.cc +++ b/rtengine/image16.cc @@ -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(ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp) { // compute channel multipliers diff --git a/rtengine/image16.h b/rtengine/image16.h index 1c5504bd9..804f8cc72 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -45,7 +45,7 @@ public: Image8* to8(); Imagefloat* tofloat(); - virtual void getStdImage(ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp); + virtual void getStdImage(ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp); virtual const char* getType() const { diff --git a/rtengine/image8.cc b/rtengine/image8.cc index ab7393100..15a6d9acc 100644 --- a/rtengine/image8.cc +++ b/rtengine/image8.cc @@ -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 (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp) { // 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..9bb5d51e3 100644 --- a/rtengine/image8.h +++ b/rtengine/image8.h @@ -40,7 +40,7 @@ public: Image8* copy (); - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp); + virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp); virtual const char* getType () const { diff --git a/rtengine/imagefloat.cc b/rtengine/imagefloat.cc index 2cf73204d..fd6bc1c75 100644 --- a/rtengine/imagefloat.cc +++ b/rtengine/imagefloat.cc @@ -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 (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp) { // compute channel multipliers diff --git a/rtengine/imagefloat.h b/rtengine/imagefloat.h index 65c291775..d84e742ce 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -49,7 +49,7 @@ public: Image8* to8(); Image16* to16(); - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp); + virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp); virtual const char* getType () const { diff --git a/rtengine/imageio.h b/rtengine/imageio.h index cbf245291..0de1de1c0 100644 --- a/rtengine/imageio.h +++ b/rtengine/imageio.h @@ -106,7 +106,7 @@ public: return sampleArrangement; } - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp) + virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first) { printf("getStdImage NULL!\n"); } diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index c1bd8fd64..2c7ded588 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -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) {}; diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 85e68745b..086747b1b 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -2825,7 +2825,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) { @@ -3236,10 +3236,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; } diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index af0c1a116..7244f4c7c 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -122,7 +122,7 @@ public: void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D &conversionBuffer, LUTu &lhist16RETI); void flushRawData (); void flushRGB (); - void HLRecovery_Global (ToneCurveParams hrp); + void HLRecovery_Global (const ToneCurveParams &hrp); void refinement_lassus (int PassCount); void refinement(int PassCount); void setBorder(unsigned int rawBorder) {border = rawBorder;} diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index c75995b25..241d5f81d 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, true); // 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!" From d66d8ce320f397f80c21a035001c60a891a6cd7c Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 16 Nov 2018 21:49:46 +0100 Subject: [PATCH 034/116] Fix issue reported by coverity --- rtengine/ipresize.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/ipresize.cc b/rtengine/ipresize.cc index b3275b2e4..f33b8f0c9 100644 --- a/rtengine/ipresize.cc +++ b/rtengine/ipresize.cc @@ -231,7 +231,7 @@ void ImProcFunctions::Lanczos (const LabImage* src, LabImage* dst, float scale) float* const la = aligned_buffer_la.data; float* const lb = aligned_buffer_lb.data; // weights for interpolation in y direction - float w[support] ALIGNED64; + float w[support] ALIGNED64 = {}; // Phase 2: do actual interpolation #ifdef _OPENMP From 0ff68afcdfee71269a0addd169880fca5d956dd2 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 16 Nov 2018 22:05:32 +0100 Subject: [PATCH 035/116] Change line endings --- rtgui/iccprofilecreator.cc | 2790 ++++++++++++++++++------------------ rtgui/iccprofilecreator.h | 214 +-- 2 files changed, 1502 insertions(+), 1502 deletions(-) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 0d16a401a..15823f9d4 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1,1395 +1,1395 @@ -/* - * 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 . - */ -#include -#include "iccprofilecreator.h" -#include "multilangmgr.h" -#include "cachemanager.h" -#include "addsetids.h" -#include "../rtengine/icons.h" -#include "../rtengine/color.h" -#include "rtimage.h" -#ifdef _OPENMP -#include -#endif - -extern Options options; - -namespace rtengine -{ - -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) - , primariesPreset(options.ICCPC_primariesPreset) - , redPrimaryX(options.ICCPC_redPrimaryX) - , redPrimaryY(options.ICCPC_redPrimaryY) - , greenPrimaryX(options.ICCPC_greenPrimaryX) - , greenPrimaryY(options.ICCPC_greenPrimaryY) - , bluePrimaryX(options.ICCPC_bluePrimaryX) - , bluePrimaryY(options.ICCPC_bluePrimaryY) - , gammaPreset(options.ICCPC_gammaPreset) - , gamma(options.ICCPC_gamma) - , slope(options.ICCPC_slope) - , appendParamsToDesc(options.ICCPC_appendParamsToDesc) - , profileVersion(options.ICCPC_profileVersion) - , illuminant(options.ICCPC_illuminant) - , description(options.ICCPC_description) - , copyright(options.ICCPC_copyright) - , parent(rtwindow) -{ - - set_default_size(600, -1); - - Gtk::Grid* mainGrid = Gtk::manage(new Gtk::Grid()); - mainGrid->set_column_spacing(3); - mainGrid->set_row_spacing(3); - - //--------------------------------- primaries - - Gtk::Label* prilab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_PRIMARIES"))); - setExpandAlignProperties(prilab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*prilab, 0, 0, 1, 1); - - primaries = Gtk::manage(new MyComboBoxText()); - setExpandAlignProperties(primaries, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - primaries->append(M("ICCPROFCREATOR_CUSTOM")); - primaries->append(M("ICCPROFCREATOR_PRIM_ACESP0")); - primaries->append(M("ICCPROFCREATOR_PRIM_ACESP1")); - primaries->append(M("ICCPROFCREATOR_PRIM_ADOBE")); - primaries->append(M("ICCPROFCREATOR_PRIM_PROPH")); - primaries->append(M("ICCPROFCREATOR_PRIM_REC2020")); - primaries->append(M("ICCPROFCREATOR_PRIM_SRGB")); - primaries->append(M("ICCPROFCREATOR_PRIM_WIDEG")); - primaries->append(M("ICCPROFCREATOR_PRIM_BEST")); - primaries->append(M("ICCPROFCREATOR_PRIM_BETA")); - primaries->append(M("ICCPROFCREATOR_PRIM_BRUCE")); - primaries->set_tooltip_text(M("ICCPROFCREATOR_PRIM_TOOLTIP")); - mainGrid->attach(*primaries, 1, 0, 1, 1); - - primariesGrid = Gtk::manage(new Gtk::Grid()); - setExpandAlignProperties(primariesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - primariesGrid->set_column_spacing(5); - - /* - Gtk::Image* gamuts0 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl0 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts1 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl1 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts2 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl2 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts3 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl3 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts4 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl4 = Gtk::manage(new RTImage("rt-logo-small.png")); - Gtk::Image* gamuts5 = Gtk::manage(new RTImage("rt-logo-tiny.png")); - Gtk::Image* gamutl5 = Gtk::manage(new RTImage("rt-logo-small.png")); - */ - - aPrimariesRedX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDX"), 0.6300, 0.7350, 0.0001, 0.6400/*, gamuts0, gamutl0*/)); - setExpandAlignProperties(aPrimariesRedX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesRedY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDY"), 0.2650, 0.3350, 0.0001, 0.3300/*, gamutl1, gamuts1*/)); - setExpandAlignProperties(aPrimariesRedY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesGreenX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREX"), 0.0000, 0.3100, 0.0001, 0.3000/*, gamutl2, gamuts2*/)); - setExpandAlignProperties(aPrimariesGreenX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesGreenY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREY"), 0.5900, 1.0000, 0.0001, 0.6000/*, gamuts3, gamutl3*/)); - setExpandAlignProperties(aPrimariesGreenY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesBlueX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUX"), 0.0001, 0.1600, 0.0001, 0.1500/*, gamutl4, gamuts4*/)); - setExpandAlignProperties(aPrimariesBlueX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesBlueY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUY"), -0.0800, 0.0700, 0.0001, 0.060/*, gamutl5, gamuts5*/)); - setExpandAlignProperties(aPrimariesBlueY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - - primariesGrid->attach(*aPrimariesRedX, 0, 0, 1, 1); - primariesGrid->attach(*aPrimariesRedY, 1, 0, 1, 1); - - primariesGrid->attach(*aPrimariesGreenX, 0, 1, 1, 1); - primariesGrid->attach(*aPrimariesGreenY, 1, 1, 1, 1); - - primariesGrid->attach(*aPrimariesBlueX, 0, 2, 1, 1); - primariesGrid->attach(*aPrimariesBlueY, 1, 2, 1, 1); - - mainGrid->attach(*primariesGrid, 1, 1, 1, 1); - - //--------------------------------- output gamma - - Gtk::Label* galab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_TRC_PRESET"))); - setExpandAlignProperties(galab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*galab, 0, 2, 1, 1); - - trcPresets = Gtk::manage(new MyComboBoxText()); - 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)); - 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 - - aSlope = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_SLOPE"), 0, 15, 0.00001, 12.92310)); - setExpandAlignProperties(aSlope, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - - if (aSlope->delay < options.adjusterMaxDelay) { - aSlope->delay = options.adjusterMaxDelay; - } - - aSlope->show(); - mainGrid->attach(*aSlope, 1, 4, 1, 1); //slope - - //--------------------------------- temperature - - Gtk::Label* illlab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ILL"))); - setExpandAlignProperties(illlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*illlab, 0, 5, 1, 1); //slope - cIlluminant = Gtk::manage(new MyComboBoxText()); - setExpandAlignProperties(cIlluminant, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - cIlluminant->append(M("ICCPROFCREATOR_ILL_DEF")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_41")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_50")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_55")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_60")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_65")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_80")); - cIlluminant->append(M("ICCPROFCREATOR_ILL_INC")); - cIlluminant->set_tooltip_text(M("ICCPROFCREATOR_ILL_TOOLTIP")); - mainGrid->attach(*cIlluminant, 1, 5, 1, 1); - - //--------------------------------- V2 or V4 profiles - - Gtk::Label* proflab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ICCVERSION"))); - setExpandAlignProperties(proflab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*proflab, 0, 6, 1, 1); - iccVersion = Gtk::manage(new MyComboBoxText()); - setExpandAlignProperties(iccVersion, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); - iccVersion->append(M("ICCPROFCREATOR_PROF_V4")); - iccVersion->append(M("ICCPROFCREATOR_PROF_V2")); - mainGrid->attach(*iccVersion, 1, 6, 1, 1); - - //--------------------------------- Description - - Gtk::Label* desclab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_DESCRIPTION"))); - setExpandAlignProperties(desclab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_START); - mainGrid->attach(*desclab, 0, 7, 1, 2); - eDescription = Gtk::manage(new Gtk::Entry()); - setExpandAlignProperties(eDescription, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - eDescription->set_tooltip_text(M("ICCPROFCREATOR_DESCRIPTION_TOOLTIP")); - mainGrid->attach(*eDescription, 1, 7, 1, 1); - cAppendParamsToDesc = Gtk::manage(new Gtk::CheckButton(M("ICCPROFCREATOR_DESCRIPTION_ADDPARAM"))); - setExpandAlignProperties(cAppendParamsToDesc, true, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*cAppendParamsToDesc, 1, 8, 1, 1); - - //--------------------------------- Copyright - - Gtk::Label* copylab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_COPYRIGHT"))); - setExpandAlignProperties(copylab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - mainGrid->attach(*copylab, 0, 9, 1, 1); - Gtk::Grid* copygrid = Gtk::manage(new Gtk::Grid()); - setExpandAlignProperties(copygrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); - eCopyright = Gtk::manage(new Gtk::Entry()); - 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"))); - 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->get_style_context()->add_class(GTK_STYLE_CLASS_FLAT); - resetCopyright->set_can_focus(false); - copygrid->attach(*resetCopyright, 1, 0, 1, 1); - mainGrid->attach(*copygrid, 1, 9, 1, 1); - - //--------------------------------- Adding the mainGrid - - get_content_area()->add(*mainGrid); - - //--------------------------------- Setting default values for Adjusters - - aGamma->setDefault(gamma); - aSlope->setDefault(slope); - aPrimariesRedX->setDefault(redPrimaryX); - aPrimariesRedY->setDefault(redPrimaryY); - aPrimariesGreenX->setDefault(greenPrimaryX); - aPrimariesGreenY->setDefault(greenPrimaryY); - aPrimariesBlueX->setDefault(bluePrimaryX); - aPrimariesBlueY->setDefault(bluePrimaryY); - - //--------------- Updating widgets with actual values (from options) - - if (primariesPreset == "custom") { - primaries->set_active_text(M("ICCPROFCREATOR_CUSTOM")); - } else if (primariesPreset == "ACES-AP0") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP0")); - } else if (primariesPreset == "ACES-AP1") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP1")); - } else if (primariesPreset == "Adobe") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ADOBE")); - } else if (primariesPreset == "ProPhoto") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_PROPH")); - } else if (primariesPreset == "Rec2020") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_REC2020")); - } else if (primariesPreset == "sRGB") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_SRGB")); - } else if (primariesPreset == "Widegamut") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_WIDEG")); - } else if (primariesPreset == "BestRGB") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BEST")); - } else if (primariesPreset == "BetaRGB") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BETA")); - } else if (primariesPreset == "BruceRGB") { - primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BRUCE")); - } - - trcPresets->set_active(0); - - if (gammaPreset != "Custom") { - trcPresets->set_active_text(gammaPreset); - } - - aGamma->setValue(gamma); - aSlope->setValue(slope); - aPrimariesRedX->setValue(redPrimaryX); - aPrimariesRedY->setValue(redPrimaryY); - aPrimariesGreenX->setValue(greenPrimaryX); - aPrimariesGreenY->setValue(greenPrimaryY); - aPrimariesBlueX->setValue(bluePrimaryX); - aPrimariesBlueY->setValue(bluePrimaryY); - - eDescription->set_text(description); - eCopyright->set_text(copyright); - cAppendParamsToDesc->set_active(appendParamsToDesc); - - if (illuminant == "DEF") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_DEF")); - } else if (illuminant == "D41") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_41")); - } else if (illuminant == "D50") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_50")); - } else if (illuminant == "D55") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_55")); - } else if (illuminant == "D60") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_60")); - } else if (illuminant == "D65") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_65")); - } else if (illuminant == "D80") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_80")); - } else if (illuminant == "stdA") { - cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_INC")); - } - - iccVersion->set_active(0); - - if (profileVersion == "v2") { - iccVersion->set_active(1); - } - - trcPresetsChanged(); - illuminantChanged(); - primariesChanged(); - - //--------------- 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* 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(); - - //--------------- Connecting the signals - - aPrimariesRedX->setAdjusterListener(this); - aPrimariesRedY->setAdjusterListener(this); - aPrimariesGreenX->setAdjusterListener(this); - aPrimariesGreenY->setAdjusterListener(this); - aPrimariesBlueX->setAdjusterListener(this); - aPrimariesBlueY->setAdjusterListener(this); - aGamma->setAdjusterListener(this); - aSlope->setAdjusterListener(this); - primariesconn = primaries->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::primariesChanged)); - trcpresetsconn = trcPresets->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::trcPresetsChanged)); - illconn = cIlluminant->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::illuminantChanged)); - resetCopyright->signal_clicked().connect(sigc::mem_fun(*this, &ICCProfileCreator::onResetCopyright)); -} - -void ICCProfileCreator::closePressed() -{ - storeValues(); - hide(); -} - -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); - } -} - -void ICCProfileCreator::adjusterChanged(Adjuster* a, double newval) -{ - if (a == aPrimariesRedX || a == aPrimariesRedY || - a == aPrimariesGreenX || a == aPrimariesGreenY || - a == aPrimariesBlueX || a == aPrimariesBlueY) { - if (primaries->get_active_row_number() > 0) { - ConnectionBlocker blocker(primariesconn); - primaries->set_active(0); - updateICCVersion(); - } - } else if (a == aGamma || a == aSlope) { - if (trcPresets->get_active_row_number() > 0) { - ConnectionBlocker blocker(trcpresetsconn); - trcPresets->set_active(0); - } - } -} - -void ICCProfileCreator::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - -void ICCProfileCreator::primariesChanged() -{ - if (primaries->get_active_row_number() > 0) { - float p[6]; - ColorTemp temp; - Glib::ustring activeValue = primaries->get_active_text(); - Glib::ustring primPresetName = getPrimariesPresetName(activeValue); - getPrimaries(primPresetName, p, temp); - aPrimariesRedX->setValue(p[0]); - aPrimariesRedY->setValue(p[1]); - aPrimariesGreenX->setValue(p[2]); - aPrimariesGreenY->setValue(p[3]); - aPrimariesBlueX->setValue(p[4]); - aPrimariesBlueY->setValue(p[5]); - } - - updateICCVersion(); -} - -void ICCProfileCreator::illuminantChanged() -{ - updateICCVersion(); -} - -void ICCProfileCreator::trcPresetsChanged() -{ - aGamma->block(true); - aSlope->block(true); - - double gamma; - double slope; - getGamma(getGammaPresetName(trcPresets->get_active_text()), gamma, slope); - aGamma->setValue(gamma); - aSlope->setValue(slope); - - aGamma->block(false); - aSlope->block(false); -} - -void ICCProfileCreator::storeValues() -{ - if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V4")) { - options.ICCPC_profileVersion = profileVersion = "v4"; - } else if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V2")) { - options.ICCPC_profileVersion = profileVersion = "v2"; - } - - if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_DEF")) { - options.ICCPC_illuminant = illuminant = "DEF"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_41")) { - options.ICCPC_illuminant = illuminant = "D41"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_50")) { - options.ICCPC_illuminant = illuminant = "D50"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_55")) { - options.ICCPC_illuminant = illuminant = "D55"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_60")) { - options.ICCPC_illuminant = illuminant = "D60"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_65")) { - options.ICCPC_illuminant = illuminant = "D65"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_80")) { - options.ICCPC_illuminant = illuminant = "D80"; - } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_INC")) { - options.ICCPC_illuminant = illuminant = "stdA"; - } - - options.ICCPC_primariesPreset = primariesPreset = getPrimariesPresetName(primaries->get_active_text()); - options.ICCPC_gammaPreset = gammaPreset = getGammaPresetName(trcPresets->get_active_text()); - options.ICCPC_gamma = gamma = aGamma->getValue(); - options.ICCPC_slope = slope = aSlope->getValue(); - options.ICCPC_redPrimaryX = redPrimaryX = aPrimariesRedX->getValue(); - options.ICCPC_redPrimaryY = redPrimaryY = aPrimariesRedY->getValue(); - options.ICCPC_greenPrimaryX = greenPrimaryX = aPrimariesGreenX->getValue(); - options.ICCPC_greenPrimaryY = greenPrimaryY = aPrimariesGreenY->getValue(); - options.ICCPC_bluePrimaryX = bluePrimaryX = aPrimariesBlueX->getValue(); - options.ICCPC_bluePrimaryY = bluePrimaryY = aPrimariesBlueY->getValue(); - options.ICCPC_description = description = eDescription->get_text(); - options.ICCPC_copyright = copyright = eCopyright->get_text(); - options.ICCPC_appendParamsToDesc = appendParamsToDesc = cAppendParamsToDesc->get_active(); -} - -Glib::ustring ICCProfileCreator::getPrimariesPresetName(const Glib::ustring &preset) -{ - if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP0")) { - return Glib::ustring("ACES-AP0"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP1")) { - return Glib::ustring("ACES-AP1"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ADOBE")) { - return Glib::ustring("Adobe"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_PROPH")) { - return Glib::ustring("ProPhoto"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_REC2020")) { - return Glib::ustring("Rec2020"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_SRGB")) { - return Glib::ustring("sRGB"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_WIDEG")) { - return Glib::ustring("Widegamut"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BEST")) { - return Glib::ustring("BestRGB"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BETA")) { - return Glib::ustring("BetaRGB"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BRUCE")) { - return Glib::ustring("BruceRGB"); - } else if (primaries->get_active_text() == M("ICCPROFCREATOR_CUSTOM")) { - return Glib::ustring("custom"); - } else { - return Glib::ustring(); - } -} - -void ICCProfileCreator::getPrimaries(const Glib::ustring &preset, float *p, ColorTemp &temp) -{ - temp = ColorTemp::D50; - - if (preset == "Widegamut") { - p[0] = 0.7350; //Widegamut primaries - p[1] = 0.2650; - p[2] = 0.1150; - p[3] = 0.8260; - p[4] = 0.1570; - p[5] = 0.0180; - - } else if (preset == "Adobe") { - p[0] = 0.6400; //Adobe primaries - p[1] = 0.3300; - p[2] = 0.2100; - p[3] = 0.7100; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (preset == "sRGB") { - p[0] = 0.6400; // sRGB primaries - p[1] = 0.3300; - p[2] = 0.3000; - p[3] = 0.6000; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (preset == "BruceRGB") { - p[0] = 0.6400; // Bruce primaries - p[1] = 0.3300; - p[2] = 0.2800; - p[3] = 0.6500; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (preset == "BetaRGB") { - p[0] = 0.6888; // Beta primaries - p[1] = 0.3112; - p[2] = 0.1986; - p[3] = 0.7551; - p[4] = 0.1265; - p[5] = 0.0352; - } else if (preset == "BestRGB") { - p[0] = 0.7347; // Best primaries - p[1] = 0.2653; - p[2] = 0.2150; - p[3] = 0.7750; - p[4] = 0.1300; - p[5] = 0.0350; - } else if (preset == "Rec2020") { - p[0] = 0.7080; // Rec2020 primaries - p[1] = 0.2920; - p[2] = 0.1700; - p[3] = 0.7970; - p[4] = 0.1310; - p[5] = 0.0460; - temp = ColorTemp::D65; - } else if (preset == "ACES-AP0") { - p[0] = 0.7347; // ACES P0 primaries - p[1] = 0.2653; - p[2] = 0.0000; - p[3] = 1.0; - p[4] = 0.0001; - p[5] = -0.0770; - temp = ColorTemp::D60; - } else if (preset == "ACES-AP1") { - p[0] = 0.713; // ACES P1 primaries - p[1] = 0.293; - p[2] = 0.165; - p[3] = 0.830; - p[4] = 0.128; - p[5] = 0.044; - temp = ColorTemp::D60; - } else if (preset == "ProPhoto") { - p[0] = 0.7347; // ProPhoto and default primaries - p[1] = 0.2653; - p[2] = 0.1596; - p[3] = 0.8404; - p[4] = 0.0366; - p[5] = 0.0001; - } else if (preset == "custom") { - p[0] = redPrimaryX; - p[1] = redPrimaryY; - p[2] = greenPrimaryX; - p[3] = greenPrimaryY; - p[4] = bluePrimaryX; - p[5] = bluePrimaryY; - - } else { - p[0] = 0.7347; //default primaries - p[1] = 0.2653; - p[2] = 0.1596; - p[3] = 0.8404; - p[4] = 0.0366; - p[5] = 0.0001; - } -} - -Glib::ustring ICCProfileCreator::getGammaPresetName(const Glib::ustring &preset) -{ - Glib::ustring name(trcPresets->get_active_text()); - - if (name == M("ICCPROFCREATOR_CUSTOM")) { - name = "Custom"; - } - - return name; -} - -void ICCProfileCreator::getGamma(const Glib::ustring &preset, double &presetGamma, double &presetSlope) -{ - if (preset == "High_g1.3_s3.35") { - presetGamma = 1.3; - presetSlope = 3.35; - } else if (preset == "Low_g2.6_s6.9") { - presetGamma = 2.6; - presetSlope = 6.9; - } else if (preset == "sRGB_g2.4_s12.92") { - presetGamma = 2.4; - presetSlope = 12.92310; - } else if (preset == "BT709_g2.2_s4.5") { - presetGamma = 2.22; - presetSlope = 4.5; - } else if (preset == "linear_g1.0") { - presetGamma = 1.; - presetSlope = 0.; - } else if (preset == "standard_g2.2") { - presetGamma = 2.2; - presetSlope = 0.; - } else if (preset == "standard_g1.8") { - presetGamma = 1.8; - presetSlope = 0.; - } else if (preset == "Lab_g3.0s9.03296") { - presetGamma = 3.0; - presetSlope = 9.03296; - } else if (preset == "Custom") { - presetGamma = gamma; - presetSlope = slope; - } else { - presetGamma = 2.4; - presetSlope = 12.92310; - } -} - -void ICCProfileCreator::onResetCopyright() -{ - eCopyright->set_text(Options::getICCProfileCopyright()); -} - -// Copyright (c) 2018 Jacques DESMIS -// WARNING: the caller must lock lcmsMutex -void ICCProfileCreator::savePressed() -{ - cmsHPROFILE newProfile = nullptr; - cmsHPROFILE profile_v2_except = nullptr; - - Glib::ustring sNewProfile; - Glib::ustring sPrimariesPreset; - Glib::ustring sGammaPreset; - - 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"); - - //necessary for V2 profile - - 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"; - } - } - - //begin adaptation rTRC gTRC bTRC - //"newProfile" profile has the same characteristics than RGB values, but TRC are adapted... for applying profile - if (rtengine::settings->verbose) { - printf("Output Gamma - profile Primaries as RT profile: \"%s\"\n", sNewProfile.c_str()); - } - - 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; - } - */ - //change desc Tag , to "free gamma", or "BT709", etc. - Glib::ustring fName; - Glib::ustring sPrimariesAndIlluminant; - double presetGamma = 2.4; - 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 - ga[1] = 0.998279; - ga[2] = 0.001721; - ga[3] = 0.298507; - ga[4] = 0.005746; - } 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 - ga[1] = 0.891161; - ga[2] = 0.108839; - ga[3] = 0.144928; - ga[4] = 0.076332; - } 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; - } 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[1] = 0.909995; - ga[2] = 0.090005; - ga[3] = 0.222222; - ga[4] = 0.081071; - } 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...) - ga[1] = 1.; - ga[2] = 0.; - ga[3] = 1. / eps; - ga[4] = 0.; - } else if (gammaPreset == "standard_g2.2") { - sGammaPreset = "g=2.2"; - ga[0] = 2.2; //gamma=2.2(as gamma of Adobe, Widegamut...) - ga[1] = 1.; - ga[2] = 0.; - ga[3] = 1. / eps; - ga[4] = 0.; - } else if (gammaPreset == "standard_g1.8") { - sGammaPreset = "g=1.8"; - ga[0] = 1.8; //gamma=1.8(as gamma of Prophoto) - ga[1] = 1.; - ga[2] = 0.; - ga[3] = 1. / eps; - ga[4] = 0.; - } else if (gammaPreset == "Lab_g3.0s9.03296") { - sGammaPreset = "LAB_g3.0_s9.03296"; - ga[0] = 3.0; //Lab gamma =3 slope=9.03296 - ga[1] = 0.8621; - ga[2] = 0.1379; - ga[3] = 0.1107; - ga[4] = 0.08; - } else if (gammaPreset == "Custom") { - rtengine::GammaValues g_a; //gamma parameters - double pwr = 1.0 / gamma; - double ts = slope; - double slope2 = slope == 0 ? eps : slope; - - int mode = 0; - rtengine::Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 - 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[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)); - presetGamma = gamma; - presetSlope = slope; - } - - ga[5] = 0.0; - ga[6] = 0.0; - - - sPrimariesAndIlluminant = sPrimariesPreset; - - if (profileVersion == "v4" && illuminant != "DEF") { - sPrimariesPreset += "-" + illuminant; - } - - Glib::ustring profileDesc; - Glib::ustring sGammaSlopeParam;//to save gamma and slope in a dmdd - Glib::ustring sGammaSlopeDesc; //to save gamma and slope in a desc - Glib::ustring sGamma; - 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); - 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); - 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); - - // -------------------------------------------- Asking the file name - - Gtk::FileChooserDialog dialog(getToplevelWindow(this), M("ICCPROFCREATOR_SAVEDIALOG_TITLE"), Gtk::FILE_CHOOSER_ACTION_SAVE); - bindCurrentFolder(dialog, options.lastICCProfCreatorDir); - dialog.set_current_name(fName); - //dialog.set_current_folder(lastPath); - - dialog.add_button(M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); - dialog.add_button(M("GENERAL_SAVE"), Gtk::RESPONSE_OK); - - Glib::RefPtr filter_icc = Gtk::FileFilter::create(); - filter_icc->set_name(M("FILECHOOSER_FILTER_COLPROF")); - filter_icc->add_pattern("*.icc"); - dialog.add_filter(filter_icc); - - /* - Glib::RefPtr filter_any = Gtk::FileFilter::create(); - filter_any->set_name(M("FILECHOOSER_FILTER_ANY")); - filter_any->add_pattern("*"); - dialog.add_filter(filter_any); - */ - - dialog.show_all_children(); - //dialog.set_do_overwrite_confirmation (true); - - Glib::ustring absoluteFName; - - do { - int result = dialog.run(); - - if (result != Gtk::RESPONSE_OK) { - return; - } else { - absoluteFName = dialog.get_filename(); - Glib::ustring ext = getExtension(absoluteFName); - - if (ext != "icc") { - absoluteFName += ".icc"; - } - - if (confirmOverwrite(dialog, absoluteFName)) { - //lastPath = Glib::path_get_dirname(absoluteFName); - break; - } - } - } while (1); - - // --------------- main tags ------------------ - /* - if (profileVersion == "v4") { - cmsSetProfileVersion(newProfile, 4.3); - } else { - cmsSetProfileVersion(newProfile, 2.0); - } - */ - -//change - float p[6]; //primaries - ga[6] = 0.0; - - ColorTemp temp; - getPrimaries(primariesPreset, p, temp); - - 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 - }; - - - 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") { - tempv4 = 5003.; - } else if (illuminant == "D55") { - tempv4 = 5500.; - } else if (illuminant == "D60") { - tempv4 = 6004.; - } else if (illuminant == "D65") { - tempv4 = 6504.; - } else if (illuminant == "D80") { - tempv4 = 8000.; - } 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 { - if (v2except) { - - cmsCIEXYZ XYZ; - - { - XYZ = {0.95045471, 1.0, 1.08905029};//white D65 - } - - if (primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0") { - XYZ = {0.952646075, 1.0, 1.008825184};//white D60 - } - - if (isD50) { - XYZ = {0.964295676, 1.0, 0.825104603};//white D50 room (prophoto) near LCMS values but not perfect...it's a compromise!! - } - - cmsCIExyY blackpoint; - - { - blackpoint = {0., 0., 0.};//White D65 point from the sRGB.icm and AdobeRGB1998 profile specs - } - - cmsWriteTag(profile_v2_except, cmsSigMediaBlackPointTag, &blackpoint); - cmsWriteTag(profile_v2_except, cmsSigMediaWhitePointTag, &XYZ); - cmsCIEXYZ rt; - cmsCIEXYZ bt; - cmsCIEXYZ gt; - - if (primariesPreset == "sRGB") { - //calculated with personnal special spreadsheat - { - //Matrix value from spec Adobe but adapted with wp - rt = {0.4360411843, 0.2224843154, 0.0139201582}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1430457992, 0.0606099658, 0.7139121724}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.3851136574, 0.7169049862, 0.0970677661}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - - } - - } - - if (primariesPreset == "Adobe") { - { - //Adobe spec adapted with wp calculated with personnal special spreadsheat - rt = {0.6097408852, 0.3111123176, 0.0194653393}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1491866649, 0.0632119133, 0.7445599707}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.2052730908, 0.6256750365, 0.0608747867}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "Rec2020") { - {//calculated with personnal special spreadsheat - rt = {0.6734800343, 0.2790423273, -0.0019336766}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1250489478, 0.0456126910, 0.7968509159}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1656716588, 0.6753442491, 0.0299828575}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "BruceRGB") { - {//calculated with personnal special spreadsheat - rt = {0.4941542253, 0.2521357351, 0.0157753562}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1495175342, 0.0633521060, 0.7462112712}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.3205288814, 0.6845114263, 0.0629134693}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "ACES-AP0") { - {//calculated with personnal special spreadsheat - rt = {0.9908835135, 0.3618940325, -0.0027137400}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {-0.0389246557, -0.084405166, 0.8193659780}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.0122417831, 0.7225104015, 0.0082478587}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "ACES-AP1") {//done - {//calculated with personnal special spreadsheat - rt = {0.6898756188, 0.2845109670, -0.0060455375}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1245615936, 0.0437959432, 0.8209388333}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1497634285, 0.6716923572, 0.0100068009}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "ProPhoto") { - {//calculated with personnal special spreadsheat - rt = {0.7977198204, 0.2880493171, -0.0000030551}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.0313194091, 0.0000771282, 0.8248890748}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1351614114, 0.7118728221, 0.0000140770}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "Widegamut") { - {//calculated with personnal special spreadsheat - rt = {0.7161680478, 0.2582038074, -0.0000027515}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1471328469, 0.0168600579, 0.7731227232}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1008997462, 0.7249354021, 0.0517801251}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "BestRGB") { - {//calculated with personnal special spreadsheat - rt = {0.6327383009, 0.2284760022, -0.0000024233}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1269437333, 0.0341753604, 0.8153773703}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.2045186067, 0.7373479048, 0.0095251497}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "BetaRGB") { - {//calculated with personnal special spreadsheat - rt = {0.6713200674, 0.3033034560, -0.0000012307}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1183343909, 0.0329265310, 0.7842009909}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1745461827, 0.6637692805, 0.0407003365}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - } else { - cmsWhitePointFromTemp(&xyD, (double)temp); - } - } - - - 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}; - } - -// {0.3457, 0.3585, 1.0}; - // Calculate output profile's rTRC gTRC bTRC - - - cmsToneCurve* GammaTRC[3]; - - if (gammaPreset != "standard_g2.2" || gammaPreset != "standard_g1.8" || gammaPreset != "linear_g1.0") { - 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 - } - - if (gammaPreset == "standard_g1.8") { - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.80078125); - } - - if (gammaPreset == "linear_g1.0") { - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.0); - } - - - - if (profileVersion == "v4") { - newProfile = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); - } - - if (profileVersion == "v2") { - if (v2except) { - cmsSetProfileVersion(profile_v2_except, 2.2); - } else { - cmsSetProfileVersion(newProfile, 2.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"); - - if (!v2except) { - cmsWriteTag(newProfile, cmsSigDeviceMfgDescTag, dmnd); - } else { - cmsWriteTag(profile_v2_except, cmsSigDeviceMfgDescTag, dmnd); - } - - cmsMLUfree(dmnd); - - - -// --------------- set dmdd tag ------------------ - - if (profileVersion == "v2") { - //write in tag 'dmdd' values of current gamma and slope to retrieve after in Output profile - std::wostringstream wGammaSlopeParam; - 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 (!v2except) { - if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, dmdd)) { - printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); - } - } else { - if (!cmsWriteTag(profile_v2_except, cmsSigProfileDescriptionTag, dmdd)) { - printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); - } - - } - } - } else if (cmsMLUsetWide(dmdd, "en", "US", wGammaSlopeParam.str().c_str())) { - 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 ------------------ - - Glib::ustring sDescription; - - if (!description.empty()) { - if (cAppendParamsToDesc->get_active()) { - sDescription = description + " / " + sGammaSlopeDesc; - } else { - sDescription = description; - } - } else { - if (cAppendParamsToDesc->get_active()) { - sDescription = profileDesc + " / " + sGammaSlopeDesc; - } else { - sDescription = profileDesc; - } - } - -//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 - 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 (!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 ------------------ - - std::wostringstream wCopyright; - wCopyright << copyright; - - cmsMLU *copyMLU = cmsMLUalloc(nullptr, 1); - - if (cmsMLUsetWide(copyMLU, "en", "US", wCopyright.str().c_str())) { - 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); - - - /* //to read XYZ values - cmsCIEXYZ *redT = static_cast(cmsReadTag(newProfile, cmsSigRedMatrixColumnTag)); - cmsCIEXYZ *greenT = static_cast(cmsReadTag(newProfile, cmsSigGreenMatrixColumnTag)); - 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()); - - } - - cmsFreeToneCurve(GammaTRC[0]); -} +/* + * 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 . + */ +#include +#include "iccprofilecreator.h" +#include "multilangmgr.h" +#include "cachemanager.h" +#include "addsetids.h" +#include "../rtengine/icons.h" +#include "../rtengine/color.h" +#include "rtimage.h" +#ifdef _OPENMP +#include +#endif + +extern Options options; + +namespace rtengine +{ + +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) + , primariesPreset(options.ICCPC_primariesPreset) + , redPrimaryX(options.ICCPC_redPrimaryX) + , redPrimaryY(options.ICCPC_redPrimaryY) + , greenPrimaryX(options.ICCPC_greenPrimaryX) + , greenPrimaryY(options.ICCPC_greenPrimaryY) + , bluePrimaryX(options.ICCPC_bluePrimaryX) + , bluePrimaryY(options.ICCPC_bluePrimaryY) + , gammaPreset(options.ICCPC_gammaPreset) + , gamma(options.ICCPC_gamma) + , slope(options.ICCPC_slope) + , appendParamsToDesc(options.ICCPC_appendParamsToDesc) + , profileVersion(options.ICCPC_profileVersion) + , illuminant(options.ICCPC_illuminant) + , description(options.ICCPC_description) + , copyright(options.ICCPC_copyright) + , parent(rtwindow) +{ + + set_default_size(600, -1); + + Gtk::Grid* mainGrid = Gtk::manage(new Gtk::Grid()); + mainGrid->set_column_spacing(3); + mainGrid->set_row_spacing(3); + + //--------------------------------- primaries + + Gtk::Label* prilab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_PRIMARIES"))); + setExpandAlignProperties(prilab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*prilab, 0, 0, 1, 1); + + primaries = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(primaries, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + primaries->append(M("ICCPROFCREATOR_CUSTOM")); + primaries->append(M("ICCPROFCREATOR_PRIM_ACESP0")); + primaries->append(M("ICCPROFCREATOR_PRIM_ACESP1")); + primaries->append(M("ICCPROFCREATOR_PRIM_ADOBE")); + primaries->append(M("ICCPROFCREATOR_PRIM_PROPH")); + primaries->append(M("ICCPROFCREATOR_PRIM_REC2020")); + primaries->append(M("ICCPROFCREATOR_PRIM_SRGB")); + primaries->append(M("ICCPROFCREATOR_PRIM_WIDEG")); + primaries->append(M("ICCPROFCREATOR_PRIM_BEST")); + primaries->append(M("ICCPROFCREATOR_PRIM_BETA")); + primaries->append(M("ICCPROFCREATOR_PRIM_BRUCE")); + primaries->set_tooltip_text(M("ICCPROFCREATOR_PRIM_TOOLTIP")); + mainGrid->attach(*primaries, 1, 0, 1, 1); + + primariesGrid = Gtk::manage(new Gtk::Grid()); + setExpandAlignProperties(primariesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + primariesGrid->set_column_spacing(5); + + /* + Gtk::Image* gamuts0 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl0 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts1 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl1 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts2 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl2 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts3 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl3 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts4 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl4 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts5 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl5 = Gtk::manage(new RTImage("rt-logo-small.png")); + */ + + aPrimariesRedX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDX"), 0.6300, 0.7350, 0.0001, 0.6400/*, gamuts0, gamutl0*/)); + setExpandAlignProperties(aPrimariesRedX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesRedY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDY"), 0.2650, 0.3350, 0.0001, 0.3300/*, gamutl1, gamuts1*/)); + setExpandAlignProperties(aPrimariesRedY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesGreenX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREX"), 0.0000, 0.3100, 0.0001, 0.3000/*, gamutl2, gamuts2*/)); + setExpandAlignProperties(aPrimariesGreenX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesGreenY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREY"), 0.5900, 1.0000, 0.0001, 0.6000/*, gamuts3, gamutl3*/)); + setExpandAlignProperties(aPrimariesGreenY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesBlueX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUX"), 0.0001, 0.1600, 0.0001, 0.1500/*, gamutl4, gamuts4*/)); + setExpandAlignProperties(aPrimariesBlueX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesBlueY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUY"), -0.0800, 0.0700, 0.0001, 0.060/*, gamutl5, gamuts5*/)); + setExpandAlignProperties(aPrimariesBlueY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + primariesGrid->attach(*aPrimariesRedX, 0, 0, 1, 1); + primariesGrid->attach(*aPrimariesRedY, 1, 0, 1, 1); + + primariesGrid->attach(*aPrimariesGreenX, 0, 1, 1, 1); + primariesGrid->attach(*aPrimariesGreenY, 1, 1, 1, 1); + + primariesGrid->attach(*aPrimariesBlueX, 0, 2, 1, 1); + primariesGrid->attach(*aPrimariesBlueY, 1, 2, 1, 1); + + mainGrid->attach(*primariesGrid, 1, 1, 1, 1); + + //--------------------------------- output gamma + + Gtk::Label* galab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_TRC_PRESET"))); + setExpandAlignProperties(galab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*galab, 0, 2, 1, 1); + + trcPresets = Gtk::manage(new MyComboBoxText()); + 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)); + 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 + + aSlope = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_SLOPE"), 0, 15, 0.00001, 12.92310)); + setExpandAlignProperties(aSlope, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + + if (aSlope->delay < options.adjusterMaxDelay) { + aSlope->delay = options.adjusterMaxDelay; + } + + aSlope->show(); + mainGrid->attach(*aSlope, 1, 4, 1, 1); //slope + + //--------------------------------- temperature + + Gtk::Label* illlab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ILL"))); + setExpandAlignProperties(illlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*illlab, 0, 5, 1, 1); //slope + cIlluminant = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(cIlluminant, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + cIlluminant->append(M("ICCPROFCREATOR_ILL_DEF")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_41")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_50")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_55")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_60")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_65")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_80")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_INC")); + cIlluminant->set_tooltip_text(M("ICCPROFCREATOR_ILL_TOOLTIP")); + mainGrid->attach(*cIlluminant, 1, 5, 1, 1); + + //--------------------------------- V2 or V4 profiles + + Gtk::Label* proflab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ICCVERSION"))); + setExpandAlignProperties(proflab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*proflab, 0, 6, 1, 1); + iccVersion = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(iccVersion, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + iccVersion->append(M("ICCPROFCREATOR_PROF_V4")); + iccVersion->append(M("ICCPROFCREATOR_PROF_V2")); + mainGrid->attach(*iccVersion, 1, 6, 1, 1); + + //--------------------------------- Description + + Gtk::Label* desclab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_DESCRIPTION"))); + setExpandAlignProperties(desclab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_START); + mainGrid->attach(*desclab, 0, 7, 1, 2); + eDescription = Gtk::manage(new Gtk::Entry()); + setExpandAlignProperties(eDescription, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + eDescription->set_tooltip_text(M("ICCPROFCREATOR_DESCRIPTION_TOOLTIP")); + mainGrid->attach(*eDescription, 1, 7, 1, 1); + cAppendParamsToDesc = Gtk::manage(new Gtk::CheckButton(M("ICCPROFCREATOR_DESCRIPTION_ADDPARAM"))); + setExpandAlignProperties(cAppendParamsToDesc, true, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*cAppendParamsToDesc, 1, 8, 1, 1); + + //--------------------------------- Copyright + + Gtk::Label* copylab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_COPYRIGHT"))); + setExpandAlignProperties(copylab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*copylab, 0, 9, 1, 1); + Gtk::Grid* copygrid = Gtk::manage(new Gtk::Grid()); + setExpandAlignProperties(copygrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); + eCopyright = Gtk::manage(new Gtk::Entry()); + 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"))); + 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->get_style_context()->add_class(GTK_STYLE_CLASS_FLAT); + resetCopyright->set_can_focus(false); + copygrid->attach(*resetCopyright, 1, 0, 1, 1); + mainGrid->attach(*copygrid, 1, 9, 1, 1); + + //--------------------------------- Adding the mainGrid + + get_content_area()->add(*mainGrid); + + //--------------------------------- Setting default values for Adjusters + + aGamma->setDefault(gamma); + aSlope->setDefault(slope); + aPrimariesRedX->setDefault(redPrimaryX); + aPrimariesRedY->setDefault(redPrimaryY); + aPrimariesGreenX->setDefault(greenPrimaryX); + aPrimariesGreenY->setDefault(greenPrimaryY); + aPrimariesBlueX->setDefault(bluePrimaryX); + aPrimariesBlueY->setDefault(bluePrimaryY); + + //--------------- Updating widgets with actual values (from options) + + if (primariesPreset == "custom") { + primaries->set_active_text(M("ICCPROFCREATOR_CUSTOM")); + } else if (primariesPreset == "ACES-AP0") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP0")); + } else if (primariesPreset == "ACES-AP1") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP1")); + } else if (primariesPreset == "Adobe") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ADOBE")); + } else if (primariesPreset == "ProPhoto") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_PROPH")); + } else if (primariesPreset == "Rec2020") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_REC2020")); + } else if (primariesPreset == "sRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_SRGB")); + } else if (primariesPreset == "Widegamut") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_WIDEG")); + } else if (primariesPreset == "BestRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BEST")); + } else if (primariesPreset == "BetaRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BETA")); + } else if (primariesPreset == "BruceRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BRUCE")); + } + + trcPresets->set_active(0); + + if (gammaPreset != "Custom") { + trcPresets->set_active_text(gammaPreset); + } + + aGamma->setValue(gamma); + aSlope->setValue(slope); + aPrimariesRedX->setValue(redPrimaryX); + aPrimariesRedY->setValue(redPrimaryY); + aPrimariesGreenX->setValue(greenPrimaryX); + aPrimariesGreenY->setValue(greenPrimaryY); + aPrimariesBlueX->setValue(bluePrimaryX); + aPrimariesBlueY->setValue(bluePrimaryY); + + eDescription->set_text(description); + eCopyright->set_text(copyright); + cAppendParamsToDesc->set_active(appendParamsToDesc); + + if (illuminant == "DEF") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_DEF")); + } else if (illuminant == "D41") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_41")); + } else if (illuminant == "D50") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_50")); + } else if (illuminant == "D55") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_55")); + } else if (illuminant == "D60") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_60")); + } else if (illuminant == "D65") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_65")); + } else if (illuminant == "D80") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_80")); + } else if (illuminant == "stdA") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_INC")); + } + + iccVersion->set_active(0); + + if (profileVersion == "v2") { + iccVersion->set_active(1); + } + + trcPresetsChanged(); + illuminantChanged(); + primariesChanged(); + + //--------------- 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* 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(); + + //--------------- Connecting the signals + + aPrimariesRedX->setAdjusterListener(this); + aPrimariesRedY->setAdjusterListener(this); + aPrimariesGreenX->setAdjusterListener(this); + aPrimariesGreenY->setAdjusterListener(this); + aPrimariesBlueX->setAdjusterListener(this); + aPrimariesBlueY->setAdjusterListener(this); + aGamma->setAdjusterListener(this); + aSlope->setAdjusterListener(this); + primariesconn = primaries->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::primariesChanged)); + trcpresetsconn = trcPresets->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::trcPresetsChanged)); + illconn = cIlluminant->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::illuminantChanged)); + resetCopyright->signal_clicked().connect(sigc::mem_fun(*this, &ICCProfileCreator::onResetCopyright)); +} + +void ICCProfileCreator::closePressed() +{ + storeValues(); + hide(); +} + +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); + } +} + +void ICCProfileCreator::adjusterChanged(Adjuster* a, double newval) +{ + if (a == aPrimariesRedX || a == aPrimariesRedY || + a == aPrimariesGreenX || a == aPrimariesGreenY || + a == aPrimariesBlueX || a == aPrimariesBlueY) { + if (primaries->get_active_row_number() > 0) { + ConnectionBlocker blocker(primariesconn); + primaries->set_active(0); + updateICCVersion(); + } + } else if (a == aGamma || a == aSlope) { + if (trcPresets->get_active_row_number() > 0) { + ConnectionBlocker blocker(trcpresetsconn); + trcPresets->set_active(0); + } + } +} + +void ICCProfileCreator::adjusterAutoToggled(Adjuster* a, bool newval) +{ +} + +void ICCProfileCreator::primariesChanged() +{ + if (primaries->get_active_row_number() > 0) { + float p[6]; + ColorTemp temp; + Glib::ustring activeValue = primaries->get_active_text(); + Glib::ustring primPresetName = getPrimariesPresetName(activeValue); + getPrimaries(primPresetName, p, temp); + aPrimariesRedX->setValue(p[0]); + aPrimariesRedY->setValue(p[1]); + aPrimariesGreenX->setValue(p[2]); + aPrimariesGreenY->setValue(p[3]); + aPrimariesBlueX->setValue(p[4]); + aPrimariesBlueY->setValue(p[5]); + } + + updateICCVersion(); +} + +void ICCProfileCreator::illuminantChanged() +{ + updateICCVersion(); +} + +void ICCProfileCreator::trcPresetsChanged() +{ + aGamma->block(true); + aSlope->block(true); + + double gamma; + double slope; + getGamma(getGammaPresetName(trcPresets->get_active_text()), gamma, slope); + aGamma->setValue(gamma); + aSlope->setValue(slope); + + aGamma->block(false); + aSlope->block(false); +} + +void ICCProfileCreator::storeValues() +{ + if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V4")) { + options.ICCPC_profileVersion = profileVersion = "v4"; + } else if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V2")) { + options.ICCPC_profileVersion = profileVersion = "v2"; + } + + if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_DEF")) { + options.ICCPC_illuminant = illuminant = "DEF"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_41")) { + options.ICCPC_illuminant = illuminant = "D41"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_50")) { + options.ICCPC_illuminant = illuminant = "D50"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_55")) { + options.ICCPC_illuminant = illuminant = "D55"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_60")) { + options.ICCPC_illuminant = illuminant = "D60"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_65")) { + options.ICCPC_illuminant = illuminant = "D65"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_80")) { + options.ICCPC_illuminant = illuminant = "D80"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_INC")) { + options.ICCPC_illuminant = illuminant = "stdA"; + } + + options.ICCPC_primariesPreset = primariesPreset = getPrimariesPresetName(primaries->get_active_text()); + options.ICCPC_gammaPreset = gammaPreset = getGammaPresetName(trcPresets->get_active_text()); + options.ICCPC_gamma = gamma = aGamma->getValue(); + options.ICCPC_slope = slope = aSlope->getValue(); + options.ICCPC_redPrimaryX = redPrimaryX = aPrimariesRedX->getValue(); + options.ICCPC_redPrimaryY = redPrimaryY = aPrimariesRedY->getValue(); + options.ICCPC_greenPrimaryX = greenPrimaryX = aPrimariesGreenX->getValue(); + options.ICCPC_greenPrimaryY = greenPrimaryY = aPrimariesGreenY->getValue(); + options.ICCPC_bluePrimaryX = bluePrimaryX = aPrimariesBlueX->getValue(); + options.ICCPC_bluePrimaryY = bluePrimaryY = aPrimariesBlueY->getValue(); + options.ICCPC_description = description = eDescription->get_text(); + options.ICCPC_copyright = copyright = eCopyright->get_text(); + options.ICCPC_appendParamsToDesc = appendParamsToDesc = cAppendParamsToDesc->get_active(); +} + +Glib::ustring ICCProfileCreator::getPrimariesPresetName(const Glib::ustring &preset) +{ + if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP0")) { + return Glib::ustring("ACES-AP0"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP1")) { + return Glib::ustring("ACES-AP1"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ADOBE")) { + return Glib::ustring("Adobe"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_PROPH")) { + return Glib::ustring("ProPhoto"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_REC2020")) { + return Glib::ustring("Rec2020"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_SRGB")) { + return Glib::ustring("sRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_WIDEG")) { + return Glib::ustring("Widegamut"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BEST")) { + return Glib::ustring("BestRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BETA")) { + return Glib::ustring("BetaRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BRUCE")) { + return Glib::ustring("BruceRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_CUSTOM")) { + return Glib::ustring("custom"); + } else { + return Glib::ustring(); + } +} + +void ICCProfileCreator::getPrimaries(const Glib::ustring &preset, float *p, ColorTemp &temp) +{ + temp = ColorTemp::D50; + + if (preset == "Widegamut") { + p[0] = 0.7350; //Widegamut primaries + p[1] = 0.2650; + p[2] = 0.1150; + p[3] = 0.8260; + p[4] = 0.1570; + p[5] = 0.0180; + + } else if (preset == "Adobe") { + p[0] = 0.6400; //Adobe primaries + p[1] = 0.3300; + p[2] = 0.2100; + p[3] = 0.7100; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (preset == "sRGB") { + p[0] = 0.6400; // sRGB primaries + p[1] = 0.3300; + p[2] = 0.3000; + p[3] = 0.6000; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (preset == "BruceRGB") { + p[0] = 0.6400; // Bruce primaries + p[1] = 0.3300; + p[2] = 0.2800; + p[3] = 0.6500; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (preset == "BetaRGB") { + p[0] = 0.6888; // Beta primaries + p[1] = 0.3112; + p[2] = 0.1986; + p[3] = 0.7551; + p[4] = 0.1265; + p[5] = 0.0352; + } else if (preset == "BestRGB") { + p[0] = 0.7347; // Best primaries + p[1] = 0.2653; + p[2] = 0.2150; + p[3] = 0.7750; + p[4] = 0.1300; + p[5] = 0.0350; + } else if (preset == "Rec2020") { + p[0] = 0.7080; // Rec2020 primaries + p[1] = 0.2920; + p[2] = 0.1700; + p[3] = 0.7970; + p[4] = 0.1310; + p[5] = 0.0460; + temp = ColorTemp::D65; + } else if (preset == "ACES-AP0") { + p[0] = 0.7347; // ACES P0 primaries + p[1] = 0.2653; + p[2] = 0.0000; + p[3] = 1.0; + p[4] = 0.0001; + p[5] = -0.0770; + temp = ColorTemp::D60; + } else if (preset == "ACES-AP1") { + p[0] = 0.713; // ACES P1 primaries + p[1] = 0.293; + p[2] = 0.165; + p[3] = 0.830; + p[4] = 0.128; + p[5] = 0.044; + temp = ColorTemp::D60; + } else if (preset == "ProPhoto") { + p[0] = 0.7347; // ProPhoto and default primaries + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } else if (preset == "custom") { + p[0] = redPrimaryX; + p[1] = redPrimaryY; + p[2] = greenPrimaryX; + p[3] = greenPrimaryY; + p[4] = bluePrimaryX; + p[5] = bluePrimaryY; + + } else { + p[0] = 0.7347; //default primaries + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } +} + +Glib::ustring ICCProfileCreator::getGammaPresetName(const Glib::ustring &preset) +{ + Glib::ustring name(trcPresets->get_active_text()); + + if (name == M("ICCPROFCREATOR_CUSTOM")) { + name = "Custom"; + } + + return name; +} + +void ICCProfileCreator::getGamma(const Glib::ustring &preset, double &presetGamma, double &presetSlope) +{ + if (preset == "High_g1.3_s3.35") { + presetGamma = 1.3; + presetSlope = 3.35; + } else if (preset == "Low_g2.6_s6.9") { + presetGamma = 2.6; + presetSlope = 6.9; + } else if (preset == "sRGB_g2.4_s12.92") { + presetGamma = 2.4; + presetSlope = 12.92310; + } else if (preset == "BT709_g2.2_s4.5") { + presetGamma = 2.22; + presetSlope = 4.5; + } else if (preset == "linear_g1.0") { + presetGamma = 1.; + presetSlope = 0.; + } else if (preset == "standard_g2.2") { + presetGamma = 2.2; + presetSlope = 0.; + } else if (preset == "standard_g1.8") { + presetGamma = 1.8; + presetSlope = 0.; + } else if (preset == "Lab_g3.0s9.03296") { + presetGamma = 3.0; + presetSlope = 9.03296; + } else if (preset == "Custom") { + presetGamma = gamma; + presetSlope = slope; + } else { + presetGamma = 2.4; + presetSlope = 12.92310; + } +} + +void ICCProfileCreator::onResetCopyright() +{ + eCopyright->set_text(Options::getICCProfileCopyright()); +} + +// Copyright (c) 2018 Jacques DESMIS +// WARNING: the caller must lock lcmsMutex +void ICCProfileCreator::savePressed() +{ + cmsHPROFILE newProfile = nullptr; + cmsHPROFILE profile_v2_except = nullptr; + + Glib::ustring sNewProfile; + Glib::ustring sPrimariesPreset; + Glib::ustring sGammaPreset; + + 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"); + + //necessary for V2 profile + + 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"; + } + } + + //begin adaptation rTRC gTRC bTRC + //"newProfile" profile has the same characteristics than RGB values, but TRC are adapted... for applying profile + if (rtengine::settings->verbose) { + printf("Output Gamma - profile Primaries as RT profile: \"%s\"\n", sNewProfile.c_str()); + } + + 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; + } + */ + //change desc Tag , to "free gamma", or "BT709", etc. + Glib::ustring fName; + Glib::ustring sPrimariesAndIlluminant; + double presetGamma = 2.4; + 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 + ga[1] = 0.998279; + ga[2] = 0.001721; + ga[3] = 0.298507; + ga[4] = 0.005746; + } 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 + ga[1] = 0.891161; + ga[2] = 0.108839; + ga[3] = 0.144928; + ga[4] = 0.076332; + } 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; + } 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[1] = 0.909995; + ga[2] = 0.090005; + ga[3] = 0.222222; + ga[4] = 0.081071; + } 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...) + ga[1] = 1.; + ga[2] = 0.; + ga[3] = 1. / eps; + ga[4] = 0.; + } else if (gammaPreset == "standard_g2.2") { + sGammaPreset = "g=2.2"; + ga[0] = 2.2; //gamma=2.2(as gamma of Adobe, Widegamut...) + ga[1] = 1.; + ga[2] = 0.; + ga[3] = 1. / eps; + ga[4] = 0.; + } else if (gammaPreset == "standard_g1.8") { + sGammaPreset = "g=1.8"; + ga[0] = 1.8; //gamma=1.8(as gamma of Prophoto) + ga[1] = 1.; + ga[2] = 0.; + ga[3] = 1. / eps; + ga[4] = 0.; + } else if (gammaPreset == "Lab_g3.0s9.03296") { + sGammaPreset = "LAB_g3.0_s9.03296"; + ga[0] = 3.0; //Lab gamma =3 slope=9.03296 + ga[1] = 0.8621; + ga[2] = 0.1379; + ga[3] = 0.1107; + ga[4] = 0.08; + } else if (gammaPreset == "Custom") { + rtengine::GammaValues g_a; //gamma parameters + double pwr = 1.0 / gamma; + double ts = slope; + double slope2 = slope == 0 ? eps : slope; + + int mode = 0; + rtengine::Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 + 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[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)); + presetGamma = gamma; + presetSlope = slope; + } + + ga[5] = 0.0; + ga[6] = 0.0; + + + sPrimariesAndIlluminant = sPrimariesPreset; + + if (profileVersion == "v4" && illuminant != "DEF") { + sPrimariesPreset += "-" + illuminant; + } + + Glib::ustring profileDesc; + Glib::ustring sGammaSlopeParam;//to save gamma and slope in a dmdd + Glib::ustring sGammaSlopeDesc; //to save gamma and slope in a desc + Glib::ustring sGamma; + 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); + 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); + 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); + + // -------------------------------------------- Asking the file name + + Gtk::FileChooserDialog dialog(getToplevelWindow(this), M("ICCPROFCREATOR_SAVEDIALOG_TITLE"), Gtk::FILE_CHOOSER_ACTION_SAVE); + bindCurrentFolder(dialog, options.lastICCProfCreatorDir); + dialog.set_current_name(fName); + //dialog.set_current_folder(lastPath); + + dialog.add_button(M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); + dialog.add_button(M("GENERAL_SAVE"), Gtk::RESPONSE_OK); + + Glib::RefPtr filter_icc = Gtk::FileFilter::create(); + filter_icc->set_name(M("FILECHOOSER_FILTER_COLPROF")); + filter_icc->add_pattern("*.icc"); + dialog.add_filter(filter_icc); + + /* + Glib::RefPtr filter_any = Gtk::FileFilter::create(); + filter_any->set_name(M("FILECHOOSER_FILTER_ANY")); + filter_any->add_pattern("*"); + dialog.add_filter(filter_any); + */ + + dialog.show_all_children(); + //dialog.set_do_overwrite_confirmation (true); + + Glib::ustring absoluteFName; + + do { + int result = dialog.run(); + + if (result != Gtk::RESPONSE_OK) { + return; + } else { + absoluteFName = dialog.get_filename(); + Glib::ustring ext = getExtension(absoluteFName); + + if (ext != "icc") { + absoluteFName += ".icc"; + } + + if (confirmOverwrite(dialog, absoluteFName)) { + //lastPath = Glib::path_get_dirname(absoluteFName); + break; + } + } + } while (1); + + // --------------- main tags ------------------ + /* + if (profileVersion == "v4") { + cmsSetProfileVersion(newProfile, 4.3); + } else { + cmsSetProfileVersion(newProfile, 2.0); + } + */ + +//change + float p[6]; //primaries + ga[6] = 0.0; + + ColorTemp temp; + getPrimaries(primariesPreset, p, temp); + + 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 + }; + + + 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") { + tempv4 = 5003.; + } else if (illuminant == "D55") { + tempv4 = 5500.; + } else if (illuminant == "D60") { + tempv4 = 6004.; + } else if (illuminant == "D65") { + tempv4 = 6504.; + } else if (illuminant == "D80") { + tempv4 = 8000.; + } 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 { + if (v2except) { + + cmsCIEXYZ XYZ; + + { + XYZ = {0.95045471, 1.0, 1.08905029};//white D65 + } + + if (primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0") { + XYZ = {0.952646075, 1.0, 1.008825184};//white D60 + } + + if (isD50) { + XYZ = {0.964295676, 1.0, 0.825104603};//white D50 room (prophoto) near LCMS values but not perfect...it's a compromise!! + } + + cmsCIExyY blackpoint; + + { + blackpoint = {0., 0., 0.};//White D65 point from the sRGB.icm and AdobeRGB1998 profile specs + } + + cmsWriteTag(profile_v2_except, cmsSigMediaBlackPointTag, &blackpoint); + cmsWriteTag(profile_v2_except, cmsSigMediaWhitePointTag, &XYZ); + cmsCIEXYZ rt; + cmsCIEXYZ bt; + cmsCIEXYZ gt; + + if (primariesPreset == "sRGB") { + //calculated with personnal special spreadsheat + { + //Matrix value from spec Adobe but adapted with wp + rt = {0.4360411843, 0.2224843154, 0.0139201582}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1430457992, 0.0606099658, 0.7139121724}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.3851136574, 0.7169049862, 0.0970677661}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + + } + + } + + if (primariesPreset == "Adobe") { + { + //Adobe spec adapted with wp calculated with personnal special spreadsheat + rt = {0.6097408852, 0.3111123176, 0.0194653393}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1491866649, 0.0632119133, 0.7445599707}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.2052730908, 0.6256750365, 0.0608747867}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "Rec2020") { + {//calculated with personnal special spreadsheat + rt = {0.6734800343, 0.2790423273, -0.0019336766}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1250489478, 0.0456126910, 0.7968509159}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1656716588, 0.6753442491, 0.0299828575}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "BruceRGB") { + {//calculated with personnal special spreadsheat + rt = {0.4941542253, 0.2521357351, 0.0157753562}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1495175342, 0.0633521060, 0.7462112712}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.3205288814, 0.6845114263, 0.0629134693}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "ACES-AP0") { + {//calculated with personnal special spreadsheat + rt = {0.9908835135, 0.3618940325, -0.0027137400}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {-0.0389246557, -0.084405166, 0.8193659780}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.0122417831, 0.7225104015, 0.0082478587}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "ACES-AP1") {//done + {//calculated with personnal special spreadsheat + rt = {0.6898756188, 0.2845109670, -0.0060455375}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1245615936, 0.0437959432, 0.8209388333}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1497634285, 0.6716923572, 0.0100068009}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "ProPhoto") { + {//calculated with personnal special spreadsheat + rt = {0.7977198204, 0.2880493171, -0.0000030551}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.0313194091, 0.0000771282, 0.8248890748}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1351614114, 0.7118728221, 0.0000140770}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "Widegamut") { + {//calculated with personnal special spreadsheat + rt = {0.7161680478, 0.2582038074, -0.0000027515}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1471328469, 0.0168600579, 0.7731227232}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1008997462, 0.7249354021, 0.0517801251}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "BestRGB") { + {//calculated with personnal special spreadsheat + rt = {0.6327383009, 0.2284760022, -0.0000024233}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1269437333, 0.0341753604, 0.8153773703}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.2045186067, 0.7373479048, 0.0095251497}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + if (primariesPreset == "BetaRGB") { + {//calculated with personnal special spreadsheat + rt = {0.6713200674, 0.3033034560, -0.0000012307}; + cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); + bt = {0.1183343909, 0.0329265310, 0.7842009909}; + cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); + gt = {0.1745461827, 0.6637692805, 0.0407003365}; + cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + } + } + + } else { + cmsWhitePointFromTemp(&xyD, (double)temp); + } + } + + + 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}; + } + +// {0.3457, 0.3585, 1.0}; + // Calculate output profile's rTRC gTRC bTRC + + + cmsToneCurve* GammaTRC[3]; + + if (gammaPreset != "standard_g2.2" || gammaPreset != "standard_g1.8" || gammaPreset != "linear_g1.0") { + 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 + } + + if (gammaPreset == "standard_g1.8") { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.80078125); + } + + if (gammaPreset == "linear_g1.0") { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.0); + } + + + + if (profileVersion == "v4") { + newProfile = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); + } + + if (profileVersion == "v2") { + if (v2except) { + cmsSetProfileVersion(profile_v2_except, 2.2); + } else { + cmsSetProfileVersion(newProfile, 2.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"); + + if (!v2except) { + cmsWriteTag(newProfile, cmsSigDeviceMfgDescTag, dmnd); + } else { + cmsWriteTag(profile_v2_except, cmsSigDeviceMfgDescTag, dmnd); + } + + cmsMLUfree(dmnd); + + + +// --------------- set dmdd tag ------------------ + + if (profileVersion == "v2") { + //write in tag 'dmdd' values of current gamma and slope to retrieve after in Output profile + std::wostringstream wGammaSlopeParam; + 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 (!v2except) { + if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, dmdd)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + } else { + if (!cmsWriteTag(profile_v2_except, cmsSigProfileDescriptionTag, dmdd)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + + } + } + } else if (cmsMLUsetWide(dmdd, "en", "US", wGammaSlopeParam.str().c_str())) { + 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 ------------------ + + Glib::ustring sDescription; + + if (!description.empty()) { + if (cAppendParamsToDesc->get_active()) { + sDescription = description + " / " + sGammaSlopeDesc; + } else { + sDescription = description; + } + } else { + if (cAppendParamsToDesc->get_active()) { + sDescription = profileDesc + " / " + sGammaSlopeDesc; + } else { + sDescription = profileDesc; + } + } + +//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 + 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 (!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 ------------------ + + std::wostringstream wCopyright; + wCopyright << copyright; + + cmsMLU *copyMLU = cmsMLUalloc(nullptr, 1); + + if (cmsMLUsetWide(copyMLU, "en", "US", wCopyright.str().c_str())) { + 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); + + + /* //to read XYZ values + cmsCIEXYZ *redT = static_cast(cmsReadTag(newProfile, cmsSigRedMatrixColumnTag)); + cmsCIEXYZ *greenT = static_cast(cmsReadTag(newProfile, cmsSigGreenMatrixColumnTag)); + 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()); + + } + + cmsFreeToneCurve(GammaTRC[0]); +} diff --git a/rtgui/iccprofilecreator.h b/rtgui/iccprofilecreator.h index e8de318d3..605cb9dcd 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; - 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); - 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); + 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); +}; From 50936b24476c66c9cb57fd2f620d12417ffe63be Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 17 Nov 2018 01:30:59 +0100 Subject: [PATCH 036/116] Fix two coverity issues --- rtengine/rtthumbnail.cc | 2 +- rtexif/kodakattribs.cc | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index aafdea029..2d911087c 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -2191,7 +2191,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); } } 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); From 7896ffa08f19128d31e02419cea58a79dfcf0f28 Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Sat, 17 Nov 2018 14:40:04 +0100 Subject: [PATCH 037/116] Add custom primaries and illuminant choice to ICCv2 - solve some bugs --- rtgui/iccprofilecreator.cc | 346 ++++++++++++++++++++++++------------- rtgui/iccprofilecreator.h | 2 +- 2 files changed, 227 insertions(+), 121 deletions(-) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 7ec89e190..03d46471d 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -362,12 +362,14 @@ 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) @@ -395,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); @@ -501,7 +503,7 @@ 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; @@ -671,7 +673,8 @@ void ICCProfileCreator::savePressed() 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) && illuminant == "DEF"); + v2except = (profileVersion == "v2");// && (isD65 || isD60 || isD50)); //necessary for V2 profile @@ -771,6 +774,8 @@ void ICCProfileCreator::savePressed() sPrimariesPreset = "Best"; } else if (primariesPreset == "BetaRGB") { sPrimariesPreset = "Beta"; + } else if (primariesPreset == "custom") { + sPrimariesPreset = "Custom"; } } @@ -812,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 @@ -819,6 +827,9 @@ 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 @@ -826,6 +837,9 @@ void ICCProfileCreator::savePressed() ga[2] = 0.052142; ga[3] = 0.077399; ga[4] = 0.039293; + 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 @@ -833,6 +847,9 @@ void ICCProfileCreator::savePressed() ga[2] = 0.090005; ga[3] = 0.222222; ga[4] = 0.081071; + presetGamma = 2.2; + 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...) @@ -840,6 +857,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...) @@ -847,6 +867,9 @@ void ICCProfileCreator::savePressed() ga[2] = 0.; ga[3] = 1. / eps; ga[4] = 0.; + presetGamma = 2.2; + presetSlope = 0.0; + } else if (gammaPreset == "standard_g1.8") { sGammaPreset = "g=1.8"; ga[0] = 1.8; //gamma=1.8(as gamma of Prophoto) @@ -854,6 +877,9 @@ void ICCProfileCreator::savePressed() ga[2] = 0.; ga[3] = 1. / eps; ga[4] = 0.; + presetGamma = 1.8; + 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 @@ -861,6 +887,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; @@ -972,7 +1001,7 @@ void ICCProfileCreator::savePressed() */ //change - float p[6]; //primaries + double p[6]; //primaries ga[6] = 0.0; ColorTemp temp; @@ -985,7 +1014,6 @@ void ICCProfileCreator::savePressed() {p[4], p[5], 1.0} // blue }; - if (v2except) { cmsSetDeviceClass(profile_v2_except, cmsSigDisplayClass); cmsSetPCS(profile_v2_except, cmsSigXYZData); @@ -1034,23 +1062,60 @@ void ICCProfileCreator::savePressed() if (v2except) { cmsCIEXYZ XYZ; + double Wx = 1.0; + double Wy = 1.0; + double Wz = 1.0; - { - XYZ = {0.95045471, 1.0, 1.08905029};//white D65 - } + if (illuminant == "DEF") { + { + Wx = 0.95045471; + Wz = 1.08905029; + XYZ = {Wx, 1.0, Wz};//white D65 + } - if (primariesPreset == "ACES-AP1" || primariesPreset == "ACES-AP0") { - XYZ = {0.952646075, 1.0, 1.008825184};//white D60 - } + 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}; - if (isD50) { - XYZ = {0.964295676, 1.0, 0.825104603};//white D50 room (prophoto) near LCMS values but not perfect...it's a compromise!! } cmsCIExyY blackpoint; { - blackpoint = {0., 0., 0.};//White D65 point from the sRGB.icm and AdobeRGB1998 profile specs + blackpoint = {0., 0., 0.}; } cmsWriteTag(profile_v2_except, cmsSigMediaBlackPointTag, &blackpoint); @@ -1059,120 +1124,162 @@ void ICCProfileCreator::savePressed() cmsCIEXYZ bt; cmsCIEXYZ gt; - if (primariesPreset == "sRGB") { - //calculated with personnal special spreadsheat - { - //Matrix value from spec Adobe but adapted with wp - rt = {0.4360411843, 0.2224843154, 0.0139201582}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1430457992, 0.0606099658, 0.7139121724}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.3851136574, 0.7169049862, 0.0970677661}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + //calculate XYZ matrix for each primaries and each temp (D50, D65...) - } + // reduce coordonate 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; } - if (primariesPreset == "Adobe") { - { - //Adobe spec adapted with wp calculated with personnal special spreadsheat - rt = {0.6097408852, 0.3111123176, 0.0194653393}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1491866649, 0.0632119133, 0.7445599707}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.2052730908, 0.6256750365, 0.0608747867}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + //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]; + } } } - if (primariesPreset == "Rec2020") { - {//calculated with personnal special spreadsheat - rt = {0.6734800343, 0.2790423273, -0.0019336766}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1250489478, 0.0456126910, 0.7968509159}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1656716588, 0.6753442491, 0.0299828575}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + //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]; + } } } - if (primariesPreset == "BruceRGB") { - {//calculated with personnal special spreadsheat - rt = {0.4941542253, 0.2521357351, 0.0157753562}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1495175342, 0.0633521060, 0.7462112712}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.3205288814, 0.6845114263, 0.0629134693}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); + //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]; + } } } - if (primariesPreset == "ACES-AP0") { - {//calculated with personnal special spreadsheat - rt = {0.9908835135, 0.3618940325, -0.0027137400}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {-0.0389246557, -0.084405166, 0.8193659780}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.0122417831, 0.7225104015, 0.0082478587}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - if (primariesPreset == "ACES-AP1") {//done - {//calculated with personnal special spreadsheat - rt = {0.6898756188, 0.2845109670, -0.0060455375}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1245615936, 0.0437959432, 0.8209388333}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1497634285, 0.6716923572, 0.0100068009}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } +// 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 - if (primariesPreset == "ProPhoto") { - {//calculated with personnal special spreadsheat - rt = {0.7977198204, 0.2880493171, -0.0000030551}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.0313194091, 0.0000771282, 0.8248890748}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1351614114, 0.7118728221, 0.0000140770}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } + //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); - if (primariesPreset == "Widegamut") { - {//calculated with personnal special spreadsheat - rt = {0.7161680478, 0.2582038074, -0.0000027515}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1471328469, 0.0168600579, 0.7731227232}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1008997462, 0.7249354021, 0.0517801251}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "BestRGB") { - {//calculated with personnal special spreadsheat - rt = {0.6327383009, 0.2284760022, -0.0000024233}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1269437333, 0.0341753604, 0.8153773703}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.2045186067, 0.7373479048, 0.0095251497}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } - - if (primariesPreset == "BetaRGB") { - {//calculated with personnal special spreadsheat - rt = {0.6713200674, 0.3033034560, -0.0000012307}; - cmsWriteTag(profile_v2_except, cmsSigRedColorantTag, &rt); - bt = {0.1183343909, 0.0329265310, 0.7842009909}; - cmsWriteTag(profile_v2_except, cmsSigBlueColorantTag, &bt); - gt = {0.1745461827, 0.6637692805, 0.0407003365}; - cmsWriteTag(profile_v2_except, cmsSigGreenColorantTag, >); - } - } } else { cmsWhitePointFromTemp(&xyD, (double)temp); @@ -1192,7 +1299,6 @@ void ICCProfileCreator::savePressed() xyD = {0.3457, 0.3585, 1.0}; } -// {0.3457, 0.3585, 1.0}; // Calculate output profile's rTRC gTRC bTRC @@ -1264,7 +1370,7 @@ void ICCProfileCreator::savePressed() printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); } } else { - if (!cmsWriteTag(profile_v2_except, cmsSigProfileDescriptionTag, dmdd)) { + if (!cmsWriteTag(profile_v2_except, cmsSigDeviceModelDescTag, dmdd)) { printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); } diff --git a/rtgui/iccprofilecreator.h b/rtgui/iccprofilecreator.h index 605cb9dcd..74fa4bc54 100644 --- a/rtgui/iccprofilecreator.h +++ b/rtgui/iccprofilecreator.h @@ -95,7 +95,7 @@ private: 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); + 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(); From 3824213e4998305b7f1c1cf6882e3552cb4a91c7 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 17 Nov 2018 19:25:32 +0100 Subject: [PATCH 038/116] Fix two coverity issues --- rtengine/iccstore.cc | 14 +++++++------- rtengine/pdaflinesfilter.cc | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/rtengine/iccstore.cc b/rtengine/iccstore.cc index 4d490c0a0..1f24852d0 100644 --- a/rtengine/iccstore.cc +++ b/rtengine/iccstore.cc @@ -1058,8 +1058,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 +1096,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/pdaflinesfilter.cc b/rtengine/pdaflinesfilter.cc index ee279f3c0..86c6f2d4c 100644 --- a/rtengine/pdaflinesfilter.cc +++ b/rtengine/pdaflinesfilter.cc @@ -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_); From 741bdd97f25c0604e8c91422241e4d8c0608da37 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 17 Nov 2018 20:20:44 +0100 Subject: [PATCH 039/116] Fix another coverity issue --- rtengine/simpleprocess.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index b36f4d6c1..9e23b51a3 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1260,8 +1260,8 @@ 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 From 2d5c2b933f8e720ecdc7de2de3b36d8865e6988f Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 17 Nov 2018 23:56:57 +0100 Subject: [PATCH 040/116] Fix another coverity issue --- rtgui/filepanel.cc | 10 ---------- 1 file changed, 10 deletions(-) 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; } From bda23b935056cfd96a64d49b9325b2cdbc88dd7f Mon Sep 17 00:00:00 2001 From: "U-PC-BUREAU\\jacques" Date: Sun, 18 Nov 2018 08:28:27 +0100 Subject: [PATCH 041/116] Change Tag dmdd for RTv2_Medium and code for TRC=custom and slope=0 --- rtdata/iccprofiles/output/RTv2_Medium.icc | Bin 876 -> 856 bytes rtengine/iplab2rgb.cc | 8 ++++++-- rtgui/iccprofilecreator.cc | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rtdata/iccprofiles/output/RTv2_Medium.icc b/rtdata/iccprofiles/output/RTv2_Medium.icc index 065c43bc44ed6cbe53fd332875a727a48fc03eb0..454f40d9086dc16fbed0f7c4b8a55fb2851b53a6 100644 GIT binary patch delta 100 zcmaFEc7u(Dfq^+s<(j3)f)MtVjD#Rhr? lAfO0T00#UF=?q2;dO&QzPz=O+Kn#P5lP5B{Prk-94FFr86bt|W delta 121 zcmcb?_J)mxfq^+^BFlHtIVrh$DGUruHy9Wg8j`XLN`Mj(n*|un8QnzFjr2?mK%m&r zNYB#9*wDa05vU9dL>bZ Date: Sun, 18 Nov 2018 11:02:30 +0100 Subject: [PATCH 042/116] Small changes to increase precision gamma --- rtdata/iccprofiles/output/RTv2_Medium.icc | Bin 856 -> 868 bytes rtengine/iplab2rgb.cc | 1 + rtgui/iccprofilecreator.cc | 13 ++++++------- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rtdata/iccprofiles/output/RTv2_Medium.icc b/rtdata/iccprofiles/output/RTv2_Medium.icc index 454f40d9086dc16fbed0f7c4b8a55fb2851b53a6..ebaf4d133aabc2fdc3a71d6aa7ea1b5152b38b94 100644 GIT binary patch delta 90 zcmcb?_Joavfq^+?BFlHtDJi*mDGUru7Z?~A8j`XLN`Mjpn*|un8TEwIjr0sHEsYE< iiw*P)KtK_w2n>W7(iw~x^cV~oEP>DnL{H9SdJh1^lM;;p delta 78 zcmaFDc7u(Dfq^+s<(j7t3JMtVjD#Rhr? YAfO0T00#UF=?q2;dO&P2xs>TW0OZ*an*aa+ diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 9094f3526..da8e687ed 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -368,6 +368,7 @@ Imagefloat* ImProcFunctions::lab2rgbOut(LabImage* lab, int cx, int cy, int cw, i cmsToneCurve* GammaTRC[3]; if(slopetag == 0.) { + //printf("gammatag=%f\n", gammatag); GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, gammatag); } else { diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 97d22ca0b..60b45519a 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -154,7 +154,7 @@ ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) //--------------------------------- 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) { @@ -867,9 +867,8 @@ void ICCProfileCreator::savePressed() ga[2] = 0.; ga[3] = 1. / eps; ga[4] = 0.; - presetGamma = 2.2; + 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) @@ -877,7 +876,7 @@ void ICCProfileCreator::savePressed() ga[2] = 0.; ga[3] = 1. / eps; ga[4] = 0.; - presetGamma = 1.8; + presetGamma = 1.80078125; presetSlope = 0.0; } else if (gammaPreset == "Lab_g3.0s9.03296") { @@ -907,7 +906,7 @@ void ICCProfileCreator::savePressed() //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(6), gamma), Glib::ustring::format(std::setw(6), std::fixed, std::setprecision(5), slope)); presetGamma = gamma; presetSlope = slope; @@ -930,12 +929,12 @@ void ICCProfileCreator::savePressed() Glib::ustring sSlope; if (gammaPreset == "Custom") { - sGamma = Glib::ustring::format(std::setw(3), std::fixed, std::setprecision(2), gamma); + 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); + 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; From 99c8b6061513742e048bb723e24444d11008521c Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 18 Nov 2018 12:15:30 +0100 Subject: [PATCH 043/116] Fix broken non-raw images --- rtengine/imageio.h | 6 +----- rtengine/stdimagesource.cc | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/rtengine/imageio.h b/rtengine/imageio.h index 0de1de1c0..bb9fbc5f4 100644 --- a/rtengine/imageio.h +++ b/rtengine/imageio.h @@ -106,11 +106,7 @@ public: return sampleArrangement; } - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first) - { - printf("getStdImage NULL!\n"); - } - + virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp) = 0; 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) {} diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index 241d5f81d..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); + 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!" From bfe84655630db4a5816003dab3782b9b79261e8d Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 18 Nov 2018 15:43:15 +0100 Subject: [PATCH 044/116] Review of image classes interfaces --- rtengine/iimage.h | 6 +-- rtengine/image16.cc | 4 +- rtengine/image16.h | 44 +++++++++++-------- rtengine/image8.cc | 4 +- rtengine/image8.h | 36 ++++++++++------ rtengine/imagefloat.cc | 4 +- rtengine/imagefloat.h | 20 ++++----- rtengine/imageio.cc | 74 ++++++++++++++++++++++++++----- rtengine/imageio.h | 98 ++++++++++++------------------------------ 9 files changed, 158 insertions(+), 132 deletions(-) diff --git a/rtengine/iimage.h b/rtengine/iimage.h index af2969581..f5f0d075e 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -1751,10 +1751,10 @@ 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 */ @@ -1775,7 +1775,7 @@ public: * @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 (Glib::ustring fname, int bps = -1, bool isFloat = false, bool uncompressed = false) = 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; diff --git a/rtengine/image16.cc b/rtengine/image16.cc index 5ceb4f804..42a2df028 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) { @@ -132,7 +132,7 @@ Image16* Image16::copy() return cp; } -void Image16::getStdImage(ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp) +void Image16::getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const { // compute channel multipliers diff --git a/rtengine/image16.h b/rtengine/image16.h index 804f8cc72..8e9f686c9 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -40,62 +40,70 @@ public: Image16(int width, int height); ~Image16(); - Image16* copy(); + Image16* copy(); - Image8* to8(); - Imagefloat* tofloat(); + Image8* to8(); + Imagefloat* tofloat(); - virtual void getStdImage(ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp); + virtual void getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const; - virtual const char* getType() const + virtual const char* getType() const { return sImage16; } - virtual int getBPS() + virtual int getBPS() const { 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); + virtual void getScanline(int row, unsigned char* buffer, int bps, bool isFloat = false) const; + virtual void setScanline(int row, unsigned char* buffer, int bps, unsigned int numSamples); // functions inherited from IImage16: - virtual MyMutex& getMutex() + virtual MyMutex& getMutex() { return mutex(); } - virtual cmsHPROFILE getProfile() + + virtual cmsHPROFILE getProfile() const { return getEmbeddedProfile(); } - virtual int getBitsPerPixel() + + virtual int getBitsPerPixel() const { return 8 * sizeof(unsigned short); } - virtual int saveToFile(Glib::ustring fname) + + virtual int saveToFile(Glib::ustring fname) { return save(fname); } - virtual int saveAsPNG(Glib::ustring fname, int bps = -1) + + virtual int saveAsPNG(Glib::ustring fname, int bps = -1) { return savePNG(fname, bps); } - virtual int saveAsJPEG(Glib::ustring fname, int quality = 100, int subSamp = 3) + + virtual int saveAsJPEG(Glib::ustring fname, int quality = 100, int subSamp = 3) { return saveJPEG(fname, quality, subSamp); } - virtual int saveAsTIFF(Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) + + virtual int saveAsTIFF(Glib::ustring fname, int bps = -1, bool isFloat = false, bool uncompressed = false) { return saveTIFF(fname, bps, isFloat, uncompressed); } - virtual void setSaveProgressListener(ProgressListener* pl) + + virtual void setSaveProgressListener(ProgressListener* pl) { setProgressListener(pl); } - virtual void free() + + virtual void free() { 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 15a6d9acc..64fe59ecd 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) { @@ -97,7 +97,7 @@ Image8* Image8::copy () return cp; } -void Image8::getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp) +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 9bb5d51e3..521605009 100644 --- a/rtengine/image8.h +++ b/rtengine/image8.h @@ -40,53 +40,61 @@ public: Image8* copy (); - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp); + virtual void getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const; - virtual const char* getType () const + virtual const char* getType () const { return sImage8; } - virtual int getBPS () + virtual int getBPS () const { 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); + virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false) const; + virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples); // functions inherited from IImage*: - virtual MyMutex& getMutex () + virtual MyMutex& getMutex () { return mutex (); } - virtual cmsHPROFILE getProfile () + + virtual cmsHPROFILE getProfile () const { return getEmbeddedProfile (); } - virtual int getBitsPerPixel () + + virtual int getBitsPerPixel () const { return 8 * sizeof(unsigned char); } - virtual int saveToFile (Glib::ustring fname) + + virtual int saveToFile (Glib::ustring fname) { return save (fname); } - virtual int saveAsPNG (Glib::ustring fname, int bps = -1) + + virtual int saveAsPNG (Glib::ustring fname, int bps = -1) { return savePNG (fname, bps); } - virtual int saveAsJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3) + + virtual int saveAsJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3) { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) + + virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, bool isFloat = false, bool uncompressed = false) { return saveTIFF (fname, bps, isFloat, uncompressed); } - virtual void setSaveProgressListener (ProgressListener* pl) + + virtual void setSaveProgressListener (ProgressListener* pl) { setProgressListener (pl); } - virtual void free () + + virtual void free () { delete this; } diff --git a/rtengine/imagefloat.cc b/rtengine/imagefloat.cc index fd6bc1c75..baf872e44 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) { @@ -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) +void Imagefloat::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const { // compute channel multipliers diff --git a/rtengine/imagefloat.h b/rtengine/imagefloat.h index d84e742ce..e163b6d4f 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -49,29 +49,29 @@ public: Image8* to8(); Image16* to16(); - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp); + virtual void getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const; - virtual const char* getType () const + virtual const char* getType () const { return sImagefloat; } - virtual int getBPS () + virtual int getBPS () const { 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); + virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false) const; + virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples); // functions inherited from IImagefloat: - virtual MyMutex& getMutex () + virtual MyMutex& getMutex () { return mutex (); } - virtual cmsHPROFILE getProfile () + virtual cmsHPROFILE getProfile () const { return getEmbeddedProfile (); } - virtual int getBitsPerPixel () + virtual int getBitsPerPixel () const { return 8 * sizeof(float); } @@ -87,7 +87,7 @@ public: { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) + virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, bool isFloat = false, bool uncompressed = false) { return saveTIFF (fname, bps, isFloat, uncompressed); } @@ -100,7 +100,7 @@ public: delete this; } - inline uint16_t DNG_FloatToHalf(float f) + inline uint16_t DNG_FloatToHalf(float f) const { union { float f; 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 bb9fbc5f4..09fcbab81 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]; @@ -84,75 +74,41 @@ public: virtual ~ImageIO (); - 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 void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp) = 0; - 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) {} + int load (const Glib::ustring &fname); + int save (const Glib::ustring &fname) const; - 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 (); }; } From 512adf5b62c797b646741777e9eedb1b35563e18 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 18 Nov 2018 18:09:40 +0100 Subject: [PATCH 045/116] Review of image classes interfaces, part 2 --- rtengine/iimage.h | 102 ++++++++++++++++++----------------------- rtengine/image16.cc | 8 ++-- rtengine/image16.h | 14 +++--- rtengine/image8.cc | 2 +- rtengine/image8.h | 10 ++-- rtengine/imagefloat.cc | 6 +-- rtengine/imagefloat.h | 16 +++---- rtengine/imageio.h | 1 + 8 files changed, 72 insertions(+), 87 deletions(-) diff --git a/rtengine/iimage.h b/rtengine/iimage.h index f5f0d075e..2def35e06 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; } @@ -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 @@ -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) { @@ -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; } @@ -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 @@ -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,9 +855,9 @@ 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; } } } @@ -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 { 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 { 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) { @@ -1083,7 +1069,7 @@ public: 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) + int tran) const { 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,7 +1133,7 @@ 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); @@ -1162,7 +1148,7 @@ public: } } - void writeData (FILE *f) + void writeData (FILE *f) const { for (int i = 0; i < height; i++) { fwrite (r(i), sizeof(T), width, f); @@ -1345,7 +1331,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 @@ -1421,7 +1407,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,9 +1471,9 @@ 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; } } } @@ -1545,7 +1531,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 +1545,7 @@ public: } } - void computeAutoHistogram (LUTu & histogram, int& histcompr) + void computeAutoHistogram (LUTu & histogram, int& histcompr) const { histcompr = 3; @@ -1578,7 +1564,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 { histogram.clear(); avg_r = avg_g = avg_b = 0.; @@ -1610,7 +1596,7 @@ public: } } - void getAutoWBMultipliers (double &rm, double &gm, double &bm) + void getAutoWBMultipliers (double &rm, double &gm, double &bm) const { double avg_r = 0.; @@ -1641,7 +1627,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) { @@ -1686,7 +1672,7 @@ public: 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) + int tran) const { int x; int y; @@ -1723,14 +1709,14 @@ public: } } - void readData (FILE *f) + void readData (FILE *f) { for (int i = 0; i < height; i++) { fread (r(i), sizeof(T), 3 * width, f); } } - void writeData (FILE *f) + void writeData (FILE *f) const { for (int i = 0; i < height; i++) { fwrite (r(i), sizeof(T), 3 * width, f); @@ -1758,24 +1744,24 @@ public: /** @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, bool 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; diff --git a/rtengine/image16.cc b/rtengine/image16.cc index 42a2df028..618d31641 100644 --- a/rtengine/image16.cc +++ b/rtengine/image16.cc @@ -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); @@ -295,8 +295,7 @@ void Image16::getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, P #undef GCLIP } -Image8* -Image16::to8() +Image8* Image16::to8() const { Image8* img8 = new Image8(width, height); @@ -311,8 +310,7 @@ Image16::to8() return img8; } -Imagefloat* -Image16::tofloat() +Imagefloat* Image16::tofloat() const { Imagefloat* imgfloat = new Imagefloat(width, height); diff --git a/rtengine/image16.h b/rtengine/image16.h index 8e9f686c9..973b09504 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -40,10 +40,10 @@ public: Image16(int width, int height); ~Image16(); - Image16* copy(); + Image16* copy() const; - Image8* to8(); - Imagefloat* tofloat(); + Image8* to8() const; + Imagefloat* tofloat() const; virtual void getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const; @@ -74,22 +74,22 @@ public: return 8 * sizeof(unsigned short); } - virtual int saveToFile(Glib::ustring fname) + virtual int saveToFile(const Glib::ustring &fname) const { return save(fname); } - virtual int saveAsPNG(Glib::ustring fname, int bps = -1) + virtual int saveAsPNG(const Glib::ustring &fname, int bps = -1) const { return savePNG(fname, bps); } - virtual int saveAsJPEG(Glib::ustring fname, int quality = 100, int subSamp = 3) + virtual int saveAsJPEG(const Glib::ustring &fname, int quality = 100, int subSamp = 3) const { return saveJPEG(fname, quality, subSamp); } - virtual int saveAsTIFF(Glib::ustring fname, int bps = -1, bool isFloat = false, bool uncompressed = false) + virtual int saveAsTIFF(const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const { return saveTIFF(fname, bps, isFloat, uncompressed); } diff --git a/rtengine/image8.cc b/rtengine/image8.cc index 64fe59ecd..edced2fe5 100644 --- a/rtengine/image8.cc +++ b/rtengine/image8.cc @@ -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); diff --git a/rtengine/image8.h b/rtengine/image8.h index 521605009..9460a4fbb 100644 --- a/rtengine/image8.h +++ b/rtengine/image8.h @@ -38,7 +38,7 @@ public: Image8 (int width, int height); ~Image8 (); - Image8* copy (); + Image8* copy () const; virtual void getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const; @@ -69,22 +69,22 @@ public: return 8 * sizeof(unsigned char); } - virtual int saveToFile (Glib::ustring fname) + virtual int saveToFile (const Glib::ustring &fname) const { return save (fname); } - virtual int saveAsPNG (Glib::ustring fname, int bps = -1) + virtual int saveAsPNG (const Glib::ustring &fname, int bps = -1) const { return savePNG (fname, bps); } - virtual int saveAsJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3) + virtual int saveAsJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3) const { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, bool isFloat = false, bool uncompressed = false) + virtual int saveAsTIFF (const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const { return saveTIFF (fname, bps, isFloat, uncompressed); } diff --git a/rtengine/imagefloat.cc b/rtengine/imagefloat.cc index baf872e44..63c521040 100644 --- a/rtengine/imagefloat.cc +++ b/rtengine/imagefloat.cc @@ -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); @@ -330,7 +330,7 @@ void Imagefloat::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* imag } 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 diff --git a/rtengine/imagefloat.h b/rtengine/imagefloat.h index e163b6d4f..49dce8284 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -44,10 +44,10 @@ public: Imagefloat (int width, int height); ~Imagefloat (); - Imagefloat* copy (); + Imagefloat* copy () const; - Image8* to8(); - Image16* to16(); + Image8* to8() const; + Image16* to16() const; virtual void getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const; @@ -75,23 +75,23 @@ public: { return 8 * sizeof(float); } - virtual int saveToFile (Glib::ustring fname) + virtual int saveToFile (const Glib::ustring &fname) const { return save (fname); } - virtual int saveAsPNG (Glib::ustring fname, int bps = -1) + virtual int saveAsPNG (const Glib::ustring &fname, int bps = -1) const { return savePNG (fname, bps); } - virtual int saveAsJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3) + virtual int saveAsJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3) const { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, bool isFloat = false, bool uncompressed = false) + virtual int saveAsTIFF (const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const { return saveTIFF (fname, bps, isFloat, uncompressed); } - virtual void setSaveProgressListener (ProgressListener* pl) + virtual void setSaveProgressListener (ProgressListener* pl) { setProgressListener (pl); } diff --git a/rtengine/imageio.h b/rtengine/imageio.h index 09fcbab81..5970866f0 100644 --- a/rtengine/imageio.h +++ b/rtengine/imageio.h @@ -84,6 +84,7 @@ public: 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; int load (const Glib::ustring &fname); int save (const Glib::ustring &fname) const; From e0b4f85e097c2aaa0a9d47edec8ebb264ffc3f00 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Mon, 19 Nov 2018 09:29:21 +0100 Subject: [PATCH 046/116] DNG: protect from ill-formed BaselineExposure values --- rtengine/dcraw.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 6ee426d63..5e89d7614 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -6523,7 +6523,12 @@ guess_cfa_pc: FORC3 xyz[c] /= d65_white[c]; break; case 50730: /* BaselineExposure */ - if (dng_version) RT_baseline_exposure = getreal(type); + if (dng_version) { + double be = getreal(type); + if (!std::isnan(be)) { + RT_baseline_exposure = be; + } + } break; case 50740: /* DNGPrivateData */ if (dng_version) break; From 5b3fd8ddba4933791e147237f2bdb5d2d38d57ad Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 19 Nov 2018 14:12:16 +0100 Subject: [PATCH 047/116] Review of image classes interfaces, part 3 --- rtengine/image16.h | 29 +++++++++++++++-------------- rtengine/image8.h | 30 ++++++++++++++++-------------- rtengine/imagefloat.h | 30 ++++++++++++++++-------------- 3 files changed, 47 insertions(+), 42 deletions(-) diff --git a/rtengine/image16.h b/rtengine/image16.h index 973b09504..3431d8afd 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -45,61 +45,62 @@ public: Image8* to8() const; Imagefloat* tofloat() const; - virtual void getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const; + 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() const + int getBPS() const override { return 8 * sizeof(unsigned short); } - virtual void getScanline(int row, unsigned char* buffer, int bps, bool isFloat = false) const; - 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() const + cmsHPROFILE getProfile() const override { return getEmbeddedProfile(); } - virtual int getBitsPerPixel() const + int getBitsPerPixel() const override { return 8 * sizeof(unsigned short); } - virtual int saveToFile(const Glib::ustring &fname) const + int saveToFile(const Glib::ustring &fname) const override { return save(fname); } - virtual int saveAsPNG(const Glib::ustring &fname, int bps = -1) const + saveAsPNG(const Glib::ustring &fname, int bps = -1) const override { return savePNG(fname, bps); } - virtual int saveAsJPEG(const Glib::ustring &fname, int quality = 100, int subSamp = 3) const + int saveAsJPEG(const Glib::ustring &fname, int quality = 100, int subSamp = 3) const override { return saveJPEG(fname, quality, subSamp); } - virtual int saveAsTIFF(const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const + 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/image8.h b/rtengine/image8.h index 9460a4fbb..2cc670a4a 100644 --- a/rtengine/image8.h +++ b/rtengine/image8.h @@ -40,61 +40,63 @@ public: Image8* copy () const; - virtual void getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const; + 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 () const + + int getBPS () const override { return 8 * sizeof(unsigned char); } - virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false) const; - 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 () const + cmsHPROFILE getProfile () const override { return getEmbeddedProfile (); } - virtual int getBitsPerPixel () const + int getBitsPerPixel () const override { return 8 * sizeof(unsigned char); } - virtual int saveToFile (const Glib::ustring &fname) const + int saveToFile (const Glib::ustring &fname) const override { return save (fname); } - virtual int saveAsPNG (const Glib::ustring &fname, int bps = -1) const + int saveAsPNG (const Glib::ustring &fname, int bps = -1) const override { return savePNG (fname, bps); } - virtual int saveAsJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3) const + int saveAsJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3) const override { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const + 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/imagefloat.h b/rtengine/imagefloat.h index 49dce8284..bd7ae2a46 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -49,53 +49,55 @@ public: Image8* to8() const; Image16* to16() const; - virtual void getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const; + 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 () const + + int getBPS () const override { return 8 * sizeof(float); } - virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false) const; - 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 () const + cmsHPROFILE getProfile () const override { return getEmbeddedProfile (); } - virtual int getBitsPerPixel () const + int getBitsPerPixel () const override { return 8 * sizeof(float); } - virtual int saveToFile (const Glib::ustring &fname) const + int saveToFile (const Glib::ustring &fname) const override { return save (fname); } - virtual int saveAsPNG (const Glib::ustring &fname, int bps = -1) const + int saveAsPNG (const Glib::ustring &fname, int bps = -1) const override { return savePNG (fname, bps); } - virtual int saveAsJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3) const + int saveAsJPEG (const Glib::ustring &fname, int quality = 100, int subSamp = 3) const override { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (const Glib::ustring &fname, int bps = -1, bool isFloat = false, bool uncompressed = false) const + 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; } From 8de054d504a2f0af9f3790e2eb77b7590b145b6b Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 19 Nov 2018 13:46:14 +0100 Subject: [PATCH 048/116] Formatted lensprofile.* --- rtgui/lensprofile.cc | 150 ++++++++++++++++++++++++++++--------------- rtgui/lensprofile.h | 35 ++++++---- 2 files changed, 120 insertions(+), 65 deletions(-) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index a725ae9f8..e67a4e589 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -31,7 +31,7 @@ using namespace rtengine::procparams; LensProfilePanel::LFDbHelper *LensProfilePanel::lf(nullptr); -LensProfilePanel::LensProfilePanel () : +LensProfilePanel::LensProfilePanel() : FoldableToolPanel(this, "lensprof", M("TP_LENSPROFILE_LABEL")), lcModeChanged(false), lcpFileChanged(false), @@ -56,10 +56,10 @@ LensProfilePanel::LensProfilePanel () : 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); @@ -78,7 +78,7 @@ LensProfilePanel::LensProfilePanel () : 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); @@ -119,23 +119,24 @@ LensProfilePanel::LensProfilePanel () : } else if (!options.lastLensProfileDir.empty()) { fcbLCPFile->set_current_folder(options.lastLensProfileDir); } + bindCurrentFolder(*fcbLCPFile, options.lastLensProfileDir); hbLCPFile->pack_start(*fcbLCPFile); pack_start(*hbLCPFile, Gtk::PACK_SHRINK, 4); - 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); + 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); - 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) ); + 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)); lensfunCameras->signal_changed().connect(sigc::mem_fun(*this, &LensProfilePanel::onLensfunCameraChanged)); lensfunLenses->signal_changed().connect(sigc::mem_fun(*this, &LensProfilePanel::onLensfunLensChanged)); @@ -145,13 +146,13 @@ LensProfilePanel::LensProfilePanel () : corrLcpFile->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLcpFile)); corrUnchanged->hide(); - + allowFocusDep = true; } void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited) { - disableListener (); + disableListener(); conUseDist.block(true); if (!batchMode) { @@ -160,16 +161,19 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa corrLensfunAuto->set_sensitive(true); - switch(pp->lensProf.lcMode) { + switch (pp->lensProf.lcMode) { case procparams::LensProfParams::LcMode::LCP : corrLcpFile->set_active(true); break; + case procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH : corrLensfunAuto->set_active(true); break; + case procparams::LensProfParams::LcMode::LENSFUNMANUAL : corrLensfunManual->set_active(true); break; + case procparams::LensProfParams::LcMode::NONE : corrOff->set_active(true); } @@ -181,8 +185,9 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa bindCurrentFolder(*fcbLCPFile, options.lastLensProfileDir); updateDisabled(false); } else if (LCPStore::getInstance()->isValidLCPFileName(pp->lensProf.lcpFile)) { - fcbLCPFile->set_filename (pp->lensProf.lcpFile); - if(corrLcpFile->get_active()) { + fcbLCPFile->set_filename(pp->lensProf.lcpFile); + + if (corrLcpFile->get_active()) { updateDisabled(true); } } else { @@ -192,20 +197,21 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa const LFDatabase *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()); setLensfunLens(l.getLens()); } } - + lcModeChanged = lcpFileChanged = useDistChanged = useVignChanged = useCAChanged = false; useLensfunChanged = lensfunAutoChanged = lensfunCameraChanged = lensfunLensChanged = false; @@ -213,6 +219,7 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa if (corrLensfunAuto->get_active()) { corrOff->set_active(true); } + corrLensfunAuto->set_sensitive(false); } @@ -222,11 +229,11 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa 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); } @@ -234,33 +241,43 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa void LensProfilePanel::updateLensfunWarning() { 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); } @@ -284,15 +301,15 @@ void LensProfilePanel::setRawMeta(bool raw, const rtengine::FramesMetaData* pMet metadata = pMeta; } -void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) +void LensProfilePanel::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) { if (corrLcpFile->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LCP; - } else if(corrLensfunManual->get_active()) { + } else if (corrLensfunManual->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LENSFUNMANUAL; - } else if(corrLensfunAuto->get_active()) { + } else if (corrLensfunAuto->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH; - } else if(corrOff->get_active()) { + } else if (corrOff->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::NONE; } @@ -307,6 +324,7 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited pp->lensProf.useCA = ckbUseCA->get_active(); auto itc = lensfunCameras->get_active(); + if (itc) { pp->lensProf.lfCameraMake = (*itc)[lf->lensfunModelCam.make]; pp->lensProf.lfCameraModel = (*itc)[lf->lensfunModelCam.model]; @@ -314,7 +332,9 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited pp->lensProf.lfCameraMake = ""; pp->lensProf.lfCameraModel = ""; } + auto itl = lensfunLenses->get_active(); + if (itl) { pp->lensProf.lfLens = (*itl)[lf->lensfunModelLens.lens]; } else { @@ -347,7 +367,8 @@ void LensProfilePanel::onLCPFileChanged() corrLcpFile->set_active(true); enableListener(); } - listener->panelChanged (EvLCPFile, Glib::path_get_basename(fcbLCPFile->get_filename())); + + listener->panelChanged(EvLCPFile, Glib::path_get_basename(fcbLCPFile->get_filename())); } } @@ -356,7 +377,7 @@ 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() @@ -364,7 +385,7 @@ 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() @@ -372,7 +393,7 @@ 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")); } } @@ -386,6 +407,7 @@ void LensProfilePanel::updateDisabled(bool enable) void LensProfilePanel::setBatchMode(bool yes) { FoldableToolPanel::setBatchMode(yes); + if (yes) { corrUnchanged->show(); corrUnchanged->set_active(true); @@ -399,25 +421,30 @@ bool LensProfilePanel::setLensfunCamera(const Glib::ustring &make, const Glib::u { 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; } @@ -427,21 +454,26 @@ 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 @@ -451,6 +483,7 @@ bool LensProfilePanel::setLensfunLens(const Glib::ustring &lens) } } } + lensfunLenses->set_active(-1); return false; } @@ -468,7 +501,7 @@ void LensProfilePanel::onLensfunCameraChanged() disableListener(); corrLensfunManual->set_active(true); enableListener(); - + Glib::ustring name = (*iter)[lf->lensfunModelCam.model]; listener->panelChanged(EvLensCorrLensfunCamera, name); } @@ -489,7 +522,7 @@ void LensProfilePanel::onLensfunLensChanged() disableListener(); corrLensfunManual->set_active(true); enableListener(); - + Glib::ustring name = (*iter)[lf->lensfunModelLens.prettylens]; listener->panelChanged(EvLensCorrLensfunLens, name); } @@ -533,6 +566,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) LFLens l = db->findLens(c, metadata->getLens()); setLensfunCamera(c.getMake(), c.getModel()); setLensfunLens(l.getLens()); + if (b) { enableListener(); } @@ -590,6 +624,7 @@ 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)); @@ -604,24 +639,24 @@ bool LensProfilePanel::checkLensfunCanCorrect(bool automatch) LensProfilePanel::LFDbHelper::LFDbHelper() { #ifdef _OPENMP -#pragma omp parallel sections if (!options.rtSettings.verbose) + #pragma omp parallel sections if (!options.rtSettings.verbose) #endif -{ + { #ifdef _OPENMP -#pragma omp section + #pragma omp section #endif -{ - lensfunCameraModel = Gtk::TreeStore::create(lensfunModelCam); - fillLensfunCameras(); -} + { + lensfunCameraModel = Gtk::TreeStore::create(lensfunModelCam); + fillLensfunCameras(); + } #ifdef _OPENMP -#pragma omp section + #pragma omp section #endif -{ - lensfunLensModel = Gtk::TreeStore::create(lensfunModelLens); - fillLensfunLenses(); -} -} + { + lensfunLensModel = Gtk::TreeStore::create(lensfunModelLens); + fillLensfunLenses(); + } + } } void LensProfilePanel::LFDbHelper::fillLensfunCameras() @@ -629,19 +664,23 @@ 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) { camnames[c.getMake()].insert(c.getModel()); if (options.rtSettings.verbose) { std::cout << " found: " << c.getDisplayString().c_str() << std::endl; - } + } } + for (auto &p : camnames) { Gtk::TreeModel::Row row = *(lensfunCameraModel->append()); row[lensfunModelCam.make] = p.first; row[lensfunModelCam.model] = p.first; + for (auto &c : p.second) { Gtk::TreeModel::Row child = *(lensfunCameraModel->append(row.children())); child[lensfunModelCam.make] = p.first; @@ -656,8 +695,10 @@ 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(); @@ -667,15 +708,18 @@ void LensProfilePanel::LFDbHelper::fillLensfunLenses() std::cout << " found: " << l.getDisplayString().c_str() << std::endl; } } + for (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; } diff --git a/rtgui/lensprofile.h b/rtgui/lensprofile.h index 8c814e6fc..692005d01 100644 --- a/rtgui/lensprofile.h +++ b/rtgui/lensprofile.h @@ -50,25 +50,36 @@ protected: MyComboBox *lensfunLenses; Gtk::Image *warning; - class LFDbHelper { + class LFDbHelper + { public: - class LFModelCam: public Gtk::TreeModel::ColumnRecord { + class LFModelCam: 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: 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; @@ -87,16 +98,16 @@ protected: bool setLensfunLens(const Glib::ustring &lens); bool checkLensfunCanCorrect(bool automatch); void updateLensfunWarning(); - + public: - LensProfilePanel (); + 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 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 onLCPFileChanged(); void onUseDistChanged(); void onUseVignChanged(); void onUseCAChanged(); From ff6d02fd71591ed60bbac5abb9ee6825572296b1 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 19 Nov 2018 14:12:28 +0100 Subject: [PATCH 049/116] Hide manual lens correction widgets when not needed - The comboboxes and their respective labels for manually specifying a camera and lens are now hidden when not in manual mode to not confuse the user. - All Lens Correction Profile widgets are now aligned. - Labels changed to not mislead users - the tool lets you select a lens profile, but it does not let you manually specify the individual correction parameters as previously implied. Closes #4995, closes #4997 --- rtdata/languages/Catala | 6 - rtdata/languages/Chinese (Simplified) | 6 - rtdata/languages/Chinese (Traditional) | 6 - rtdata/languages/Czech | 6 - rtdata/languages/Dansk | 6 - rtdata/languages/Deutsch | 6 - rtdata/languages/English (UK) | 6 - rtdata/languages/English (US) | 6 - rtdata/languages/Espanol | 6 - rtdata/languages/Euskara | 6 - rtdata/languages/Francais | 6 - rtdata/languages/Greek | 6 - rtdata/languages/Hebrew | 6 - rtdata/languages/Italiano | 6 - rtdata/languages/Japanese | 6 - rtdata/languages/Latvian | 6 - rtdata/languages/Magyar | 6 - rtdata/languages/Nederlands | 6 - rtdata/languages/Norsk BM | 6 - rtdata/languages/Polish | 6 - rtdata/languages/Polish (Latin Characters) | 6 - rtdata/languages/Portugues (Brasil) | 6 - rtdata/languages/Russian | 6 - rtdata/languages/Serbian (Cyrilic Characters) | 6 - rtdata/languages/Serbian (Latin Characters) | 6 - rtdata/languages/Slovak | 6 - rtdata/languages/Suomi | 6 - rtdata/languages/Swedish | 6 - rtdata/languages/Turkish | 6 - rtdata/languages/default | 16 +- rtgui/lensprofile.cc | 261 +++++++++++------- rtgui/lensprofile.h | 21 +- 32 files changed, 189 insertions(+), 283 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index bd9cb8359..8e2cbc611 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -790,9 +790,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 @@ -1431,9 +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 diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 5478d820a..ef507b9f3 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -878,9 +878,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;圆度 @@ -1507,9 +1504,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 diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index 9404a8a6b..5d8cc106a 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -1093,9 +1093,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 @@ -1827,9 +1824,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index caaba31bb..2b2c257ce 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 @@ -1687,9 +1684,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 diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index aaa58fce2..8dc73105b 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -1088,9 +1088,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 @@ -1824,9 +1821,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 14debc30f..f354c45e9 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -910,9 +910,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. @@ -1816,9 +1813,6 @@ TP_LENSGEOM_AUTOCROP;Auto-Schneiden TP_LENSGEOM_FILL;Auto-Füllen TP_LENSGEOM_LABEL;Objektivkorrekturen TP_LENSPROFILE_LABEL;Objektivkorrekturprofil -TP_LENSPROFILE_USECA;CA korrigieren -TP_LENSPROFILE_USEDIST;Verzeichnung korrigieren -TP_LENSPROFILE_USEVIGN;Vignettierung korrigieren TP_LOCALCONTRAST_AMOUNT;Intensität TP_LOCALCONTRAST_DARKNESS;Dunkle Bereiche TP_LOCALCONTRAST_LABEL;Lokaler Kontrast diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 791a913ee..c53038f87 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -949,9 +949,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 @@ -1790,9 +1787,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index fe7565d28..67c025236 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -861,9 +861,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 @@ -1774,9 +1771,6 @@ !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index b70f2b3a7..84d268726 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -1279,9 +1279,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 @@ -1814,9 +1811,6 @@ 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. diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index 19ec9ba7d..1cd513ef4 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -1089,9 +1089,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 @@ -1825,9 +1822,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 34c74ea67..cfbb04dc3 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 @@ -1787,9 +1784,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 diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index 761d0ea77..d2d7335ac 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -1088,9 +1088,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 @@ -1824,9 +1821,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index d909f15c4..73b2752bf 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -1089,9 +1089,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 @@ -1825,9 +1822,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 173fb2a23..a3fcd92dc 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1130,9 +1130,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. @@ -1689,9 +1686,6 @@ 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 diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index e36e77efb..0ebb061a1 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -892,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プロファイルクリエーター @@ -1805,9 +1802,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;ローカルコントラスト diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index 22847390d..47006479f 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -1089,9 +1089,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 @@ -1825,9 +1822,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 600877671..b64b83f16 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -1361,9 +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 @@ -1918,9 +1915,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection !TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 315868150..ba0873377 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -1575,9 +1575,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 @@ -2198,9 +2195,6 @@ 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. diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index 9ec4fc6e2..00c8532f8 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -1088,9 +1088,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 @@ -1824,9 +1821,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index ec60c307f..67f37623f 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1236,9 +1236,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. @@ -1771,9 +1768,6 @@ 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 diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index a75a3c475..3a3c360b4 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -1236,9 +1236,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. @@ -1771,9 +1768,6 @@ 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 diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index cb2c20e1a..d2c5077f2 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 @@ -1729,9 +1726,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 diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 6769dd724..a0d3d1e85 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 @@ -1222,9 +1219,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;Локальный контраст diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 080824fed..2f5de7b52 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1086,9 +1086,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;Умекшавање @@ -1665,9 +1662,6 @@ 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. diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index b0d929858..061b90fba 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -1086,9 +1086,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 @@ -1665,9 +1662,6 @@ 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. diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index 3f8854ae8..fdad901a6 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -1151,9 +1151,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 @@ -1845,9 +1842,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection !TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index e304366b7..2875e4a0b 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -1090,9 +1090,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 @@ -1825,9 +1822,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 3c56bbcd1..ee2af3156 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1440,9 +1440,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 @@ -2026,9 +2023,6 @@ 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. diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index 812f70f4b..d63d13825 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -1089,9 +1089,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 @@ -1824,9 +1821,6 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtdata/languages/default b/rtdata/languages/default index 02ded5378..7fadbaa72 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -860,10 +860,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 @@ -1772,10 +1768,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_HEADER;Select distortions to correct: +TP_LENSPROFILE_USE_CA;Chromatic aberration +TP_LENSPROFILE_USE_GEOMETRIC;Geometric +TP_LENSPROFILE_USE_VIGNETTING;Vignetting TP_LOCALCONTRAST_AMOUNT;Amount TP_LOCALCONTRAST_DARKNESS;Darkness level TP_LOCALCONTRAST_LABEL;Local Contrast diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index e67a4e589..1158928e5 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -49,103 +49,157 @@ LensProfilePanel::LensProfilePanel() : lf = new LFDbHelper(); } - corrUnchanged = Gtk::manage(new Gtk::RadioButton(M("GENERAL_UNCHANGED"))); - pack_start(*corrUnchanged); - corrGroup = corrUnchanged->get_group(); - corrOff = Gtk::manage(new Gtk::RadioButton(corrGroup, M("GENERAL_NONE"))); - pack_start(*corrOff); + // Main containers: - corrLensfunAuto = Gtk::manage(new Gtk::RadioButton(corrGroup, M("LENSPROFILE_CORRECTION_AUTOMATCH"))); - pack_start(*corrLensfunAuto); + modesGrid = Gtk::manage(new Gtk::Grid()); + modesGrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(modesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - corrLensfunManual = Gtk::manage(new Gtk::RadioButton(corrGroup, M("LENSPROFILE_CORRECTION_MANUAL"))); - pack_start(*corrLensfunManual); + distGrid = Gtk::manage(new Gtk::Grid()); + distGrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(distGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + + + // Mode choice widgets: + + Gtk::Label *corrHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_MODE_HEADER"))); + setExpandAlignProperties(corrHeaderLbl, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + + corrUnchangedRB = Gtk::manage(new Gtk::RadioButton(M("GENERAL_UNCHANGED"))); + corrUnchangedRB->hide(); + corrGroup = corrUnchangedRB->get_group(); + + 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)); + setExpandAlignProperties(corrLcpFileChooser, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + + + // Manually-selected profile widgets: + + lensfunCamerasLbl = Gtk::manage(new Gtk::Label(M("EXIFFILTER_CAMERA"))); + 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); + lensfunCameras->setPreferredWidth(50, 120); + setExpandAlignProperties(lensfunCameras, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + Gtk::CellRendererText* cellRenderer = dynamic_cast(lensfunCameras->get_first_cell()); cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; cellRenderer->property_ellipsize_set() = true; - lensfunCameras->setPreferredWidth(50, 120); + + lensfunLensesLbl = Gtk::manage(new Gtk::Label(M("EXIFFILTER_LENS"))); + 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); + lensfunLenses->setPreferredWidth(50, 120); + setExpandAlignProperties(lensfunLenses, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + 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); - - 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); - 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)); + // LCP file filter config: 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(); 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); + bindCurrentFolder(*corrLcpFileChooser, options.lastLensProfileDir); - hbLCPFile->pack_start(*fcbLCPFile); - pack_start(*hbLCPFile, Gtk::PACK_SHRINK, 4); - 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); + // Choice of properties to correct, applicable to all modes: - conLCPFile = fcbLCPFile->signal_file_set().connect(sigc::mem_fun(*this, &LensProfilePanel::onLCPFileChanged)); //, true); + Gtk::Label *useHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_USE_HEADER"))); + setExpandAlignProperties(useHeaderLbl, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + + 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"))); + + + + // Populate modes grid: + + modesGrid->attach(*corrHeaderLbl, 0, 0, 2, 1); + modesGrid->attach(*corrOffRB, 0, 1, 2, 1); + modesGrid->attach(*corrLensfunAutoRB, 0, 2, 2, 1); + modesGrid->attach(*corrLensfunManualRB, 0, 3, 2, 1); + + modesGrid->attach(*lensfunCamerasLbl, 0, 4, 1, 1); + modesGrid->attach(*lensfunCameras, 1, 4, 1, 1); + modesGrid->attach(*lensfunLensesLbl, 0, 5, 1, 1); + modesGrid->attach(*lensfunLenses, 1, 5, 1, 1); + modesGrid->attach(*warning, 2, 5, 1, 1); + + modesGrid->attach(*corrLcpFileRB, 0, 6, 1, 1); + modesGrid->attach(*corrLcpFileChooser, 1, 6, 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(); + 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)); allowFocusDep = true; } @@ -156,42 +210,42 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa 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); + corrLcpFileRB->set_active(true); break; case procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH : - corrLensfunAuto->set_active(true); + corrLensfunAutoRB->set_active(true); break; case procparams::LensProfParams::LcMode::LENSFUNMANUAL : - corrLensfunManual->set_active(true); + corrLensfunManualRB->set_active(true); break; case procparams::LensProfParams::LcMode::NONE : - corrOff->set_active(true); + corrOffRB->set_active(true); } if (pp->lensProf.lcpFile.empty()) { - Glib::ustring lastFolder = fcbLCPFile->get_current_folder(); - fcbLCPFile->set_current_folder(lastFolder); - fcbLCPFile->unselect_all(); - bindCurrentFolder(*fcbLCPFile, options.lastLensProfileDir); + 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); + corrLcpFileChooser->set_filename(pp->lensProf.lcpFile); - if (corrLcpFile->get_active()) { + if (corrLcpFileRB->get_active()) { updateDisabled(true); } } else { - fcbLCPFile->unselect_filename(fcbLCPFile->get_filename()); + corrLcpFileChooser->unselect_filename(corrLcpFileChooser->get_filename()); updateDisabled(false); } @@ -216,15 +270,15 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa 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(); @@ -237,12 +291,28 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa conUseDist.block(false); } +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 (corrLensfunManual->get_active() || corrLensfunAuto->get_active()) { + if (corrLensfunManualRB->get_active() || corrLensfunAutoRB->get_active()) { const LFDatabase *db = LFDatabase::getInstance(); auto itc = lensfunCameras->get_active(); @@ -303,18 +373,18 @@ void LensProfilePanel::setRawMeta(bool raw, const rtengine::FramesMetaData* pMet 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 = ""; } @@ -358,17 +428,17 @@ void LensProfilePanel::write(rtengine::procparams::ProcParams* pp, ParamsEdited* void LensProfilePanel::onLCPFileChanged() { lcpFileChanged = true; - bool valid = LCPStore::getInstance()->isValidLCPFileName(fcbLCPFile->get_filename()); + 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())); } } @@ -409,10 +479,10 @@ 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(); } } @@ -499,7 +569,7 @@ void LensProfilePanel::onLensfunCameraChanged() if (listener) { disableListener(); - corrLensfunManual->set_active(true); + corrLensfunManualRB->set_active(true); enableListener(); Glib::ustring name = (*iter)[lf->lensfunModelCam.model]; @@ -520,7 +590,7 @@ void LensProfilePanel::onLensfunLensChanged() if (listener) { disableListener(); - corrLensfunManual->set_active(true); + corrLensfunManualRB->set_active(true); enableListener(); Glib::ustring name = (*iter)[lf->lensfunModelLens.prettylens]; @@ -531,14 +601,13 @@ void LensProfilePanel::onLensfunLensChanged() updateLensfunWarning(); } - 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; @@ -548,7 +617,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; @@ -572,8 +641,8 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) } } - 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; @@ -584,8 +653,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; @@ -594,8 +663,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; @@ -612,6 +681,12 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) lcModeChanged = true; updateLensfunWarning(); + if (rbChanged == corrLensfunManualRB) { + setManualParamsVisibility(true); + } else { + setManualParamsVisibility(false); + } + if (listener) { listener->panelChanged(EvLensCorrMode, mode); } @@ -639,18 +714,18 @@ bool LensProfilePanel::checkLensfunCanCorrect(bool automatch) LensProfilePanel::LFDbHelper::LFDbHelper() { #ifdef _OPENMP - #pragma omp parallel sections if (!options.rtSettings.verbose) +#pragma omp parallel sections if (!options.rtSettings.verbose) #endif { #ifdef _OPENMP - #pragma omp section +#pragma omp section #endif { lensfunCameraModel = Gtk::TreeStore::create(lensfunModelCam); fillLensfunCameras(); } #ifdef _OPENMP - #pragma omp section +#pragma omp section #endif { lensfunLensModel = Gtk::TreeStore::create(lensfunModelLens); diff --git a/rtgui/lensprofile.h b/rtgui/lensprofile.h index 692005d01..9b68ad26b 100644 --- a/rtgui/lensprofile.h +++ b/rtgui/lensprofile.h @@ -29,10 +29,6 @@ class LensProfilePanel : public ToolParamBlock, public FoldableToolPanel protected: - 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); @@ -40,14 +36,20 @@ protected: bool isRaw; const rtengine::FramesMetaData* metadata; + Gtk::CheckButton *ckbUseDist, *ckbUseVign, *ckbUseCA; Gtk::RadioButton::Group corrGroup; - Gtk::RadioButton *corrOff; - Gtk::RadioButton *corrLensfunAuto; - Gtk::RadioButton *corrLensfunManual; - Gtk::RadioButton *corrLcpFile; - Gtk::RadioButton *corrUnchanged; + Gtk::RadioButton *corrOffRB; + Gtk::RadioButton *corrLensfunAutoRB; + Gtk::RadioButton *corrLensfunManualRB; + Gtk::RadioButton *corrLcpFileRB; + Gtk::RadioButton *corrUnchangedRB; + Gtk::Grid *modesGrid; + Gtk::Grid *distGrid; + Gtk::Label *lensfunCamerasLbl; + Gtk::Label *lensfunLensesLbl; MyComboBox *lensfunCameras; MyComboBox *lensfunLenses; + MyFileChooserButton *corrLcpFileChooser; Gtk::Image *warning; class LFDbHelper @@ -97,6 +99,7 @@ protected: 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(); public: From 452dec763ca71e50c226dc660cb9c8836c75fef2 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 19 Nov 2018 21:38:43 +0100 Subject: [PATCH 050/116] Show PLC widgets for auto+manual modes #4999 The Profile Lens Correction comboboxes for choosing the camera + lens are now visible in both manual and automatic modes as requested. --- rtgui/lensprofile.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index 1158928e5..8f4253db3 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -681,7 +681,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) lcModeChanged = true; updateLensfunWarning(); - if (rbChanged == corrLensfunManualRB) { + if (rbChanged == corrLensfunManualRB || rbChanged == corrLensfunAutoRB) { setManualParamsVisibility(true); } else { setManualParamsVisibility(false); From c9044485a6c2c0776b15018728041eca94102af9 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 19 Nov 2018 21:49:51 +0100 Subject: [PATCH 051/116] Fix some coverity issues --- rtengine/lcp.cc | 7 ++++++- rtengine/rawimage.cc | 10 +++++----- rtengine/rawimage.h | 2 +- rtexif/rtexif.cc | 23 +++++++++++++---------- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/rtengine/lcp.cc b/rtengine/lcp.cc index a1484cdf6..94be05ac2 100644 --- a/rtengine/lcp.cc +++ b/rtengine/lcp.cc @@ -931,7 +931,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/rawimage.cc b/rtengine/rawimage.cc index 6ef110a03..47ca7085f 100644 --- a/rtengine/rawimage.cc +++ b/rtengine/rawimage.cc @@ -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; @@ -673,7 +673,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 +682,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++) { diff --git a/rtengine/rawimage.h b/rtengine/rawimage.h index 7595ad196..7017f4c1b 100644 --- a/rtengine/rawimage.h +++ b/rtengine/rawimage.h @@ -121,7 +121,7 @@ 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; } diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index c35ba7e0b..947795c20 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -976,16 +976,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); + } } } } @@ -2474,7 +2477,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); From f8fc658d718a9d9caa70e2703d78d16a0b8190a2 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Mon, 19 Nov 2018 22:02:03 +0100 Subject: [PATCH 052/116] Fixes for Nikon Z raw decoding Fix to curve decoding ported from rawspeed See #4998 --- rtengine/dcraw.cc | 14 ++++++++++---- rtengine/dcraw.h | 6 ++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index f61cd94c2..0d5870b6a 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -1303,10 +1303,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++) @@ -2562,6 +2562,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); @@ -6759,8 +6760,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; diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h index f9591b640..dd4831625 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.) @@ -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 { From 772fea2a6a5aa044278f5d9a13e82e9cf4005350 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Mon, 19 Nov 2018 22:06:54 +0100 Subject: [PATCH 053/116] added basic camconst entry for Nikon Z 6 --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index eb4174577..894429426 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1589,6 +1589,11 @@ 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 + }, { // Quality B, 16Mp and 64Mp raw frames "make_model": "OLYMPUS E-M5MarkII", From 093fd9a26a90bd484ad6e294a1f5c1cfbbef7c36 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 19 Nov 2018 22:11:09 +0100 Subject: [PATCH 054/116] Fix broken build --- rtengine/image16.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/image16.h b/rtengine/image16.h index 3431d8afd..940416254 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -80,7 +80,7 @@ public: return save(fname); } - saveAsPNG(const Glib::ustring &fname, int bps = -1) const override + int saveAsPNG(const Glib::ustring &fname, int bps = -1) const override { return savePNG(fname, bps); } From ab2593cf93178c446b2548c63fbf9c3e77a749a3 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 20 Nov 2018 00:10:38 +0100 Subject: [PATCH 055/116] Fix 2 coverity issues --- rtengine/eahd_demosaic.cc | 2 +- rtgui/filebrowser.cc | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/rtengine/eahd_demosaic.cc b/rtengine/eahd_demosaic.cc index aef016386..4ebeb2d66 100644 --- a/rtengine/eahd_demosaic.cc +++ b/rtengine/eahd_demosaic.cc @@ -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/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), From 61d8a4f2544bbfb8ea4991af8ff311079d1266ca Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Tue, 20 Nov 2018 00:12:21 +0100 Subject: [PATCH 056/116] Add classes to curves for css styling (#4986) --- rtgui/coordinateadjuster.cc | 1 - rtgui/diagonalcurveeditorsubgroup.cc | 120 ++++++++++++++++++--------- rtgui/flatcurveeditorsubgroup.cc | 37 ++++++--- 3 files changed, 106 insertions(+), 52 deletions(-) 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/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/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); } From 7e70412090a63b63661cfdcb3cd147113217c54e Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 20 Nov 2018 12:47:25 +0100 Subject: [PATCH 057/116] Constified and shuffled by Floessie #4999 I added the missing "(Unchanged)" mode for Batch Edit, which is currently broken #5002. --- rtengine/rt_math.h | 14 ++ rtgui/lensprofile.cc | 534 +++++++++++++++++++++---------------------- rtgui/lensprofile.h | 118 +++++----- 3 files changed, 336 insertions(+), 330 deletions(-) diff --git a/rtengine/rt_math.h b/rtengine/rt_math.h index 9342f5430..b21d26564 100644 --- a/rtengine/rt_math.h +++ b/rtengine/rt_math.h @@ -56,6 +56,13 @@ constexpr const T& min(const T& a, const T& b) return b < a ? b : a; } +template<> +constexpr const float& min(const float& a, const float& b) +{ + // For consistency reasons we return b instead of a if a == b or a == NaN + return a < b ? a : b; +} + template constexpr const T& min(const T& a, const T& b, const ARGS&... args) { @@ -74,6 +81,13 @@ constexpr const T& max(const T& a, const T& b) return a < b ? b : a; } +template<> +constexpr const float& max(const float& a, const float& b) +{ + // For consistency reasons we return b instead of a if a == b or a == NaN + return b < a ? a : b; +} + template constexpr const T& max(const T& a, const T& b, const ARGS&... args) { diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index 8f4253db3..0d5d9a0c3 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -29,8 +29,6 @@ using namespace rtengine; using namespace rtengine::procparams; -LensProfilePanel::LFDbHelper *LensProfilePanel::lf(nullptr); - LensProfilePanel::LensProfilePanel() : FoldableToolPanel(this, "lensprof", M("TP_LENSPROFILE_LABEL")), lcModeChanged(false), @@ -38,96 +36,89 @@ LensProfilePanel::LensProfilePanel() : 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(); } - - // Main containers: - modesGrid = Gtk::manage(new Gtk::Grid()); modesGrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(modesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - distGrid = Gtk::manage(new Gtk::Grid()); distGrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(distGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - - // Mode choice widgets: - Gtk::Label *corrHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_MODE_HEADER"))); + 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 = Gtk::manage(new Gtk::RadioButton(M("GENERAL_UNCHANGED"))); corrUnchangedRB->hide(); corrGroup = corrUnchangedRB->get_group(); - 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)); setExpandAlignProperties(corrLcpFileChooser, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - - // Manually-selected profile widgets: - lensfunCamerasLbl = Gtk::manage(new Gtk::Label(M("EXIFFILTER_CAMERA"))); 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); lensfunCameras->setPreferredWidth(50, 120); setExpandAlignProperties(lensfunCameras, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - Gtk::CellRendererText* cellRenderer = dynamic_cast(lensfunCameras->get_first_cell()); - cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; - cellRenderer->property_ellipsize_set() = true; + Gtk::CellRendererText* const camerasCellRenderer = static_cast(lensfunCameras->get_first_cell()); + camerasCellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; + camerasCellRenderer->property_ellipsize_set() = true; - lensfunLensesLbl = Gtk::manage(new Gtk::Label(M("EXIFFILTER_LENS"))); 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); lensfunLenses->setPreferredWidth(50, 120); setExpandAlignProperties(lensfunLenses, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - cellRenderer = dynamic_cast(lensfunLenses->get_first_cell()); - cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; - cellRenderer->property_ellipsize_set() = true; + Gtk::CellRendererText* const lensesCellRenderer = static_cast(lensfunLenses->get_first_cell()); + lensesCellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; + lensesCellRenderer->property_ellipsize_set() = true; - warning = Gtk::manage(new Gtk::Image()); warning->set_from_icon_name("dialog-warning", Gtk::ICON_SIZE_LARGE_TOOLBAR); warning->set_tooltip_text(M("TP_LENSPROFILE_LENS_WARNING")); warning->hide(); - - // LCP file filter config: - 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"); corrLcpFileChooser->add_filter(filterLCP); - Glib::ustring defDir = LCPStore::getInstance()->getDefaultCommonDirectory(); + const Glib::ustring defDir = LCPStore::getInstance()->getDefaultCommonDirectory(); if (!defDir.empty()) { #ifdef WIN32 @@ -140,36 +131,27 @@ LensProfilePanel::LensProfilePanel() : bindCurrentFolder(*corrLcpFileChooser, options.lastLensProfileDir); - - // Choice of properties to correct, applicable to all modes: - Gtk::Label *useHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_USE_HEADER"))); + Gtk::Label* const useHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_USE_HEADER"))); setExpandAlignProperties(useHeaderLbl, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - 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"))); - - - // Populate modes grid: modesGrid->attach(*corrHeaderLbl, 0, 0, 2, 1); - modesGrid->attach(*corrOffRB, 0, 1, 2, 1); - modesGrid->attach(*corrLensfunAutoRB, 0, 2, 2, 1); - modesGrid->attach(*corrLensfunManualRB, 0, 3, 2, 1); - - modesGrid->attach(*lensfunCamerasLbl, 0, 4, 1, 1); - modesGrid->attach(*lensfunCameras, 1, 4, 1, 1); - modesGrid->attach(*lensfunLensesLbl, 0, 5, 1, 1); - modesGrid->attach(*lensfunLenses, 1, 5, 1, 1); - modesGrid->attach(*warning, 2, 5, 1, 1); - - modesGrid->attach(*corrLcpFileRB, 0, 6, 1, 1); - modesGrid->attach(*corrLcpFileChooser, 1, 6, 1, 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: @@ -178,15 +160,11 @@ LensProfilePanel::LensProfilePanel() : 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)); @@ -200,8 +178,6 @@ LensProfilePanel::LensProfilePanel() : 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)); - - allowFocusDep = true; } void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited) @@ -216,40 +192,47 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa corrLensfunAutoRB->set_sensitive(true); switch (pp->lensProf.lcMode) { - case procparams::LensProfParams::LcMode::LCP : + case procparams::LensProfParams::LcMode::LCP: { corrLcpFileRB->set_active(true); break; + } - case procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH : + case procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH: { corrLensfunAutoRB->set_active(true); break; + } - case procparams::LensProfParams::LcMode::LENSFUNMANUAL : + case procparams::LensProfParams::LcMode::LENSFUNMANUAL: { corrLensfunManualRB->set_active(true); break; + } - case procparams::LensProfParams::LcMode::NONE : + case procparams::LensProfParams::LcMode::NONE: { corrOffRB->set_active(true); + break; + } } if (pp->lensProf.lcpFile.empty()) { - Glib::ustring lastFolder = corrLcpFileChooser->get_current_folder(); + 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)) { + } + else if (LCPStore::getInstance()->isValidLCPFileName(pp->lensProf.lcpFile)) { corrLcpFileChooser->set_filename(pp->lensProf.lcpFile); if (corrLcpFileRB->get_active()) { updateDisabled(true); } - } else { + } + 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()) { @@ -261,7 +244,7 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa 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()); } } @@ -291,95 +274,18 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa conUseDist.block(false); } -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 *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 (corrLcpFileRB->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LCP; - } else if (corrLensfunManualRB->get_active()) { + } + else if (corrLensfunManualRB->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LENSFUNMANUAL; - } else if (corrLensfunAutoRB->get_active()) { + } + else if (corrLensfunAutoRB->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH; - } else if (corrOffRB->get_active()) { + } + else if (corrOffRB->get_active()) { pp->lensProf.lcMode = procparams::LensProfParams::LcMode::NONE; } @@ -393,7 +299,7 @@ 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]; @@ -403,7 +309,7 @@ void LensProfilePanel::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pp->lensProf.lfCameraModel = ""; } - auto itl = lensfunLenses->get_active(); + const auto itl = lensfunLenses->get_active(); if (itl) { pp->lensProf.lfLens = (*itl)[lf->lensfunModelLens.lens]; @@ -425,10 +331,27 @@ 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(corrLcpFileChooser->get_filename()); + const bool valid = LCPStore::getInstance()->isValidLCPFileName(corrLcpFileChooser->get_filename()); updateDisabled(valid); if (listener) { @@ -450,6 +373,7 @@ void LensProfilePanel::onUseDistChanged() listener->panelChanged(EvLCPUseDist, ckbUseDist->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); } } + void LensProfilePanel::onUseVignChanged() { useVignChanged = true; @@ -458,6 +382,7 @@ void LensProfilePanel::onUseVignChanged() listener->panelChanged(EvLCPUseVign, ckbUseVign->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); } } + void LensProfilePanel::onUseCAChanged() { useCAChanged = true; @@ -467,13 +392,6 @@ void LensProfilePanel::onUseCAChanged() } } -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); @@ -486,83 +404,9 @@ void LensProfilePanel::setBatchMode(bool yes) } } - -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; @@ -572,7 +416,7 @@ void LensProfilePanel::onLensfunCameraChanged() corrLensfunManualRB->set_active(true); enableListener(); - Glib::ustring name = (*iter)[lf->lensfunModelCam.model]; + const Glib::ustring name = (*iter)[lf->lensfunModelCam.model]; listener->panelChanged(EvLensCorrLensfunCamera, name); } } @@ -580,10 +424,9 @@ void LensProfilePanel::onLensfunCameraChanged() updateLensfunWarning(); } - void LensProfilePanel::onLensfunLensChanged() { - auto iter = lensfunLenses->get_active(); + const auto iter = lensfunLenses->get_active(); if (iter) { lensfunLensChanged = true; @@ -593,7 +436,7 @@ void LensProfilePanel::onLensfunLensChanged() corrLensfunManualRB->set_active(true); enableListener(); - Glib::ustring name = (*iter)[lf->lensfunModelLens.prettylens]; + const Glib::ustring name = (*iter)[lf->lensfunModelLens.prettylens]; listener->panelChanged(EvLensCorrLensfunLens, name); } } @@ -601,7 +444,7 @@ 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 @@ -629,14 +472,14 @@ 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(); } } @@ -693,20 +536,6 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) } } - -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 //----------------------------------------------------------------------------- @@ -741,9 +570,9 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras() } std::map> camnames; - auto camlist = LFDatabase::getInstance()->getCameras(); + const auto camlist = LFDatabase::getInstance()->getCameras(); - for (auto &c : camlist) { + for (const auto& c : camlist) { camnames[c.getMake()].insert(c.getModel()); if (options.rtSettings.verbose) { @@ -751,12 +580,12 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras() } } - 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; @@ -764,7 +593,6 @@ void LensProfilePanel::LFDbHelper::fillLensfunCameras() } } - void LensProfilePanel::LFDbHelper::fillLensfunLenses() { if (options.rtSettings.verbose) { @@ -772,11 +600,11 @@ void LensProfilePanel::LFDbHelper::fillLensfunLenses() } std::map> lenses; - auto lenslist = LFDatabase::getInstance()->getLenses(); + const auto lenslist = LFDatabase::getInstance()->getLenses(); - for (auto &l : lenslist) { - auto name = l.getLens(); - auto make = l.getMake(); + for (const auto& l : lenslist) { + const auto& name = l.getLens(); + const auto& make = l.getMake(); lenses[make].insert(name); if (options.rtSettings.verbose) { @@ -784,7 +612,7 @@ void LensProfilePanel::LFDbHelper::fillLensfunLenses() } } - 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; @@ -801,3 +629,157 @@ void LensProfilePanel::LFDbHelper::fillLensfunLenses() } } } + +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 9b68ad26b..42b60a414 100644 --- a/rtgui/lensprofile.h +++ b/rtgui/lensprofile.h @@ -16,46 +16,42 @@ * 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); + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); + void setRawMeta(bool raw, const rtengine::FramesMetaData* pMeta); - 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::CheckButton *ckbUseDist, *ckbUseVign, *ckbUseCA; - Gtk::RadioButton::Group corrGroup; - Gtk::RadioButton *corrOffRB; - Gtk::RadioButton *corrLensfunAutoRB; - Gtk::RadioButton *corrLensfunManualRB; - Gtk::RadioButton *corrLcpFileRB; - Gtk::RadioButton *corrUnchangedRB; - Gtk::Grid *modesGrid; - Gtk::Grid *distGrid; - Gtk::Label *lensfunCamerasLbl; - Gtk::Label *lensfunLensesLbl; - MyComboBox *lensfunCameras; - MyComboBox *lensfunLenses; - MyFileChooserButton *corrLcpFileChooser; - Gtk::Image *warning; + void setBatchMode(bool yes); - 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() @@ -67,7 +63,8 @@ protected: Gtk::TreeModelColumn model; }; - class LFModelLens: public Gtk::TreeModel::ColumnRecord + class LFModelLens final : + public Gtk::TreeModel::ColumnRecord { public: LFModelLens() @@ -86,40 +83,53 @@ protected: Glib::RefPtr lensfunLensModel; LFDbHelper(); + void fillLensfunCameras(); void fillLensfunLenses(); }; - static LFDbHelper *lf; - bool useLensfunChanged; - bool lensfunAutoChanged; - bool lensfunCameraChanged; - bool lensfunLensChanged; + void updateDisabled(bool enable); - bool setLensfunCamera(const Glib::ustring &make, const Glib::ustring &model); - bool setLensfunLens(const Glib::ustring &lens); + 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(); -public: + 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; - LensProfilePanel(); + 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; - 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 From ab80e01451ccd065d9ca9da08f36d74044534122 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 20 Nov 2018 13:06:53 +0100 Subject: [PATCH 058/116] Revert unintentional changes to rt_math.h This reverts a part of commit 7e70412090a63b63661cfdcb3cd147113217c54e. --- rtengine/rt_math.h | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/rtengine/rt_math.h b/rtengine/rt_math.h index b21d26564..9342f5430 100644 --- a/rtengine/rt_math.h +++ b/rtengine/rt_math.h @@ -56,13 +56,6 @@ constexpr const T& min(const T& a, const T& b) return b < a ? b : a; } -template<> -constexpr const float& min(const float& a, const float& b) -{ - // For consistency reasons we return b instead of a if a == b or a == NaN - return a < b ? a : b; -} - template constexpr const T& min(const T& a, const T& b, const ARGS&... args) { @@ -81,13 +74,6 @@ constexpr const T& max(const T& a, const T& b) return a < b ? b : a; } -template<> -constexpr const float& max(const float& a, const float& b) -{ - // For consistency reasons we return b instead of a if a == b or a == NaN - return b < a ? a : b; -} - template constexpr const T& max(const T& a, const T& b, const ARGS&... args) { From ac21918094f1534b6bf7de510f2b50acd7feffea Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Tue, 20 Nov 2018 13:37:23 +0100 Subject: [PATCH 059/116] DNG: apply the BaselineExposure tag only for float DNGs --- rtengine/rawimage.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtengine/rawimage.cc b/rtengine/rawimage.cc index 2fd4d7dc8..ec2f0b78e 100644 --- a/rtengine/rawimage.cc +++ b/rtengine/rawimage.cc @@ -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); } From 1cdd814e1bba2e4c95032972de37f13532bcc5e9 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 20 Nov 2018 14:42:39 +0100 Subject: [PATCH 060/116] Fix coverity issues --- rtengine/lcp.cc | 7 ++++--- rtengine/lcp.h | 4 ++-- rtengine/lj92.c | 4 +++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/rtengine/lcp.cc b/rtengine/lcp.cc index 94be05ac2..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") { diff --git a/rtengine/lcp.h b/rtengine/lcp.h index b50fd335e..d588ac381 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; 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; } From 087e438cdf8f272604a71c61517ae7fc099e7e8e Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 20 Nov 2018 15:45:13 +0100 Subject: [PATCH 061/116] Fix coverity issues --- rtengine/iimage.h | 16 +++++++--- rtengine/rtthumbnail.cc | 68 ++++++++++++++++++++++++----------------- 2 files changed, 52 insertions(+), 32 deletions(-) diff --git a/rtengine/iimage.h b/rtengine/iimage.h index 2def35e06..5598f4f5a 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -1136,15 +1136,21 @@ public: 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) < width * sizeof(T)) { + break; + } } for (int i = 0; i < height; i++) { - fread (g(i), sizeof(T), width, f); + if (fread(g(i), sizeof(T), width, f) < width * sizeof(T)) { + break; + } } for (int i = 0; i < height; i++) { - fread (b(i), sizeof(T), width, f); + if (fread(b(i), sizeof(T), width, f) < width * sizeof(T)) { + break; + } } } @@ -1712,7 +1718,9 @@ public: 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 * width * sizeof(T)) { + break; + } } } diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 2d911087c..fe5fb9b86 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -1934,46 +1934,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; } @@ -2223,14 +2230,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 int bytesRead = fread(&aeHistogram[0], 1, histoBytes, f); fclose (f); + if (bytesRead != histoBytes) { + aeHistogram.reset(); + return false; + } return true; } From 26f8cde2f5e61bdc65e71bfe4e9a2fe816b94f97 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Tue, 20 Nov 2018 16:45:58 +0100 Subject: [PATCH 062/116] camconst: added PDAF lines info for the Nikon Z 6 --- rtengine/camconst.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 894429426..2113c5532 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1592,7 +1592,9 @@ Camera constants: { // 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 + "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 From aa286a32f9f610396f79426a51bf399bddd11f61 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 20 Nov 2018 17:16:02 +0100 Subject: [PATCH 063/116] Fix bug I introduced with last commit --- rtengine/iimage.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtengine/iimage.h b/rtengine/iimage.h index 5598f4f5a..c25425b7d 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -1136,19 +1136,19 @@ public: void readData (FILE *f) { for (int i = 0; i < height; i++) { - if (fread(r(i), sizeof(T), width, f) < width * sizeof(T)) { + if (fread(r(i), sizeof(T), width, f) < width) { break; } } for (int i = 0; i < height; i++) { - if (fread(g(i), sizeof(T), width, f) < width * sizeof(T)) { + if (fread(g(i), sizeof(T), width, f) < width) { break; } } for (int i = 0; i < height; i++) { - if (fread(b(i), sizeof(T), width, f) < width * sizeof(T)) { + if (fread(b(i), sizeof(T), width, f) < width) { break; } } @@ -1718,7 +1718,7 @@ public: void readData (FILE *f) { for (int i = 0; i < height; i++) { - if (fread(r(i), sizeof(T), 3 * width, f) < 3 * width * sizeof(T)) { + if (fread(r(i), sizeof(T), 3 * width, f) < 3 * width) { break; } } From a19f3484ddcbc48c31f80d975b155717e478d8eb Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 20 Nov 2018 20:32:36 +0100 Subject: [PATCH 064/116] Fix some warnings --- rtengine/iimage.h | 8 ++++---- rtengine/rtthumbnail.cc | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rtengine/iimage.h b/rtengine/iimage.h index c25425b7d..5738b4655 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -1136,19 +1136,19 @@ public: void readData (FILE *f) { for (int i = 0; i < height; i++) { - if (fread(r(i), sizeof(T), width, f) < width) { + if (fread(r(i), sizeof(T), width, f) < static_cast(width)) { break; } } for (int i = 0; i < height; i++) { - if (fread(g(i), sizeof(T), width, f) < width) { + if (fread(g(i), sizeof(T), width, f) < static_cast(width)) { break; } } for (int i = 0; i < height; i++) { - if (fread(b(i), sizeof(T), width, f) < width) { + if (fread(b(i), sizeof(T), width, f) < static_cast(width)) { break; } } @@ -1718,7 +1718,7 @@ public: void readData (FILE *f) { for (int i = 0; i < height; i++) { - if (fread(r(i), sizeof(T), 3 * width, f) < 3 * width) { + if (fread(r(i), sizeof(T), 3 * width, f) < 3 * static_cast(width)) { break; } } diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index fe5fb9b86..0ca2c24ec 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -2237,7 +2237,7 @@ bool Thumbnail::readAEHistogram (const Glib::ustring& fname) } else { aeHistogram(65536 >> aeHistCompression); const size_t histoBytes = (65536 >> aeHistCompression) * sizeof(aeHistogram[0]); - const int bytesRead = fread(&aeHistogram[0], 1, histoBytes, f); + const size_t bytesRead = fread(&aeHistogram[0], 1, histoBytes, f); fclose (f); if (bytesRead != histoBytes) { aeHistogram.reset(); From e7a04bb77eb8fe8a397f0016c2d02595ed69f073 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 20 Nov 2018 21:23:37 +0100 Subject: [PATCH 065/116] Fix coverity issues --- rtgui/thumbbrowserbase.cc | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 1518428b7..fdb551f45 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -166,33 +166,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 +341,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); From 24a80c60eef86e66366ede383a0a2cb2b803c85e Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Tue, 20 Nov 2018 22:14:04 +0100 Subject: [PATCH 066/116] Make WB-Picker button look like other toolbuttons (#4967) --- rtdata/languages/default | 1 + rtdata/themes/TooWaBlue-GTK3-20_.css | 397 ++++++++++++++++----------- rtgui/whitebalance.cc | 59 ++-- 3 files changed, 276 insertions(+), 181 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 7fadbaa72..5b11c5c1d 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2273,6 +2273,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;WB-Picker TP_WBALANCE_SHADE;Shade TP_WBALANCE_SIZE;Size: TP_WBALANCE_SOLUX35;Solux 3500K diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index 3bc6e0bdc..b7b5175a7 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.96 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,7 @@ undershoot { } label { - margin: 0 0.166666666666666666em; + margin: 0 0.19em; } /*** Frames ************************************************************************************/ @@ -179,11 +179,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 +188,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 +228,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 +235,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 *****************************************************************************/ @@ -397,7 +390,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 +466,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 +539,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 +695,7 @@ scrollbar:not(.overlay-indicator):hover { /*** Scale**************************************************************************************/ scale { padding: 0; - min-height: 1.833333333333333333em; + min-height: 1.833333333333333333em; margin: 0 -0.333333333333333333em; } @@ -746,6 +744,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 +819,7 @@ progressbar.vertical trough.empty { progressbar trough.empty progress { border-color: transparent; background-image: none; + box-shadow: none; } /*** end ***************************************************************************************/ @@ -920,15 +920,26 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { min-height: 5em; } +#ToolPanelNotebook { + background-color: @bg-dark-grey; +} +#ToolPanelNotebook > header { + border-bottom: 0.083333333333333333em solid @view-grid-border; + margin-left: 0.083333333333333333em; + margin-right: 0.083333333333333333em; +} #ToolPanelNotebook > header tabs { margin-bottom: 0.333333333333333333em; } #ToolPanelNotebook > header tab > box > image{ min-height: 2em; min-width: 2em; - padding-top: 0.25em; - padding-bottom: 0.333333333333333333em; - margin: 0; + margin: 0.25em 0 0.333333333333333333em; + padding: 0; +} +#ToolPanelNotebook > stack { + background-color: @bg-dark-grey; + padding: 0.5em 0; } #RightNotebook > header { @@ -984,7 +995,11 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { padding-left: 0.333333333333333333em; } #MetaPanelNotebook > header tab label{ - margin: 0.083333333333333333em 0.083333333333333333em 0.166666666666666666em; + margin: 0.083333333333333333em 0.083333333333333333em 0.19em; +} +#MetaPanelNotebook > stack { + background-color: @bg-dark-grey; + padding: 0 0 0.5em 0; } #MetaPanelNotebook > stack > box { @@ -993,7 +1008,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 +1019,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; @@ -1048,7 +1059,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; @@ -1100,15 +1117,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 +1147,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 +1161,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 +1169,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 +1181,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 +1223,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 +1238,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 +1294,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 +1341,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 +1358,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 +1448,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 +1464,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,6 +1474,8 @@ 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 */ @@ -1471,16 +1516,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 +1541,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 +1555,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 +1574,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 +1626,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 +1640,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 +1675,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 +1696,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 { @@ -1686,7 +1713,7 @@ window treeview > header image { } 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; @@ -1767,13 +1794,13 @@ popover button.text-button:active { /*** Checkbox & Radio **************************************************************************/ checkbutton { padding: 0; - margin: 0.083333333333333333em 0.166666666666666666em; - min-height: 1.666666666666666666em; + margin: 0.083333333333333333em 0.19em; + min-height: 1.666666666666666666em;/*x*/ } radiobutton { padding: 0.083333333333333333em 0; - margin: 0.166666666666666666em; - min-height: 1.666666666666666666em; + margin: 0.19em; + min-height: 1.666666666666666666em;/*x*/ } check, @@ -1803,7 +1830,7 @@ radio:disabled { radiobutton label, checkbutton label { - margin: 0 0.416666666666666666em; + margin: 0 0.583333333333333333em 0 0.416666666666666666em; padding: 0; } @@ -1828,30 +1855,43 @@ frame > checkbutton check{ /*** 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 +1900,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.333333333333333333em; + margin-bottom: 0.333333333333333333em; +} +/**/ #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 +1994,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/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 1257a9c58..50cfdbc29 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")); From 0e8069c1d8edca845a24250ceee608777ea3da54 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 21 Nov 2018 00:37:55 +0100 Subject: [PATCH 067/116] Fix another coverity issue --- rtexif/rtexif.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index 947795c20..893d0fe22 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -2197,11 +2197,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) { From bba0f72ddcc62f42159ad88213d75a813e2a636d Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 21 Nov 2018 01:12:54 +0100 Subject: [PATCH 068/116] Revision of interface strings Changes for consistency, grammar, clarity, and making optimal use of screen space. --- rtdata/languages/Catala | 39 +++-------- rtdata/languages/Chinese (Simplified) | 40 +++--------- rtdata/languages/Chinese (Traditional) | 41 +++--------- rtdata/languages/Czech | 34 ++-------- rtdata/languages/Dansk | 41 +++--------- rtdata/languages/Deutsch | 24 +------ rtdata/languages/English (UK) | 43 +++---------- rtdata/languages/English (US) | 43 +++---------- rtdata/languages/Espanol | 39 +++-------- rtdata/languages/Euskara | 41 +++--------- rtdata/languages/Francais | 26 +------- rtdata/languages/Greek | 41 +++--------- rtdata/languages/Hebrew | 41 +++--------- rtdata/languages/Italiano | 39 +++-------- rtdata/languages/Japanese | 24 +------ rtdata/languages/Latvian | 41 +++--------- rtdata/languages/Magyar | 39 +++-------- rtdata/languages/Nederlands | 38 +++-------- rtdata/languages/Norsk BM | 41 +++--------- rtdata/languages/Polish | 39 +++-------- rtdata/languages/Polish (Latin Characters) | 39 +++-------- rtdata/languages/Portugues (Brasil) | 32 ++-------- rtdata/languages/Russian | 39 +++-------- rtdata/languages/Serbian (Cyrilic Characters) | 39 +++-------- rtdata/languages/Serbian (Latin Characters) | 39 +++-------- rtdata/languages/Slovak | 39 +++-------- rtdata/languages/Suomi | 41 +++--------- rtdata/languages/Swedish | 36 +++-------- rtdata/languages/Turkish | 41 +++--------- rtdata/languages/default | 64 ++++++++----------- rtgui/colorappearance.cc | 26 ++++---- rtgui/preferences.cc | 12 ++-- 32 files changed, 273 insertions(+), 928 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 8e2cbc611..3a4b18fc3 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 @@ -1483,7 +1479,6 @@ 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_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' @@ -1498,8 +1493,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 @@ -1548,7 +1543,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1567,15 +1562,12 @@ 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_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 @@ -1669,11 +1661,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1703,8 +1691,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,8 +1708,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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 @@ -1745,9 +1729,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1980,7 +1961,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 @@ -2032,10 +2013,7 @@ 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_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) @@ -2073,7 +2051,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index ef507b9f3..8442cdcd5 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -514,7 +514,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 +533,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 +589,7 @@ PREFERENCES_MONPROFILE;默认色彩配置文件 PREFERENCES_MONPROFILE_WARNOSX;受MacOS限制, 仅支持sRGB PREFERENCES_MULTITAB;多编辑器标签模式 PREFERENCES_MULTITABDUALMON;多编辑器标签独立模式 -PREFERENCES_NAVGUIDEBRUSH;导航器引导颜色 +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;导航器引导颜色 PREFERENCES_NAVIGATIONFRAME;导航器 PREFERENCES_OUTDIR;输出路径 PREFERENCES_OUTDIRFOLDER;保存至文件夹 @@ -628,13 +626,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 +649,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 到输出文件 @@ -1539,7 +1533,6 @@ 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_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 @@ -1547,8 +1540,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 @@ -1558,7 +1551,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_EDITORCMDLINE;Custom command line !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 @@ -1630,11 +1623,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1664,8 +1653,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,8 +1667,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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. @@ -1697,9 +1682,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 @@ -1955,7 +1937,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 @@ -2010,10 +1992,7 @@ 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_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) @@ -2051,7 +2030,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index 5d8cc106a..bc63c9f8b 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;暗部不足闕值 @@ -1218,7 +1217,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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 +1233,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 +1250,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 +1261,7 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1311,7 +1307,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 +1330,9 @@ 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_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1352,7 +1345,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 @@ -1472,11 +1464,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1506,8 +1494,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. @@ -1525,8 +1511,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !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 @@ -1548,9 +1532,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1899,7 +1880,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 @@ -1958,10 +1939,7 @@ 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_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) @@ -1999,7 +1977,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 2b2c257ce..c7b64c745 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -978,7 +978,6 @@ PARTIALPASTE_WHITEBALANCE;Nastavení bílé PREFERENCES_ADD;Přidat 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. @@ -1011,7 +1010,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 @@ -1033,7 +1031,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ů @@ -1090,7 +1087,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;Barva vodítek navigátoru PREFERENCES_NAVIGATIONFRAME;Navigátor PREFERENCES_OUTDIR;Výstupní složka PREFERENCES_OUTDIRFOLDER;Ulož do souboru @@ -1128,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 @@ -1154,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 @@ -1312,11 +1305,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolutní jas prostředí prohlížení\n(obvykle 16cd/m²). TP_COLORAPP_ALGO;Algoritmus TP_COLORAPP_ALGO_ALL;Vše TP_COLORAPP_ALGO_JC;Světlost + Barevnost (JC) @@ -1346,8 +1335,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. @@ -1365,8 +1352,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é @@ -1388,9 +1373,6 @@ 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_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é @@ -1550,7 +1532,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 @@ -1817,7 +1799,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) @@ -1854,7 +1835,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) @@ -2321,7 +2301,7 @@ 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 diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index 8dc73105b..495b050f8 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 @@ -1215,7 +1214,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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. @@ -1232,8 +1230,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 @@ -1249,7 +1247,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 @@ -1261,8 +1258,7 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1308,7 +1304,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1331,12 +1327,9 @@ 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_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1349,7 +1342,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 @@ -1469,11 +1461,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1503,8 +1491,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. @@ -1522,8 +1508,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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 @@ -1545,9 +1529,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1895,7 +1876,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 @@ -1956,10 +1937,7 @@ 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_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) @@ -1997,7 +1975,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index f354c45e9..e73f1c6d9 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -1087,7 +1087,6 @@ PARTIALPASTE_WHITEBALANCE;Weißabgleich PREFERENCES_ADD;HINZU 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 PREFERENCES_BATCH_PROCESSING;Stapelverarbeitung PREFERENCES_BEHADDALL;Alle hinzufügen PREFERENCES_BEHADDALLHINT;Setzt alle Parameter auf Hinzufügen.\nAnpassungen der Parameter in der Hintergrundstapelverarbeitung werden als Deltas zu den gespeicherten Werten interpretiert. @@ -1124,7 +1123,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 @@ -1146,7 +1144,6 @@ 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_FILEFORMAT;Dateiformat PREFERENCES_FLATFIELDFOUND;Gefunden PREFERENCES_FLATFIELDSDIR;Weißbild-Verzeichnis @@ -1203,7 +1200,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;Farbe der Navigationshilfe PREFERENCES_NAVIGATIONFRAME;Navigation PREFERENCES_OUTDIR;Ausgabeverzeichnis PREFERENCES_OUTDIRFOLDER;In dieses Verzeichnis speichern @@ -1243,10 +1240,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. @@ -1270,7 +1264,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 @@ -1434,11 +1427,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute Luminanz der Betrachtungsumgebung\n(normalerweise 16cd/m²). TP_COLORAPP_ALGO;Algorithmus TP_COLORAPP_ALGO_ALL;Alle TP_COLORAPP_ALGO_JC;Helligkeit + Buntheit (JH) @@ -1468,8 +1457,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. @@ -1487,8 +1474,6 @@ 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 @@ -1510,9 +1495,6 @@ 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_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 @@ -2391,5 +2373,5 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - !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_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_TM_FATTAL_THRESHOLD;Detail diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index c53038f87..2e251a8a9 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -41,15 +41,13 @@ PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid colour shift PARTIALPASTE_RAW_FALSECOLOR;False colour suppression 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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1113,7 +1111,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PARTIALPASTE_WHITEBALANCE;White balance !PREFERENCES_ADD;Add !PREFERENCES_APPLNEXTSTARTUP;restart required -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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. @@ -1133,8 +1130,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 @@ -1168,10 +1165,9 @@ 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_FILEFORMAT;File format !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1260,13 +1256,10 @@ 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_SET;Set !PREFERENCES_SHOWBASICEXIF;Show basic Exif info !PREFERENCES_SHOWDATETIME;Show date and time @@ -1286,7 +1279,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 @@ -1368,7 +1360,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 @@ -1439,11 +1431,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1467,8 +1455,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. @@ -1485,8 +1471,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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 @@ -1506,9 +1490,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1859,7 +1840,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 @@ -1925,10 +1906,7 @@ 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_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) @@ -1966,7 +1944,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 67c025236..84c03e687 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -1036,7 +1036,6 @@ !PREFERENCES_ADD;Add !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_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. @@ -1057,8 +1056,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 @@ -1074,7 +1073,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 @@ -1093,10 +1091,9 @@ !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_FILEFORMAT;File format !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1153,7 +1150,7 @@ !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_APPEARANCE_NAVGUIDECOLOR;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OUTDIR;Output Directory !PREFERENCES_OUTDIRFOLDER;Save to folder @@ -1192,14 +1189,10 @@ !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_SET;Set !PREFERENCES_SHOWBASICEXIF;Show basic Exif info !PREFERENCES_SHOWDATETIME;Show date and time @@ -1220,7 +1213,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 @@ -1305,7 +1297,7 @@ !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_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 @@ -1383,11 +1375,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1417,8 +1405,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. @@ -1436,8 +1422,6 @@ !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,9 +1443,6 @@ !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 @@ -1846,7 +1827,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 @@ -1914,10 +1895,7 @@ !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_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) @@ -1955,7 +1933,6 @@ !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) diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index 84d268726..ceaff3887 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -735,7 +735,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 +753,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 +793,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 +814,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 +967,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminancia absoluta del entorno de visualización\n(usualmente 16cd/m²) TP_COLORAPP_ALGO;Algoritmo TP_COLORAPP_ALGO_ALL;Todo TP_COLORAPP_ALGO_JC;Claridad + Crominancia (JC) @@ -1005,8 +997,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 +1011,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 @@ -1848,7 +1836,6 @@ 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_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1857,8 +1844,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 @@ -1905,15 +1892,12 @@ 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_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 @@ -1946,9 +1930,6 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !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 @@ -2060,7 +2041,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 @@ -2107,10 +2088,7 @@ 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_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) @@ -2148,7 +2126,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index 1cd513ef4..5b8004105 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 @@ -1216,7 +1215,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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. @@ -1233,8 +1231,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 @@ -1250,7 +1248,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 @@ -1262,8 +1259,7 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1309,7 +1305,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1332,12 +1328,9 @@ 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_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1350,7 +1343,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 @@ -1470,11 +1462,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1504,8 +1492,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. @@ -1523,8 +1509,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !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,9 +1530,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1896,7 +1877,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 @@ -1957,10 +1938,7 @@ 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_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) @@ -1998,7 +1976,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index cfbb04dc3..e6c9d83d7 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -1038,7 +1038,6 @@ PARTIALPASTE_WHITEBALANCE;Balance des blancs PREFERENCES_ADD;Ajoute 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 @@ -1064,7 +1063,7 @@ 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 @@ -1080,7 +1079,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 @@ -1102,7 +1100,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 @@ -1159,7 +1156,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;Couleur du cadre dans le Navigateur PREFERENCES_NAVIGATIONFRAME;Navigation PREFERENCES_OUTDIR;Dossier de sortie PREFERENCES_OUTDIRFOLDER;Dossier de sauvegarde @@ -1199,10 +1196,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. @@ -1226,7 +1220,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 @@ -1390,11 +1383,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminance absolue de l'environnement de visionnage\n(souvent 16cd/m²) TP_COLORAPP_ALGO;Algorithme TP_COLORAPP_ALGO_ALL;Tout TP_COLORAPP_ALGO_JC;Luminosité + Chroma (JC) @@ -1424,8 +1413,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 @@ -1443,8 +1430,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 @@ -1466,9 +1451,6 @@ 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_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 @@ -1949,7 +1931,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) @@ -1987,7 +1968,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) diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index d2d7335ac..bf8f6a01f 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;Κατώφλι ψαλιδίσματος σκιών @@ -1215,7 +1214,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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. @@ -1232,8 +1230,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 @@ -1249,7 +1247,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 @@ -1261,8 +1258,7 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1308,7 +1304,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1331,12 +1327,9 @@ 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_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1349,7 +1342,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 @@ -1469,11 +1461,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1503,8 +1491,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,8 +1508,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !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 @@ -1545,9 +1529,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1895,7 +1876,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 @@ -1956,10 +1937,7 @@ 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_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) @@ -1997,7 +1975,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index 73b2752bf..b33799a85 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;סף קיצוץ תחתון @@ -1216,7 +1215,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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. @@ -1233,8 +1231,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 @@ -1250,7 +1248,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 @@ -1262,8 +1259,7 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1309,7 +1305,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1332,12 +1328,9 @@ 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_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1350,7 +1343,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 @@ -1470,11 +1462,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1504,8 +1492,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. @@ -1523,8 +1509,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !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,9 +1530,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1896,7 +1877,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 @@ -1957,10 +1938,7 @@ 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_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) @@ -1998,7 +1976,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index a3fcd92dc..bc63bc3aa 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -640,7 +640,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 +658,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 +698,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 +719,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 +872,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminanza assoluta dell'ambiente di visualizzazione\n(normalmente 16cd/m²). TP_COLORAPP_ALGO;Algoritmo TP_COLORAPP_ALGO_ALL;Tutto TP_COLORAPP_ALGO_JC;Chiarezza + Croma (JC) @@ -910,8 +902,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 +916,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 @@ -1719,7 +1707,6 @@ 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_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1729,8 +1716,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 @@ -1777,15 +1764,12 @@ 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_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 @@ -1818,9 +1802,6 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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 @@ -1998,7 +1979,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 @@ -2048,10 +2029,7 @@ 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_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) @@ -2089,7 +2067,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 0ebb061a1..c80a64425 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -1067,7 +1067,6 @@ PARTIALPASTE_WHITEBALANCE;ホワイトバランス PREFERENCES_ADD;追加 PREFERENCES_APPLNEXTSTARTUP;要再起動 PREFERENCES_AUTOMONPROFILE;OSのメインモニター・プロファイルを使用 -PREFERENCES_AUTOSAVE_TP_OPEN;プログラム終了の前に、機能パネルの開閉状態を自動的に保存する PREFERENCES_BATCH_PROCESSING;バッチ処理 PREFERENCES_BEHADDALL;すべて '追加' PREFERENCES_BEHADDALLHINT;すべてのパラメータを 追加モードにします\nバッチツールパネルで設定される調整値が、各画像の既定値に加算されます @@ -1105,7 +1104,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;キーフォーマット PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;名前 PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;タグID PREFERENCES_CUSTPROFBUILDPATH;実行ファイルのパス -PREFERENCES_CUTOVERLAYBRUSH;切り抜きマスクカラー 不透明度 PREFERENCES_D50;5000K PREFERENCES_D50_OLD;5000k PREFERENCES_D55;5500K @@ -1127,7 +1125,6 @@ PREFERENCES_EDITORCMDLINE;カスタムコマンドライン PREFERENCES_EDITORLAYOUT;編集 レイアウト PREFERENCES_EXTERNALEDITOR;外部エディタ PREFERENCES_FBROWSEROPTS;ファイルブラウザ/サムネイルのオプション -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;ファイルブラウザでの一行のツールバー (低解像度表示用に選択解除) PREFERENCES_FILEFORMAT;ファイル形式 PREFERENCES_FLATFIELDFOUND;検出 PREFERENCES_FLATFIELDSDIR;フラットフィールド・ディレクトリ @@ -1184,7 +1181,7 @@ PREFERENCES_MONPROFILE;デフォルトのモニタープロファイル PREFERENCES_MONPROFILE_WARNOSX;MacのOSの制約により、サポート出来るのはsRGBだけです PREFERENCES_MULTITAB;マルチ編集タブモード PREFERENCES_MULTITABDUALMON;独自のウィンドウモードによるマルチ編集タブ -PREFERENCES_NAVGUIDEBRUSH;ナビゲーターのガイドカラー +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;ナビゲーターのガイドカラー PREFERENCES_NAVIGATIONFRAME;ナビゲーション PREFERENCES_OUTDIR;出力ディレクトリ PREFERENCES_OUTDIRFOLDER;フォルダに保存 @@ -1224,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ファイルで閉められている場合、このオプションを有効にすることで、サムネイル画像生成の効率が上がります @@ -1251,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レンダリング @@ -1414,11 +1407,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;観視環境の絶対輝度\n(通常 16cd/m2) TP_COLORAPP_ALGO;アルゴリズム TP_COLORAPP_ALGO_ALL;すべて TP_COLORAPP_ALGO_JC;明度 + 色度 (JC) @@ -1448,8 +1437,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*モードの色域制御を許可 @@ -1467,8 +1454,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;暗い @@ -1490,9 +1475,6 @@ TP_COLORAPP_TONECIE;CIECAM02 明るさ(Q)を使用してトーンマッピング TP_COLORAPP_TONECIE_TOOLTIP;このオプションが無効になっている場合、トーンマッピングはL*a*b*空間を使用します\nこのオプションが有効になっている場合、トーンマッピングは、CIECAM02を使用します\nトーンマッピング(L*a*b*/CIECAM02)ツールを有効にするには、この設定を有効にする必要があります 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;バランス @@ -1948,7 +1930,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(色相) @@ -1986,7 +1967,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;シャープマスク (全てウェーブレット) diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index 47006479f..73ca345ba 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 @@ -1216,7 +1215,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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. @@ -1233,8 +1231,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 @@ -1250,7 +1248,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 @@ -1262,8 +1259,7 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1309,7 +1305,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1332,12 +1328,9 @@ 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_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1350,7 +1343,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 @@ -1470,11 +1462,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1504,8 +1492,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. @@ -1523,8 +1509,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !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,9 +1530,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1896,7 +1877,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 @@ -1957,10 +1938,7 @@ 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_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) @@ -1998,7 +1976,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index b64b83f16..08c5b6277 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 @@ -1421,7 +1417,6 @@ 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_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' @@ -1436,8 +1431,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 @@ -1487,7 +1482,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1506,15 +1501,12 @@ 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_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 @@ -1622,11 +1614,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1656,8 +1644,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. @@ -1675,8 +1661,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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 @@ -1698,9 +1682,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1972,7 +1953,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 @@ -2024,10 +2005,7 @@ 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_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) @@ -2065,7 +2043,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index ba0873377..b6ee0d50b 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -935,7 +935,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 +953,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 +1007,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;Navigator randkleur PREFERENCES_NAVIGATIONFRAME;Navigatie PREFERENCES_OUTDIR;Uitvoermap PREFERENCES_OUTDIRFOLDER;Sla op in map @@ -1044,13 +1042,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 +1209,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminantie van de weergaveomgeving \n(gebruikelijk 16cd/m²) TP_COLORAPP_ALGO;Algoritme TP_COLORAPP_ALGO_ALL;Alle TP_COLORAPP_ALGO_JC;Lichtheid + Chroma (JC) @@ -1248,8 +1239,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 +1253,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 @@ -1702,7 +1689,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) @@ -1737,7 +1723,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) @@ -2214,14 +2199,13 @@ 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_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,9 +2219,8 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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 @@ -2262,9 +2245,6 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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 @@ -2316,7 +2296,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 diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index 00c8532f8..83affd841 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 @@ -1215,7 +1214,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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. @@ -1232,8 +1230,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 @@ -1249,7 +1247,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 @@ -1261,8 +1258,7 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1308,7 +1304,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1331,12 +1327,9 @@ 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_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1349,7 +1342,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 @@ -1469,11 +1461,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1503,8 +1491,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. @@ -1522,8 +1508,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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 @@ -1545,9 +1529,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1895,7 +1876,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 @@ -1956,10 +1937,7 @@ 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_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) @@ -1997,7 +1975,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 67f37623f..b5f1ad546 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -690,7 +690,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 +708,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 +748,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora PREFERENCES_OUTDIR;Katalog wyjściowy PREFERENCES_OUTDIRFOLDER;Zapisz do katalogu PREFERENCES_OUTDIRFOLDERHINT;Umieszcza zapisywane zdjęcia w wybranym katalogu @@ -771,9 +769,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 +922,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Bezwzględna luminancja widowni\n(zazwyczaj 16cd/m²). TP_COLORAPP_ALGO;Algorytm TP_COLORAPP_ALGO_ALL;Wszystkie TP_COLORAPP_ALGO_JC;Światłość + Chroma (JC) @@ -960,8 +952,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 +966,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 @@ -1796,7 +1784,6 @@ 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_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1805,8 +1792,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 @@ -1853,15 +1840,12 @@ 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_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 @@ -1894,9 +1878,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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 @@ -2007,7 +1988,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 @@ -2054,10 +2035,7 @@ 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_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 +2073,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index 3a3c360b4..aa8fb9ee7 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -690,7 +690,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 +708,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 +748,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora PREFERENCES_OUTDIR;Katalog wyjsciowy PREFERENCES_OUTDIRFOLDER;Zapisz do katalogu PREFERENCES_OUTDIRFOLDERHINT;Umieszcza zapisywane zdjecia w wybranym katalogu @@ -771,9 +769,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 +922,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Bezwzgledna luminancja widowni\n(zazwyczaj 16cd/m²). TP_COLORAPP_ALGO;Algorytm TP_COLORAPP_ALGO_ALL;Wszystkie TP_COLORAPP_ALGO_JC;Swiatlosc + Chroma (JC) @@ -960,8 +952,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 +966,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 @@ -1796,7 +1784,6 @@ 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_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1805,8 +1792,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 @@ -1853,15 +1840,12 @@ 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_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 @@ -1894,9 +1878,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !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 @@ -2007,7 +1988,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 @@ -2054,10 +2035,7 @@ 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_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 +2073,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index d2c5077f2..a627f868e 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -1008,7 +1008,6 @@ PARTIALPASTE_WHITEBALANCE;Balanço de branco PREFERENCES_ADD;Adicionar 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. @@ -1041,7 +1040,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 @@ -1063,7 +1061,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 @@ -1120,7 +1117,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;Cor do guia do navegador PREFERENCES_NAVIGATIONFRAME;Navegação PREFERENCES_OUTDIR;Diretório de Saída PREFERENCES_OUTDIRFOLDER;Salvar na pasta @@ -1158,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 @@ -1184,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 @@ -1348,11 +1341,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminância absoluta do ambiente de visualização\n(usualmente 16cd/m²). TP_COLORAPP_ALGO;Algorimo TP_COLORAPP_ALGO_ALL;Tudo TP_COLORAPP_ALGO_JC;Claridade + Croma (JC) @@ -1382,8 +1371,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*. @@ -1401,8 +1388,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 @@ -1424,9 +1409,6 @@ 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_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 @@ -1868,7 +1850,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) @@ -1905,7 +1886,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) @@ -2294,6 +2274,6 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !TP_RAWCACORR_AUTOIT;Iterations !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_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_TM_FATTAL_THRESHOLD;Detail diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index a0d3d1e85..93dd6cdb5 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -720,7 +720,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Формат ключей PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Имя PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Путь к исполняемому файлу -PREFERENCES_CUTOVERLAYBRUSH; Цвет/прозрачность маски обрезки PREFERENCES_D50;5000K PREFERENCES_D50_OLD;5000K PREFERENCES_D55;5500K @@ -740,7 +739,6 @@ PREFERENCES_DIRSOFTWARE;Каталог установки PREFERENCES_EDITORLAYOUT;Тип редактора PREFERENCES_EXTERNALEDITOR;Внешний редактор PREFERENCES_FBROWSEROPTS;Настройки -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Однорядная панель обозревателя файлов\n(отключите для экранов с низким разрешением) PREFERENCES_FILEFORMAT;Формат файлов PREFERENCES_FLATFIELDFOUND;Найдено PREFERENCES_FLATFIELDSDIR;Папка с файлами плоских полей @@ -805,9 +803,7 @@ PREFERENCES_PROFILESAVECACHE;Сохранять профиль обработк PREFERENCES_PROFILESAVEINPUT;Сохранять профиль обработки в одном каталоге с исходным файлом PREFERENCES_PROPERTY;Свойство PREFERENCES_PSPATH;Каталог установки Adobe Photoshop -PREFERENCES_SELECTFONT;Выбрать шрифт PREFERENCES_SELECTLANG;Выбрать язык -PREFERENCES_SELECTTHEME;Выбрать тему PREFERENCES_SET;Установить PREFERENCES_SHOWBASICEXIF;Показывать основные данные Exif PREFERENCES_SHOWDATETIME;Показывать дату и время @@ -826,7 +822,6 @@ PREFERENCES_TAB_DYNAMICPROFILE;Динамические профили PREFERENCES_TAB_GENERAL;Основное PREFERENCES_TAB_IMPROC;Обработка изображения PREFERENCES_TAB_SOUND;Звуки -PREFERENCES_THEME;Тема PREFERENCES_TP_LABEL;Панель инструментов: PREFERENCES_TP_VSCROLLBAR;Спрятать вертикальную полосу прокрутки PREFERENCES_USEBUNDLEDPROFILES;Использовать предустановленный профиль @@ -965,11 +960,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Абсолютная яркость при просмотре.\n(Обычно 16 кд/м²) TP_COLORAPP_ALGO;Алгоритм TP_COLORAPP_ALGO_ALL;Все TP_COLORAPP_ALGO_JC;Светимость + Цвет (JC) @@ -1002,8 +993,6 @@ 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_CROP_FIXRATIO;Пропорция: TP_CROP_GTDIAGONALS;Правило диагоналей TP_CROP_GTEPASSPORT;Биометрический паспорт @@ -1793,7 +1782,6 @@ 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_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1803,8 +1791,8 @@ 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 @@ -1827,7 +1815,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1842,11 +1830,9 @@ 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_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview @@ -1875,8 +1861,6 @@ 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_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 @@ -1911,9 +1895,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 @@ -2032,7 +2013,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. @@ -2067,10 +2048,7 @@ 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_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 @@ -2104,7 +2082,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 2f5de7b52..c831dbddb 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -610,7 +610,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Кључни формати PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Назив PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;БрОзнаке PREFERENCES_CUSTPROFBUILDPATH;Извршна путања -PREFERENCES_CUTOVERLAYBRUSH;Маска исецања боје/провидног PREFERENCES_D50;5000K PREFERENCES_D55;5500K PREFERENCES_D60;6000K @@ -629,7 +628,6 @@ PREFERENCES_DIRSOFTWARE;Директоријум са инсталацијом PREFERENCES_EDITORLAYOUT;Размештај програма PREFERENCES_EXTERNALEDITOR;Спољни уређивач PREFERENCES_FBROWSEROPTS;Опције разгледача датотеке -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Прикажи алатке у једном реду PREFERENCES_FILEFORMAT;Формат датотеке PREFERENCES_FLATFIELDFOUND;Нађено PREFERENCES_FLATFIELDSDIR;Директоријум за равна поља @@ -688,9 +686,7 @@ PREFERENCES_PROFILESAVECACHE;Сачувај параметре обраде у PREFERENCES_PROFILESAVEINPUT;Сачувај парамтре обраде поред улазне датотеке PREFERENCES_PROPERTY;Особина PREFERENCES_PSPATH;Директоријум са инсталираним Адобе Фотошопом -PREFERENCES_SELECTFONT;Изаберите фонт PREFERENCES_SELECTLANG;Језик -PREFERENCES_SELECTTHEME;Тема PREFERENCES_SET;Постави PREFERENCES_SHOWBASICEXIF;Прикажи основне Exif податке PREFERENCES_SHOWDATETIME;Прикажи датум и време @@ -841,11 +837,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Апсолутна луминозност окружења за преглед\n(обично 16cd/m²). TP_COLORAPP_ALGO;Алгоритам TP_COLORAPP_ALGO_ALL;Све TP_COLORAPP_ALGO_JC;Светлина + Боја (JC) @@ -875,8 +867,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 +881,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;Тамно @@ -1705,7 +1693,6 @@ 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_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1715,8 +1702,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 @@ -1747,7 +1734,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1766,15 +1753,12 @@ 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_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 @@ -1810,9 +1794,6 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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 @@ -1999,7 +1980,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 @@ -2049,10 +2030,7 @@ 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_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) @@ -2090,7 +2068,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index 061b90fba..190f52e91 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -610,7 +610,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 +628,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 +686,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 +837,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Apsolutna luminoznost okruženja za pregled\n(obično 16cd/m²). TP_COLORAPP_ALGO;Algoritam TP_COLORAPP_ALGO_ALL;Sve TP_COLORAPP_ALGO_JC;Svetlina + Boja (JC) @@ -875,8 +867,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 +881,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 @@ -1705,7 +1693,6 @@ 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_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1715,8 +1702,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 @@ -1747,7 +1734,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1766,15 +1753,12 @@ 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_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 @@ -1810,9 +1794,6 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !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 @@ -1999,7 +1980,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 @@ -2049,10 +2030,7 @@ 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_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) @@ -2090,7 +2068,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index fdad901a6..812e087fb 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 @@ -1268,7 +1266,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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' @@ -1283,8 +1280,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 @@ -1300,7 +1297,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 @@ -1312,7 +1308,6 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1357,7 +1352,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files @@ -1378,11 +1373,9 @@ 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_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs @@ -1393,7 +1386,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 @@ -1509,11 +1501,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1543,8 +1531,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. @@ -1562,8 +1548,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !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 @@ -1585,9 +1569,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1908,7 +1889,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 @@ -1966,10 +1947,7 @@ 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_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) @@ -2007,7 +1985,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index 2875e4a0b..2fdae6ab5 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 @@ -1217,7 +1216,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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. @@ -1234,8 +1232,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 @@ -1251,7 +1249,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 @@ -1263,8 +1260,7 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1310,7 +1306,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1333,12 +1329,9 @@ 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_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1351,7 +1344,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 @@ -1470,11 +1462,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1504,8 +1492,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. @@ -1523,8 +1509,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !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,9 +1530,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1896,7 +1877,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 @@ -1957,10 +1938,7 @@ 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_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) @@ -1998,7 +1976,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index ee2af3156..fd2690401 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -839,7 +839,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 +857,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 +906,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;Översiktsvyns guidefärg PREFERENCES_NAVIGATIONFRAME;Navigering PREFERENCES_OUTDIR;Utmatningskatalog PREFERENCES_OUTDIRFOLDER;Spara till katalog @@ -940,11 +938,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 +1100,7 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolut luminans hos betrakningsomgivningen\n(vanligtvis 16cd/m²) TP_COLORAPP_ALGO;Algoritm TP_COLORAPP_ALGO_ALL;Alla TP_COLORAPP_ALGO_JC;Ljushet + kroma (JC) @@ -1139,8 +1130,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 +1144,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 @@ -2047,15 +2034,14 @@ 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_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 @@ -2077,11 +2063,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 @@ -2108,9 +2093,6 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !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 @@ -2191,7 +2173,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 @@ -2236,7 +2218,6 @@ 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_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. @@ -2244,7 +2225,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index d63d13825..723658e4a 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 @@ -1216,7 +1215,6 @@ TP_WBALANCE_TEMPERATURE;Isı !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !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. @@ -1233,8 +1231,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 @@ -1250,7 +1248,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 @@ -1262,8 +1259,7 @@ 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_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1309,7 +1305,7 @@ 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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1332,12 +1328,9 @@ 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_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar @@ -1350,7 +1343,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 @@ -1469,11 +1461,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1503,8 +1491,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. @@ -1522,8 +1508,6 @@ TP_WBALANCE_TEMPERATURE;Isı !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 @@ -1545,9 +1529,6 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. !TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] !TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_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 @@ -1895,7 +1876,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 @@ -1956,10 +1937,7 @@ 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_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) @@ -1997,7 +1975,6 @@ 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_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) diff --git a/rtdata/languages/default b/rtdata/languages/default index 5b11c5c1d..4360ce491 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1032,9 +1032,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. @@ -1055,8 +1061,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 @@ -1072,7 +1078,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 @@ -1091,10 +1096,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 @@ -1151,7 +1156,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 @@ -1190,14 +1194,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 @@ -1218,7 +1219,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 @@ -1303,7 +1303,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 @@ -1381,11 +1381,8 @@ 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_MEANLUMINANCE;Mean luminance (Yb%) TP_COLORAPP_ALGO;Algorithm TP_COLORAPP_ALGO_ALL;All TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1396,6 +1393,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. @@ -1415,8 +1413,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. @@ -1434,8 +1430,6 @@ 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 @@ -1455,11 +1449,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 @@ -1820,7 +1812,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 @@ -1854,7 +1846,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 @@ -1922,10 +1914,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_MAP;Equalizer +TP_RETINEX_CONTEDIT_HSL;HSL histogram +TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1963,7 +1955,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) @@ -2273,7 +2265,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;WB-Picker +TP_WBALANCE_PICKER;Pick TP_WBALANCE_SHADE;Shade TP_WBALANCE_SIZE;Size: TP_WBALANCE_SOLUX35;Solux 3500K 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/preferences.cc b/rtgui/preferences.cc index 96f49d73a..b287c6f7b 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -996,14 +996,14 @@ Gtk::Widget* Preferences::getGeneralPanel () // --------------------------------------------- - Gtk::Frame* ftheme = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_THEME")) ); + Gtk::Frame* ftheme = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_APPEARANCE")) ); 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::Label* themelab = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_SELECTTHEME") + ":") ); + Gtk::Label* themelab = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_APPEARANCE_THEME") + ":") ); 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); @@ -1018,7 +1018,7 @@ Gtk::Widget* Preferences::getGeneralPanel () 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")) ); + Gtk::Label* fontlab = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_APPEARANCE_MAINFONT")) ); 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); @@ -1033,7 +1033,7 @@ Gtk::Widget* Preferences::getGeneralPanel () 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") + ":") ); + Gtk::Label* cpfontlab = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_APPEARANCE_COLORPICKERFONT") + ":") ); 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); @@ -1048,7 +1048,7 @@ Gtk::Widget* Preferences::getGeneralPanel () themeGrid->attach_next_to (*cpfontlab, *fontButton, Gtk::POS_RIGHT, 1, 1); themeGrid->attach_next_to (*colorPickerFontButton, *cpfontlab, Gtk::POS_RIGHT, 1, 1); - Gtk::Label* cutOverlayLabel = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_CUTOVERLAYBRUSH") + ":") ); + Gtk::Label* cutOverlayLabel = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_APPEARANCE_CROPMASKCOLOR") + ":") ); 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); @@ -1056,7 +1056,7 @@ Gtk::Widget* Preferences::getGeneralPanel () themeGrid->attach_next_to (*cutOverlayLabel, *themelab, Gtk::POS_BOTTOM, 1, 1); themeGrid->attach_next_to (*butCropCol, *cutOverlayLabel, Gtk::POS_RIGHT, 1, 1); - Gtk::Label* navGuideLabel = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_NAVGUIDEBRUSH") + ":") ); + Gtk::Label* navGuideLabel = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_APPEARANCE_NAVGUIDECOLOR") + ":") ); 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); From 8b4027d75d6a812e5b301f73eabb3668d706ffb4 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 21 Nov 2018 01:50:44 +0100 Subject: [PATCH 069/116] Crop Editing layout fixed Preferences > Image Processing > Crop Edit was vertically centered with large empty gaps above and below the frame. Now it starts as soon as the frame above ends. --- rtgui/preferences.cc | 44 +++++++++++++++++++++----------------------- rtgui/preferences.h | 4 ++-- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index b287c6f7b..bdec7ea68 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; } @@ -1798,8 +1796,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 () @@ -2015,8 +2013,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); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index 6019604e5..0f4291a1c 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -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; From ead059ee8c1683f62e8647f2b2dac96139ee269a Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 21 Nov 2018 02:48:46 +0100 Subject: [PATCH 070/116] Better layout of Preferences > Appearance The Appearance frame no longer causes the minimum Preferences window width to be large. --- rtdata/themes/RawTherapee-GTK3-20_.css | 6 +- rtgui/preferences.cc | 148 ++++++++++++------------- rtgui/preferences.h | 10 +- 3 files changed, 82 insertions(+), 82 deletions(-) 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/rtgui/preferences.cc b/rtgui/preferences.cc index bdec7ea68..eefffbb3a 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -992,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_APPEARANCE")) ); - 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_APPEARANCE_THEME") + ":") ); - 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_APPEARANCE_MAINFONT")) ); - 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_APPEARANCE_COLORPICKERFONT") + ":") ); - 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_APPEARANCE_CROPMASKCOLOR") + ":") ); - 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_APPEARANCE_NAVGUIDECOLOR") + ":") ); - 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(*colorPickerFontLbl, 3, 1, 1, 1); + appearanceGrid->attach(*colorPickerFontFB, 4, 1, 1, 1); + appearanceGrid->attach(*cropMaskColorLbl, 0, 2, 1, 1); + appearanceGrid->attach(*cropMaskColorCB, 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); // --------------------------------------------- @@ -1096,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); // --------------------------------------------- @@ -1190,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; @@ -1610,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(); @@ -1872,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); @@ -2099,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") { @@ -2157,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); @@ -2313,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 0f4291a1c..a77e3ea82 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; From 179a1db5e3642653b53eadd621db4cc90e858dcd Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 21 Nov 2018 12:51:23 +0100 Subject: [PATCH 071/116] generateTranslationDiffs --- rtdata/languages/Catala | 39 ++++++++++--- rtdata/languages/Chinese (Simplified) | 52 ++++++++++++----- rtdata/languages/Chinese (Traditional) | 55 +++++++++++++----- rtdata/languages/Czech | 29 +++++++++- rtdata/languages/Dansk | 55 +++++++++++++----- rtdata/languages/Deutsch | 25 +++++++- rtdata/languages/English (UK) | 57 +++++++++++++------ rtdata/languages/English (US) | 57 +++++++++++++------ rtdata/languages/Espanol | 39 ++++++++++--- rtdata/languages/Euskara | 55 +++++++++++++----- rtdata/languages/Francais | 31 +++++++++- rtdata/languages/Greek | 55 +++++++++++++----- rtdata/languages/Hebrew | 55 +++++++++++++----- rtdata/languages/Italiano | 39 ++++++++++--- rtdata/languages/Japanese | 27 ++++++++- rtdata/languages/Latvian | 55 +++++++++++++----- rtdata/languages/Magyar | 45 +++++++++++---- rtdata/languages/Nederlands | 32 +++++++++-- rtdata/languages/Norsk BM | 55 +++++++++++++----- rtdata/languages/Polish | 39 ++++++++++--- rtdata/languages/Polish (Latin Characters) | 39 ++++++++++--- rtdata/languages/Portugues (Brasil) | 27 ++++++++- rtdata/languages/Russian | 38 +++++++++++-- rtdata/languages/Serbian (Cyrilic Characters) | 39 ++++++++++--- rtdata/languages/Serbian (Latin Characters) | 39 ++++++++++--- rtdata/languages/Slovak | 55 +++++++++++++----- rtdata/languages/Suomi | 55 +++++++++++++----- rtdata/languages/Swedish | 32 +++++++++-- rtdata/languages/Turkish | 55 +++++++++++++----- rtdata/languages/default | 6 +- 30 files changed, 996 insertions(+), 285 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 3a4b18fc3..c9b6b4408 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -1424,7 +1424,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_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 @@ -1438,8 +1437,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: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1479,6 +1478,13 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PARTIALPASTE_RETINEX;Retinex !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_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' @@ -1514,6 +1520,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 @@ -1543,7 +1550,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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1565,6 +1571,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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 @@ -1598,7 +1605,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 @@ -1661,7 +1668,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1672,6 +1679,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. @@ -1702,6 +1710,7 @@ 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 @@ -1727,6 +1736,7 @@ 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_COLORTONING_AB;o C/L @@ -1904,6 +1914,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 @@ -1937,6 +1956,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) @@ -2013,7 +2033,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_LH;Hue 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) @@ -2051,6 +2074,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2266,6 +2290,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 8442cdcd5..850d028b2 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;批处理 @@ -589,7 +590,6 @@ PREFERENCES_MONPROFILE;默认色彩配置文件 PREFERENCES_MONPROFILE_WARNOSX;受MacOS限制, 仅支持sRGB PREFERENCES_MULTITAB;多编辑器标签模式 PREFERENCES_MULTITABDUALMON;多编辑器标签独立模式 -PREFERENCES_APPEARANCE_NAVGUIDECOLOR;导航器引导颜色 PREFERENCES_NAVIGATIONFRAME;导航器 PREFERENCES_OUTDIR;输出路径 PREFERENCES_OUTDIRFOLDER;保存至文件夹 @@ -1498,7 +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_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 @@ -1510,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: None\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. @@ -1533,6 +1532,12 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_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 @@ -1549,6 +1554,7 @@ 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 tool collapsed/expanded state now @@ -1591,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 @@ -1623,7 +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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1634,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. @@ -1661,6 +1668,7 @@ 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 @@ -1680,6 +1688,7 @@ 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_COLORTONING_AB;o C/L @@ -1876,6 +1885,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 @@ -1906,6 +1924,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 @@ -1992,7 +2011,10 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -2030,6 +2052,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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 +2304,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 bc63c9f8b..84f99ba81 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -1092,7 +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_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: None\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 @@ -1216,7 +1215,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;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. @@ -1262,6 +1268,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1307,7 +1314,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1333,6 +1339,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !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 @@ -1400,7 +1407,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 @@ -1464,7 +1471,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1475,6 +1482,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. @@ -1505,6 +1513,7 @@ 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 @@ -1530,6 +1539,7 @@ 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_COLORTONING_AB;o C/L @@ -1804,7 +1814,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_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 @@ -1847,6 +1866,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 @@ -1939,7 +1959,10 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_RESIZE_FITBOX;Bounding Box !TP_RESIZE_FULLIMAGE;Full Image !TP_RESIZE_LANCZOS;Lanczos -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1977,6 +2000,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2252,6 +2276,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 c7b64c745..16c68ec5d 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -976,6 +976,7 @@ 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_BATCH_PROCESSING;Dávkové zpracování @@ -1087,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_APPEARANCE_NAVGUIDECOLOR;Barva vodítek navigátoru PREFERENCES_NAVIGATIONFRAME;Navigátor PREFERENCES_OUTDIR;Výstupní složka PREFERENCES_OUTDIRFOLDER;Ulož do souboru @@ -1305,7 +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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolutní jas prostředí prohlížení\n(obvykle 16cd/m²). TP_COLORAPP_ALGO;Algoritmus TP_COLORAPP_ALGO_ALL;Vše TP_COLORAPP_ALGO_JC;Světlost + Barevnost (JC) @@ -1371,6 +1370,7 @@ 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_COLORTONING_AB;o C/L @@ -2253,18 +2253,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: None\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 @@ -2273,6 +2280,9 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !SAVEDLG_FILEFORMAT_FLOAT; floating-point !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_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORTONING_LABREGIONS;L*a*b* correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C @@ -2293,7 +2303,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 @@ -2306,7 +2326,9 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !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 @@ -2315,3 +2337,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 495b050f8..1e83b4951 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -1087,7 +1087,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_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 @@ -1121,17 +1120,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: None\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 @@ -1213,7 +1212,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;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. @@ -1259,6 +1265,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1304,7 +1311,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1330,6 +1336,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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 @@ -1397,7 +1404,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 @@ -1461,7 +1468,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1472,6 +1479,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. @@ -1502,6 +1510,7 @@ 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 @@ -1527,6 +1536,7 @@ 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_COLORTONING_AB;o C/L @@ -1801,7 +1811,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_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 @@ -1844,6 +1863,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 @@ -1937,7 +1957,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1975,6 +1998,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2250,6 +2274,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 e73f1c6d9..6baf1640c 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -1085,6 +1085,7 @@ PARTIALPASTE_VIGNETTING;Vignettierungskorrektur PARTIALPASTE_WAVELETGROUP;Wavelet PARTIALPASTE_WHITEBALANCE;Weißabgleich PREFERENCES_ADD;HINZU +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Farbe der Navigationshilfe PREFERENCES_APPLNEXTSTARTUP;erfordert Neustart PREFERENCES_AUTOMONPROFILE;Automatisch das für den aktuellen Monitor festgelegte Profil verwenden PREFERENCES_BATCH_PROCESSING;Stapelverarbeitung @@ -1200,7 +1201,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_APPEARANCE_NAVGUIDECOLOR;Farbe der Navigationshilfe PREFERENCES_NAVIGATIONFRAME;Navigation PREFERENCES_OUTDIR;Ausgabeverzeichnis PREFERENCES_OUTDIRFOLDER;In dieses Verzeichnis speichern @@ -1427,7 +1427,6 @@ 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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute Luminanz der Betrachtungsumgebung\n(normalerweise 16cd/m²). TP_COLORAPP_ALGO;Algorithmus TP_COLORAPP_ALGO_ALL;Alle TP_COLORAPP_ALGO_JC;Helligkeit + Buntheit (JH) @@ -1493,6 +1492,7 @@ 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_COLORTONING_AB;o C/L @@ -2353,11 +2353,21 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !PARTIALPASTE_DEHAZE;Haze removal +!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 +!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;L*a*b* correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C @@ -2372,6 +2382,17 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - !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_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_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold !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_TM_FATTAL_THRESHOLD;Detail +!TP_WBALANCE_PICKER;Pick diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 2e251a8a9..a266349cd 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -30,15 +30,18 @@ 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_ICCDIR;Directory containing colour profiles @@ -46,12 +49,11 @@ PREFERENCES_INTENT_ABSOLUTE;Absolute Colourimetric PREFERENCES_INTENT_RELATIVE;Relative Colourimetric PREFERENCES_MENUGROUPLABEL;Group "Colour label" PREFERENCES_MONPROFILE;Default colour profile -PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide colour PREFERENCES_PRTPROFILE;Colour profile 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. @@ -947,7 +949,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_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 @@ -1007,12 +1008,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: None\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 @@ -1110,7 +1111,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;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. @@ -1168,6 +1173,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_EDITORLAYOUT;Editor layout !PREFERENCES_EXTERNALEDITOR;External Editor !PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FILEFORMAT;File format !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1260,6 +1266,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_SELECTLANG;Select language !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 @@ -1360,7 +1367,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 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 @@ -1431,7 +1438,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1440,6 +1447,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. @@ -1465,6 +1473,7 @@ 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 @@ -1488,6 +1497,7 @@ 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_COLORTONING_AB;o C/L @@ -1767,7 +1777,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_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 @@ -1808,6 +1827,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 @@ -1906,7 +1926,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_LH;Hue 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) @@ -1944,6 +1967,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;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2242,6 +2266,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 84c03e687..49553272b 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -861,7 +861,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_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 @@ -918,20 +917,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: None\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 @@ -1034,8 +1033,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;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. @@ -1094,6 +1100,7 @@ !PREFERENCES_EDITORLAYOUT;Editor layout !PREFERENCES_EXTERNALEDITOR;External Editor !PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FILEFORMAT;File format !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1150,7 +1157,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_APPEARANCE_NAVGUIDECOLOR;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OUTDIR;Output Directory !PREFERENCES_OUTDIRFOLDER;Save to folder @@ -1193,6 +1199,7 @@ !PREFERENCES_SELECTLANG;Select language !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 @@ -1296,8 +1303,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 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 @@ -1375,7 +1382,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1386,6 +1393,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. @@ -1416,6 +1424,7 @@ !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 @@ -1441,6 +1450,7 @@ !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_COLORTONING_AB;o C/L @@ -1751,7 +1761,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_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 @@ -1794,6 +1813,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 @@ -1895,7 +1915,10 @@ !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_W;Width: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1933,6 +1956,7 @@ !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2242,6 +2266,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 ceaff3887..abac30029 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 @@ -793,7 +794,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -967,7 +967,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminancia absoluta del entorno de visualización\n(usualmente 16cd/m²) TP_COLORAPP_ALGO;Algoritmo TP_COLORAPP_ALGO_ALL;Todo TP_COLORAPP_ALGO_JC;Claridad + Crominancia (JC) @@ -1029,6 +1028,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 @@ -1799,14 +1799,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_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: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1836,6 +1835,12 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PARTIALPASTE_RETINEX;Retinex !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: @@ -1858,6 +1863,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 @@ -1895,6 +1901,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !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 @@ -1919,14 +1926,17 @@ 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 @@ -2008,6 +2018,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 @@ -2028,6 +2047,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) @@ -2088,7 +2108,10 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -2126,6 +2149,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2335,6 +2359,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 5b8004105..1a3f3f036 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -1088,7 +1088,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_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 @@ -1122,17 +1121,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: None\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 @@ -1214,7 +1213,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;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. @@ -1260,6 +1266,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1305,7 +1312,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1331,6 +1337,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !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 @@ -1398,7 +1405,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 @@ -1462,7 +1469,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1473,6 +1480,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. @@ -1503,6 +1511,7 @@ 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 @@ -1528,6 +1537,7 @@ 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_COLORTONING_AB;o C/L @@ -1802,7 +1812,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_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 @@ -1845,6 +1864,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 @@ -1938,7 +1958,10 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1976,6 +1999,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2251,6 +2275,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 e6c9d83d7..976324a51 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -1036,6 +1036,7 @@ 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_BATCH_PROCESSING;Traitement par lot @@ -1156,7 +1157,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_APPEARANCE_NAVGUIDECOLOR;Couleur du cadre dans le Navigateur PREFERENCES_NAVIGATIONFRAME;Navigation PREFERENCES_OUTDIR;Dossier de sortie PREFERENCES_OUTDIRFOLDER;Dossier de sauvegarde @@ -1383,7 +1383,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminance absolue de l'environnement de visionnage\n(souvent 16cd/m²) TP_COLORAPP_ALGO;Algorithme TP_COLORAPP_ALGO_ALL;Tout TP_COLORAPP_ALGO_JC;Luminosité + Chroma (JC) @@ -1449,6 +1448,7 @@ 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_COLORTONING_AB;o C/L @@ -2299,3 +2299,30 @@ 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. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!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_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 bf8f6a01f..eff50dc3a 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -1087,7 +1087,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_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 @@ -1121,17 +1120,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: None\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 @@ -1213,7 +1212,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;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. @@ -1259,6 +1265,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1304,7 +1311,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1330,6 +1336,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !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 @@ -1397,7 +1404,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 @@ -1461,7 +1468,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1472,6 +1479,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. @@ -1502,6 +1510,7 @@ 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 @@ -1527,6 +1536,7 @@ 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_COLORTONING_AB;o C/L @@ -1801,7 +1811,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_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 @@ -1844,6 +1863,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 @@ -1937,7 +1957,10 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1975,6 +1998,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2250,6 +2274,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 b33799a85..f1bbde6f9 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -1088,7 +1088,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_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 @@ -1122,17 +1121,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: None\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 @@ -1214,7 +1213,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;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. @@ -1260,6 +1266,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1305,7 +1312,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1331,6 +1337,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !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 @@ -1398,7 +1405,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 @@ -1462,7 +1469,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1473,6 +1480,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. @@ -1503,6 +1511,7 @@ 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 @@ -1528,6 +1537,7 @@ 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_COLORTONING_AB;o C/L @@ -1802,7 +1812,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_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 @@ -1845,6 +1864,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 @@ -1938,7 +1958,10 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1976,6 +1999,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2251,6 +2275,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 bc63bc3aa..6155ae7b5 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 @@ -698,7 +699,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_APPEARANCE_NAVGUIDECOLOR;Colore delle guide del Navigatore PREFERENCES_OUTDIR;Cartella di destinazione PREFERENCES_OUTDIRFOLDER;Salva nella cartella PREFERENCES_OUTDIRFOLDERHINT;Salva le immagini nella cartella scelta @@ -872,7 +872,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminanza assoluta dell'ambiente di visualizzazione\n(normalmente 16cd/m²). TP_COLORAPP_ALGO;Algoritmo TP_COLORAPP_ALGO_ALL;Tutto TP_COLORAPP_ALGO_JC;Chiarezza + Croma (JC) @@ -934,6 +933,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: @@ -1674,15 +1674,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_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: None\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. @@ -1707,6 +1706,12 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PARTIALPASTE_RETINEX;Retinex !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: @@ -1730,6 +1735,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 @@ -1767,6 +1773,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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 @@ -1791,14 +1798,17 @@ 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 @@ -1934,6 +1944,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 @@ -1958,6 +1977,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) @@ -2029,7 +2049,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_LH;Hue 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) @@ -2067,6 +2090,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2276,6 +2300,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 c80a64425..cbab4ca3f 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -1065,6 +1065,7 @@ PARTIALPASTE_VIBRANCE;自然な彩度 PARTIALPASTE_VIGNETTING;周辺光量補正 PARTIALPASTE_WHITEBALANCE;ホワイトバランス PREFERENCES_ADD;追加 +PREFERENCES_APPEARANCE_NAVGUIDECOLOR;ナビゲーターのガイドカラー PREFERENCES_APPLNEXTSTARTUP;要再起動 PREFERENCES_AUTOMONPROFILE;OSのメインモニター・プロファイルを使用 PREFERENCES_BATCH_PROCESSING;バッチ処理 @@ -1181,7 +1182,6 @@ PREFERENCES_MONPROFILE;デフォルトのモニタープロファイル PREFERENCES_MONPROFILE_WARNOSX;MacのOSの制約により、サポート出来るのはsRGBだけです PREFERENCES_MULTITAB;マルチ編集タブモード PREFERENCES_MULTITABDUALMON;独自のウィンドウモードによるマルチ編集タブ -PREFERENCES_APPEARANCE_NAVGUIDECOLOR;ナビゲーターのガイドカラー PREFERENCES_NAVIGATIONFRAME;ナビゲーション PREFERENCES_OUTDIR;出力ディレクトリ PREFERENCES_OUTDIRFOLDER;フォルダに保存 @@ -1407,7 +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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;観視環境の絶対輝度\n(通常 16cd/m2) TP_COLORAPP_ALGO;アルゴリズム TP_COLORAPP_ALGO_ALL;すべて TP_COLORAPP_ALGO_JC;明度 + 色度 (JC) @@ -1473,6 +1472,7 @@ 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_COLORTONING_AB;o C/L @@ -2302,3 +2302,26 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!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_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 73ca345ba..0cfcb9e04 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -1088,7 +1088,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_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 @@ -1122,17 +1121,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: None\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 @@ -1214,7 +1213,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;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. @@ -1260,6 +1266,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1305,7 +1312,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1331,6 +1337,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !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 @@ -1398,7 +1405,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 @@ -1462,7 +1469,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1473,6 +1480,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. @@ -1503,6 +1511,7 @@ 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 @@ -1528,6 +1537,7 @@ 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_COLORTONING_AB;o C/L @@ -1802,7 +1812,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_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 @@ -1845,6 +1864,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 @@ -1938,7 +1958,10 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1976,6 +1999,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2251,6 +2275,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 08c5b6277..af10a8272 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -1357,7 +1357,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_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 @@ -1371,11 +1370,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: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1417,6 +1416,13 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PARTIALPASTE_RETINEX;Retinex !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_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' @@ -1452,6 +1458,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 @@ -1482,7 +1489,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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1504,6 +1510,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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 @@ -1551,7 +1558,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 @@ -1614,7 +1621,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1625,6 +1632,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. @@ -1655,6 +1663,7 @@ 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 @@ -1680,6 +1689,7 @@ 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_COLORTONING_AB;o C/L @@ -1895,7 +1905,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_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 @@ -1929,6 +1948,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) @@ -2005,7 +2025,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_LH;Hue 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) @@ -2043,6 +2066,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2268,6 +2292,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 b6ee0d50b..7afbdb57c 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 @@ -1007,7 +1008,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_APPEARANCE_NAVGUIDECOLOR;Navigator randkleur PREFERENCES_NAVIGATIONFRAME;Navigatie PREFERENCES_OUTDIR;Uitvoermap PREFERENCES_OUTDIRFOLDER;Sla op in map @@ -1209,7 +1209,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminantie van de weergaveomgeving \n(gebruikelijk 16cd/m²) TP_COLORAPP_ALGO;Algoritme TP_COLORAPP_ALGO_ALL;Alle TP_COLORAPP_ALGO_JC;Lichtheid + Chroma (JC) @@ -1271,6 +1270,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 @@ -2180,13 +2180,12 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... !ICCPROFCREATOR_SLOPE;Slope !ICCPROFCREATOR_TRC_PRESET;Tone response curve: -!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: None\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. @@ -2199,6 +2198,12 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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: @@ -2213,6 +2218,7 @@ 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 @@ -2241,7 +2247,10 @@ 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 @@ -2272,6 +2281,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 @@ -2289,6 +2307,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 @@ -2308,9 +2327,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 @@ -2320,3 +2341,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 83affd841..06a675819 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -1087,7 +1087,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_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 @@ -1121,17 +1120,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: None\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 @@ -1213,7 +1212,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;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. @@ -1259,6 +1265,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1304,7 +1311,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1330,6 +1336,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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 @@ -1397,7 +1404,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 @@ -1461,7 +1468,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1472,6 +1479,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. @@ -1502,6 +1510,7 @@ 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 @@ -1527,6 +1536,7 @@ 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_COLORTONING_AB;o C/L @@ -1801,7 +1811,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_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 @@ -1844,6 +1863,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 @@ -1937,7 +1957,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1975,6 +1998,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2250,6 +2274,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 b5f1ad546..385f71041 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 @@ -748,7 +749,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_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora PREFERENCES_OUTDIR;Katalog wyjściowy PREFERENCES_OUTDIRFOLDER;Zapisz do katalogu PREFERENCES_OUTDIRFOLDERHINT;Umieszcza zapisywane zdjęcia w wybranym katalogu @@ -922,7 +922,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Bezwzględna luminancja widowni\n(zazwyczaj 16cd/m²). TP_COLORAPP_ALGO;Algorytm TP_COLORAPP_ALGO_ALL;Wszystkie TP_COLORAPP_ALGO_JC;Światłość + Chroma (JC) @@ -984,6 +983,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 @@ -1756,15 +1756,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_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: None\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. @@ -1784,6 +1783,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PARTIALPASTE_RETINEX;Retinex !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: @@ -1806,6 +1811,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 @@ -1843,6 +1849,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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 @@ -1867,14 +1874,17 @@ 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 @@ -1955,6 +1965,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 @@ -1975,6 +1994,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) @@ -2035,7 +2055,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -2073,6 +2096,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2282,5 +2306,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 aa8fb9ee7..df6e5c941 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 @@ -748,7 +749,6 @@ PREFERENCES_MENUOPTIONS;Opcje menu PREFERENCES_METADATA;Metadane PREFERENCES_MULTITAB;Tryb wielu zakladek PREFERENCES_MULTITABDUALMON;Tryb wielu zakladek (na drugim monitorze jesli dostepny) -PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora PREFERENCES_OUTDIR;Katalog wyjsciowy PREFERENCES_OUTDIRFOLDER;Zapisz do katalogu PREFERENCES_OUTDIRFOLDERHINT;Umieszcza zapisywane zdjecia w wybranym katalogu @@ -922,7 +922,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Bezwzgledna luminancja widowni\n(zazwyczaj 16cd/m²). TP_COLORAPP_ALGO;Algorytm TP_COLORAPP_ALGO_ALL;Wszystkie TP_COLORAPP_ALGO_JC;Swiatlosc + Chroma (JC) @@ -984,6 +983,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 @@ -1756,15 +1756,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_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: None\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. @@ -1784,6 +1783,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PARTIALPASTE_RETINEX;Retinex !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: @@ -1806,6 +1811,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 @@ -1843,6 +1849,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !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 @@ -1867,14 +1874,17 @@ 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 @@ -1955,6 +1965,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 @@ -1975,6 +1994,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) @@ -2035,7 +2055,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -2073,6 +2096,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2282,5 +2306,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 a627f868e..95923c6f0 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -1006,6 +1006,7 @@ 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_BATCH_PROCESSING;Processamento em Lote @@ -1117,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_APPEARANCE_NAVGUIDECOLOR;Cor do guia do navegador PREFERENCES_NAVIGATIONFRAME;Navegação PREFERENCES_OUTDIR;Diretório de Saída PREFERENCES_OUTDIRFOLDER;Salvar na pasta @@ -1341,7 +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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminância absoluta do ambiente de visualização\n(usualmente 16cd/m²). TP_COLORAPP_ALGO;Algorimo TP_COLORAPP_ALGO_ALL;Tudo TP_COLORAPP_ALGO_JC;Claridade + Croma (JC) @@ -1407,6 +1406,7 @@ 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_COLORTONING_AB;o C/L @@ -2248,15 +2248,25 @@ 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_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;L*a*b* correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C @@ -2271,9 +2281,22 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !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 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 93dd6cdb5..d07ef6f6d 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -960,7 +960,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Абсолютная яркость при просмотре.\n(Обычно 16 кд/м²) TP_COLORAPP_ALGO;Алгоритм TP_COLORAPP_ALGO_ALL;Все TP_COLORAPP_ALGO_JC;Светимость + Цвет (JC) @@ -993,6 +992,7 @@ TP_COLORAPP_GAMUT;Контроль гаммы (L*a*b*) TP_COLORAPP_GAMUT_TOOLTIP;Позволяет контролировать гамму в режиме L*a*b*. TP_COLORAPP_HUE;Цвет (h) TP_COLORAPP_MODEL;Модель точки белого +TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Абсолютная яркость при просмотре.\n(Обычно 16 кд/м²) TP_CROP_FIXRATIO;Пропорция: TP_CROP_GTDIAGONALS;Правило диагоналей TP_CROP_GTEPASSPORT;Биометрический паспорт @@ -1766,8 +1766,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: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !PARTIALPASTE_COLORTONING;Color toning !PARTIALPASTE_DEHAZE;Haze removal @@ -1782,6 +1782,13 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex +!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: @@ -1799,6 +1806,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !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 @@ -1815,7 +1823,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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1833,6 +1840,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !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 @@ -1853,13 +1861,15 @@ 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_FREE;Free temp+green + CAT02 + [output] !TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. @@ -1869,6 +1879,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 @@ -1994,6 +2005,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 @@ -2004,6 +2024,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 @@ -2048,7 +2069,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_LH;Hue 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 @@ -2082,6 +2106,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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,5 +2306,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 c831dbddb..37ca4dc1e 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -837,7 +837,6 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Изврће слику хоризонтално TP_COARSETRAF_TOOLTIP_ROTLEFT;Окреће слику улево TP_COARSETRAF_TOOLTIP_ROTRIGHT;Окреће слику удесно TP_COARSETRAF_TOOLTIP_VFLIP;Изврће слику вертикално -TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Апсолутна луминозност окружења за преглед\n(обично 16cd/m²). TP_COLORAPP_ALGO;Алгоритам TP_COLORAPP_ALGO_ALL;Све TP_COLORAPP_ALGO_JC;Светлина + Боја (JC) @@ -899,6 +898,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;Сразмерно: @@ -1650,14 +1650,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_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: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1693,6 +1692,13 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PARTIALPASTE_RETINEX;Retinex !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_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: @@ -1716,6 +1722,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 @@ -1734,7 +1741,6 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. -!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;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. @@ -1756,6 +1762,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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 @@ -1779,7 +1786,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 @@ -1790,7 +1797,10 @@ 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 @@ -1936,6 +1946,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 @@ -1959,6 +1978,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) @@ -2030,7 +2050,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_LH;Hue 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) @@ -2068,6 +2091,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2277,6 +2301,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 190f52e91..c33abc2e7 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -837,7 +837,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Apsolutna luminoznost okruženja za pregled\n(obično 16cd/m²). TP_COLORAPP_ALGO;Algoritam TP_COLORAPP_ALGO_ALL;Sve TP_COLORAPP_ALGO_JC;Svetlina + Boja (JC) @@ -899,6 +898,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: @@ -1650,14 +1650,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_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: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1693,6 +1692,13 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PARTIALPASTE_RETINEX;Retinex !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_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: @@ -1716,6 +1722,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 @@ -1734,7 +1741,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_APPEARANCE_NAVGUIDECOLOR;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. @@ -1756,6 +1762,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !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 @@ -1779,7 +1786,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 @@ -1790,7 +1797,10 @@ 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 @@ -1936,6 +1946,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 @@ -1959,6 +1978,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) @@ -2030,7 +2050,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_LH;Hue 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) @@ -2068,6 +2091,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2277,6 +2301,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 812e087fb..ac6dc7928 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -1149,7 +1149,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_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 @@ -1177,17 +1176,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: None\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 @@ -1265,7 +1264,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;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' @@ -1308,6 +1314,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1352,7 +1359,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_APPEARANCE_NAVGUIDECOLOR;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files @@ -1376,6 +1382,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !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 @@ -1437,7 +1444,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 @@ -1501,7 +1508,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1512,6 +1519,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. @@ -1542,6 +1550,7 @@ 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 @@ -1567,6 +1576,7 @@ 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_COLORTONING_AB;o C/L @@ -1822,7 +1832,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_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 @@ -1859,6 +1878,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 @@ -1947,7 +1967,10 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_RESIZE_FITBOX;Bounding Box !TP_RESIZE_FULLIMAGE;Full Image !TP_RESIZE_LANCZOS;Lanczos -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1985,6 +2008,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2260,6 +2284,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 2fdae6ab5..3d450a65c 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -1089,7 +1089,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_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 @@ -1123,17 +1122,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: None\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 @@ -1215,7 +1214,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;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. @@ -1261,6 +1267,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1306,7 +1313,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1332,6 +1338,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !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 @@ -1398,7 +1405,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 @@ -1462,7 +1469,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1473,6 +1480,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. @@ -1503,6 +1511,7 @@ 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 @@ -1528,6 +1537,7 @@ 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_COLORTONING_AB;o C/L @@ -1802,7 +1812,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_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 @@ -1845,6 +1864,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 @@ -1938,7 +1958,10 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1976,6 +1999,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;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2251,6 +2275,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 fd2690401..7022c8554 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 @@ -906,7 +907,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_APPEARANCE_NAVGUIDECOLOR;Översiktsvyns guidefärg PREFERENCES_NAVIGATIONFRAME;Navigering PREFERENCES_OUTDIR;Utmatningskatalog PREFERENCES_OUTDIRFOLDER;Spara till katalog @@ -1100,7 +1100,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolut luminans hos betrakningsomgivningen\n(vanligtvis 16cd/m²) TP_COLORAPP_ALGO;Algoritm TP_COLORAPP_ALGO_ALL;Alla TP_COLORAPP_ALGO_JC;Ljushet + kroma (JC) @@ -1162,6 +1161,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 @@ -2010,13 +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_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: None\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. @@ -2034,6 +2033,12 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !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: @@ -2049,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 @@ -2089,7 +2095,10 @@ 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 @@ -2144,6 +2153,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 @@ -2161,6 +2179,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 @@ -2218,6 +2237,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;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. @@ -2225,6 +2245,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;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2285,5 +2306,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 723658e4a..37338ba52 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -1088,7 +1088,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_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 @@ -1122,17 +1121,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: None\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 @@ -1214,7 +1213,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;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. @@ -1260,6 +1266,7 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor layout +!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1305,7 +1312,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_APPEARANCE_NAVGUIDECOLOR;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 @@ -1331,6 +1337,7 @@ TP_WBALANCE_TEMPERATURE;Isı !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 @@ -1397,7 +1404,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 @@ -1461,7 +1468,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_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16cd/m²). +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All !TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1472,6 +1479,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. @@ -1502,6 +1510,7 @@ 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 @@ -1527,6 +1536,7 @@ 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_COLORTONING_AB;o C/L @@ -1801,7 +1811,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_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 @@ -1844,6 +1863,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 @@ -1937,7 +1957,10 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_RESIZE_LANCZOS;Lanczos !TP_RESIZE_SPECIFY;Specify: !TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_LH;Hue 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) @@ -1975,6 +1998,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low +!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) @@ -2250,6 +2274,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 4360ce491..d3e40cb19 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1382,7 +1382,6 @@ TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left.\n\nShortcuts:\n[ - Multiple Ed 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_ABSOLUTELUMINANCE;Absolute luminance -TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) TP_COLORAPP_ALGO;Algorithm TP_COLORAPP_ALGO_ALL;All TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) @@ -1424,6 +1423,7 @@ 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 @@ -1766,9 +1766,9 @@ TP_LENSPROFILE_CORRECTION_MANUAL;Manually TP_LENSPROFILE_LABEL;Profiled Lens 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_HEADER;Select distortions to correct: 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 @@ -1914,10 +1914,10 @@ TP_RESIZE_SCALE;Scale TP_RESIZE_SPECIFY;Specify: TP_RESIZE_W;Width: TP_RESIZE_WIDTH;Width -TP_RETINEX_CONTEDIT_MAP;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) From cb0b96f702b600c7f6c537e19b44026386a92df1 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 21 Nov 2018 13:11:47 +0100 Subject: [PATCH 072/116] Rearranged contents of Preferences> Appearance Closes #5003 --- rtgui/preferences.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index eefffbb3a..9141b0e3f 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -1051,10 +1051,10 @@ Gtk::Widget* Preferences::getGeneralPanel () appearanceGrid->attach(*vSep, 2, 0, 1, 3); appearanceGrid->attach(*mainFontLbl, 0, 1, 1, 1); appearanceGrid->attach(*mainFontFB, 1, 1, 1, 1); - appearanceGrid->attach(*colorPickerFontLbl, 3, 1, 1, 1); - appearanceGrid->attach(*colorPickerFontFB, 4, 1, 1, 1); - appearanceGrid->attach(*cropMaskColorLbl, 0, 2, 1, 1); - appearanceGrid->attach(*cropMaskColorCB, 1, 2, 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); From b98f73e51bd8c227582fb2b18732517884e21ab9 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 21 Nov 2018 15:17:11 +0100 Subject: [PATCH 073/116] Use unsigned int to avoid undefined behaviour when shifting a signed by 31 bits --- rtgui/dirbrowser.cc | 2 +- rtgui/dirbrowser.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index 9ed8455fe..81ee85fed 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -220,7 +220,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..a3f451101 100644 --- a/rtgui/dirbrowser.h +++ b/rtgui/dirbrowser.h @@ -84,7 +84,7 @@ private: bool expandSuccess; #ifdef WIN32 - int volumes; + unsigned int volumes; public: void updateVolumes (); void updateDirTree (const Gtk::TreeModel::iterator& iter); From 7f32010895bdb9ddcb7ed4b90147b724a2412d50 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 21 Nov 2018 16:21:05 +0100 Subject: [PATCH 074/116] Fix coverity issues --- rtexif/rtexif.cc | 64 +++++++++++++++++++++------------------- rtexif/rtexif.h | 12 ++++---- rtgui/mydiagonalcurve.cc | 8 ++--- rtgui/myflatcurve.cc | 8 ++--- 4 files changed, 47 insertions(+), 45 deletions(-) diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index 893d0fe22..f1c807126 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -720,7 +720,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 +842,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) @@ -1215,32 +1216,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; diff --git a/rtexif/rtexif.h b/rtexif/rtexif.h index 1beba92ec..d7004f388 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, 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/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... From 71b5cc6d65a3de083b6e60cabaab4882f97879b7 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 21 Nov 2018 17:35:53 +0100 Subject: [PATCH 075/116] Fix coverity issues --- rtengine/FTblockDN.cc | 6 +- rtengine/ciecam02.cc | 170 +++++++++++++++++++++--------------------- rtengine/ciecam02.h | 16 ++-- rtengine/curves.cc | 6 +- rtengine/curves.h | 2 +- rtengine/improcfun.cc | 12 +-- rtengine/ipresize.cc | 3 +- 7 files changed, 108 insertions(+), 107 deletions(-) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index dfab72089..1a3b80036 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -807,8 +807,8 @@ BENCHFUN #endif const std::size_t blox_array_size = denoiseNestedLevels * numthreads; - float *LbloxArray[blox_array_size] = {}; - float *fLbloxArray[blox_array_size] = {}; + float *LbloxArray[blox_array_size]; + float *fLbloxArray[blox_array_size]; for (std::size_t i = 0; i < blox_array_size; ++i) { LbloxArray[i] = nullptr; @@ -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/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/curves.cc b/rtengine/curves.cc index 9e3c6527e..c0f0d9433 100644 --- a/rtengine/curves.cc +++ b/rtengine/curves.cc @@ -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..d9ae15183 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -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/improcfun.cc b/rtengine/improcfun.cc index de4a93556..268c1e6df 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; @@ -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/ipresize.cc b/rtengine/ipresize.cc index f33b8f0c9..2d12417e1 100644 --- a/rtengine/ipresize.cc +++ b/rtengine/ipresize.cc @@ -231,7 +231,8 @@ void ImProcFunctions::Lanczos (const LabImage* src, LabImage* dst, float scale) float* const la = aligned_buffer_la.data; float* const lb = aligned_buffer_lb.data; // weights for interpolation in y direction - float w[support] ALIGNED64 = {}; + float w[support] ALIGNED64; + memset(w, 0, sizeof(w)); // Phase 2: do actual interpolation #ifdef _OPENMP From 2d0d2a44501983386817680f35c383f0ba251be8 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Thu, 22 Nov 2018 08:52:30 +0100 Subject: [PATCH 076/116] Update Deutsch locale (#5005) --- rtdata/languages/Deutsch | 175 ++++++++++++++++++++------------------- 1 file changed, 88 insertions(+), 87 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 6baf1640c..269d90bc9 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -71,6 +71,7 @@ #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 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -152,15 +153,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 +174,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 @@ -354,7 +355,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 @@ -795,7 +796,7 @@ 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_DUALDEMOSAIC_CONTRAST;(Sensor-Matrix)\nFarbinterpolation\nKontrastschwelle HISTORY_MSG_HISTMATCHING;(Belichtung)\nAuto-Tonwertkurve HISTORY_MSG_ICM_OUTPUT_PRIMARIES;(Farbmanagement)\nAusgabeprofil\nVorlagen @@ -1176,7 +1177,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. @@ -1228,9 +1229,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 @@ -1330,7 +1331,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 @@ -1506,7 +1507,7 @@ 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_LUMA;Luminanz TP_COLORTONING_LUMAMODE;Luminanz schützen @@ -1546,11 +1547,11 @@ 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_PPI;PPI = TP_CROP_SELECTCROP;Ausschnitt wählen 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) @@ -1835,7 +1836,7 @@ 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_AVOIDCOLORSHIFT;Farbverschiebungen vermeiden TP_RAWCACORR_CABLUE;Blau @@ -2331,68 +2332,68 @@ 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_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 -!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;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_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_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!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_TM_FATTAL_THRESHOLD;Detail -!TP_WBALANCE_PICKER;Pick +DYNPROFILEEDITOR_IMGTYPE_ANY;Alle +DYNPROFILEEDITOR_IMGTYPE_HDR;HDR +DYNPROFILEEDITOR_IMGTYPE_PS;Pixel-Shift +DYNPROFILEEDITOR_IMGTYPE_STD;Standard +FILEBROWSER_CACHECLEARFROMFULL;Alle zwischengespeicherte Profile löschen +FILEBROWSER_CACHECLEARFROMPARTIAL;Alle NICHT zwischengespeicherte Profile löschen +HISTORY_MSG_489;(Dynamikkompression)\nDetails +HISTORY_MSG_COLORTONING_LABREGION_AB;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich +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_SATURATION;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Sättigung +HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Maske anzeigen +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_SH_COLORSPACE;Farbraum +PARTIALPASTE_DEHAZE;Bildschleier entfernen +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_THEME;Oberflächendesign +PREFERENCES_AUTOSAVE_TP_OPEN;Werkzeugstatus vor dem Beenden automatisch speichern +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_FILEBROWSERTOOLBARSINGLEROW;Einzeilige Toolbar +TP_COLORAPP_ABSOLUTELUMINANCE;Absolute Luminanz +TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;Bei manueller Einstellung werden Werte über 65 empfohlen. +TP_COLORAPP_MEANLUMINANCE;Mittlere Luminanz (Yb%) +TP_COLORTONING_LABREGIONS;L*a*b*-Farbkorrektur Bereiche +TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +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_SATURATION;Sättigung +TP_COLORTONING_LABREGION_SHOWMASK;Maske anzeigen +TP_DEHAZE_DEPTH;Tiefe +TP_DEHAZE_LABEL;Bildschleier entfernen +TP_DEHAZE_SHOW_DEPTH_MAP;Maske anzeigen +TP_DEHAZE_STRENGTH;Intensität +TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatisch (Lensfun) +TP_LENSPROFILE_CORRECTION_LCPFILE;LCP-Datei +TP_LENSPROFILE_CORRECTION_MANUAL;Benutzerdefiniert (Lensfun) +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_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_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_TM_FATTAL_THRESHOLD;Details +TP_WBALANCE_PICKER;Farbwähler From 546c8ca381d6da315fb0db783412732a55ce12c0 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 22 Nov 2018 08:55:08 +0100 Subject: [PATCH 077/116] Removed obsolete PREFERENCES_CIEART* keys --- rtdata/languages/Chinese (Simplified) | 4 ---- rtdata/languages/Deutsch | 4 ---- rtdata/languages/Espanol | 3 --- rtdata/languages/Francais | 4 ---- rtdata/languages/Italiano | 3 --- rtdata/languages/Nederlands | 4 ---- rtdata/languages/Polish | 3 --- rtdata/languages/Polish (Latin Characters) | 3 --- rtdata/languages/Russian | 3 --- rtdata/languages/Serbian (Cyrilic Characters) | 3 --- rtdata/languages/Serbian (Latin Characters) | 3 --- rtdata/languages/Swedish | 4 ---- 12 files changed, 41 deletions(-) diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 850d028b2..d46b9f6f7 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -496,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 最大缓存数 diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 269d90bc9..1b737c524 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -1099,10 +1099,6 @@ PREFERENCES_BLACKBODY;Wolfram 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 diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index abac30029..1a8506d76 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -725,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 diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 976324a51..074efb84d 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -1054,10 +1054,6 @@ 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 diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 6155ae7b5..d07e50f2b 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -631,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. diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 7afbdb57c..feb3cef52 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -916,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 diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 385f71041..763905496 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -680,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 diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index df6e5c941..e1d110970 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -680,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 diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index d07ef6f6d..36f7f64a6 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -705,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;Выше diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 37ca4dc1e..1d5c6b3f9 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] [ИСО] [Објектив] [Фото-апарат] diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index c33abc2e7..97399f629 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] diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 7022c8554..5d93a9279 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -821,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 From 1d8cd22c0a6c6bf0b1e984d9dcd5de70fd2ba06a Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 22 Nov 2018 08:57:33 +0100 Subject: [PATCH 078/116] generateTranslationDiffs --- rtdata/languages/Deutsch | 134 +++++++++++++++++++-------------------- 1 file changed, 65 insertions(+), 69 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 1b737c524..74015b509 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -114,6 +114,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 @@ -186,6 +190,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 @@ -791,12 +797,26 @@ 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_LABREGION_AB;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich +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_SATURATION;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Sättigung +HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Maske anzeigen +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 @@ -821,6 +841,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 @@ -1021,6 +1042,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 @@ -1086,9 +1108,15 @@ 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 PREFERENCES_BATCH_PROCESSING;Stapelverarbeitung PREFERENCES_BEHADDALL;Alle hinzufügen PREFERENCES_BEHADDALLHINT;Setzt alle Parameter auf Hinzufügen.\nAnpassungen der Parameter in der Hintergrundstapelverarbeitung werden als Deltas zu den gespeicherten Werten interpretiert. @@ -1096,6 +1124,11 @@ 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 @@ -1142,6 +1175,7 @@ PREFERENCES_EDITORCMDLINE;Benutzerdefinierte Befehlszeile PREFERENCES_EDITORLAYOUT;Editor-Layout PREFERENCES_EXTERNALEDITOR;Externer Editor PREFERENCES_FBROWSEROPTS;Bildinformationen und Miniaturbilder +PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Einzeilige Toolbar PREFERENCES_FILEFORMAT;Dateiformat PREFERENCES_FLATFIELDFOUND;Gefunden PREFERENCES_FLATFIELDSDIR;Weißbild-Verzeichnis @@ -1424,6 +1458,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_ABSOLUTELUMINANCE;Absolute Luminanz TP_COLORAPP_ALGO;Algorithmus TP_COLORAPP_ALGO_ALL;Alle TP_COLORAPP_ALGO_JC;Helligkeit + Buntheit (JH) @@ -1434,6 +1469,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. @@ -1464,6 +1500,7 @@ 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 @@ -1505,6 +1542,16 @@ TP_COLORTONING_LAB;L*a*b*-Überlagerung TP_COLORTONING_LABEL;Farbanpassungen 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_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_SATURATION;Sättigung +TP_COLORTONING_LABREGION_SHOWMASK;Maske anzeigen 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. @@ -1553,6 +1600,10 @@ 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! @@ -1791,7 +1842,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_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 @@ -1834,6 +1894,7 @@ 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;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 @@ -1866,6 +1927,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 @@ -2081,6 +2144,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 @@ -2302,6 +2366,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 @@ -2324,72 +2389,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;Alle -DYNPROFILEEDITOR_IMGTYPE_HDR;HDR -DYNPROFILEEDITOR_IMGTYPE_PS;Pixel-Shift -DYNPROFILEEDITOR_IMGTYPE_STD;Standard -FILEBROWSER_CACHECLEARFROMFULL;Alle zwischengespeicherte Profile löschen -FILEBROWSER_CACHECLEARFROMPARTIAL;Alle NICHT zwischengespeicherte Profile löschen -HISTORY_MSG_489;(Dynamikkompression)\nDetails -HISTORY_MSG_COLORTONING_LABREGION_AB;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich -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_SATURATION;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Sättigung -HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Maske anzeigen -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_SH_COLORSPACE;Farbraum -PARTIALPASTE_DEHAZE;Bildschleier entfernen -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_THEME;Oberflächendesign -PREFERENCES_AUTOSAVE_TP_OPEN;Werkzeugstatus vor dem Beenden automatisch speichern -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_FILEBROWSERTOOLBARSINGLEROW;Einzeilige Toolbar -TP_COLORAPP_ABSOLUTELUMINANCE;Absolute Luminanz -TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;Bei manueller Einstellung werden Werte über 65 empfohlen. -TP_COLORAPP_MEANLUMINANCE;Mittlere Luminanz (Yb%) -TP_COLORTONING_LABREGIONS;L*a*b*-Farbkorrektur Bereiche -TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 -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_SATURATION;Sättigung -TP_COLORTONING_LABREGION_SHOWMASK;Maske anzeigen -TP_DEHAZE_DEPTH;Tiefe -TP_DEHAZE_LABEL;Bildschleier entfernen -TP_DEHAZE_SHOW_DEPTH_MAP;Maske anzeigen -TP_DEHAZE_STRENGTH;Intensität -TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatisch (Lensfun) -TP_LENSPROFILE_CORRECTION_LCPFILE;LCP-Datei -TP_LENSPROFILE_CORRECTION_MANUAL;Benutzerdefiniert (Lensfun) -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_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_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_TM_FATTAL_THRESHOLD;Details -TP_WBALANCE_PICKER;Farbwähler From 73898e1a3f07d4659f15524310355627aa4f2db0 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Thu, 22 Nov 2018 09:45:59 +0100 Subject: [PATCH 079/116] Enhanced version of the "L*a*b* regions" color toning, adding mask blur and ASC-CDL controls --- rtdata/languages/default | 20 +++++- rtengine/iplabregions.cc | 131 +++++++++++++++++++++++++++++++++----- rtengine/procparams.cc | 40 ++++++++++-- rtengine/procparams.h | 7 +- rtgui/colortoning.cc | 134 +++++++++++++++++++++++++++++++++++---- rtgui/colortoning.h | 14 +++- 6 files changed, 306 insertions(+), 40 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index d3e40cb19..e734c4b44 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_SHOWMASK;CT - region show 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_COLORTONING_LABREGION_SLOPE;CT - region slope +HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power +HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth HISTORY_MSG_DEHAZE_ENABLED;Haze Removal HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map @@ -1465,8 +1470,14 @@ 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_MASKBLUR;Mask Blur +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 @@ -1475,6 +1486,9 @@ TP_COLORTONING_LABREGION_LIST_TITLE;Correction TP_COLORTONING_LABREGION_MASK;Mask TP_COLORTONING_LABREGION_SATURATION;Saturation TP_COLORTONING_LABREGION_SHOWMASK;Show mask +TP_COLORTONING_LABREGION_SLOPE;Slope +TP_COLORTONING_LABREGION_OFFSET;Offset +TP_COLORTONING_LABREGION_POWER;Power 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. 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/procparams.cc b/rtengine/procparams.cc index b82a7d440..80230a0ae 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); } diff --git a/rtengine/procparams.h b/rtengine/procparams.h index c81b17c62..9a45ac922 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -456,13 +456,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/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..7809756b4 100644 --- a/rtgui/colortoning.h +++ b/rtgui/colortoning.h @@ -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; From f64cb76c218bae5a644e30018d4017df4771cb33 Mon Sep 17 00:00:00 2001 From: Roel Baars <6567747+Thanatomanic@users.noreply.github.com> Date: Thu, 22 Nov 2018 10:41:49 +0100 Subject: [PATCH 080/116] Fix for #5009 --- rtengine/imagefloat.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/imagefloat.h b/rtengine/imagefloat.h index bd7ae2a46..cb0792dc5 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -218,7 +218,7 @@ 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); From 78b5b784374c6e56aba154f48e2a254980704563 Mon Sep 17 00:00:00 2001 From: Roel Baars <6567747+Thanatomanic@users.noreply.github.com> Date: Thu, 22 Nov 2018 10:51:41 +0100 Subject: [PATCH 081/116] Fixes clang warning #5010 --- rtgui/batchqueuepanel.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/batchqueuepanel.h b/rtgui/batchqueuepanel.h index e21e01352..8ada3ae00 100644 --- a/rtgui/batchqueuepanel.h +++ b/rtgui/batchqueuepanel.h @@ -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 (); From d2dcd437b4889dd22def1cdb51bbb243fcc632df Mon Sep 17 00:00:00 2001 From: Roel Baars <6567747+Thanatomanic@users.noreply.github.com> Date: Thu, 22 Nov 2018 10:52:17 +0100 Subject: [PATCH 082/116] Fixes clang warning #5010 --- rtgui/batchtoolpanelcoord.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; From c667ec4a380078fdcf6c7599e1dce0bfeaf35f3e Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 22 Nov 2018 13:41:10 +0100 Subject: [PATCH 083/116] Fix some coverity issues --- rtexif/rtexif.cc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index f1c807126..d79fd1849 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -368,6 +368,7 @@ void TagDirectory::addTag (Tag* tag) // look up if it already exists: if (getTag (tag->getID())) { delete tag; + tag = nullptr; } else { tags.push_back (tag); } @@ -379,6 +380,7 @@ 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); } @@ -2106,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 (); } @@ -2510,7 +2514,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); @@ -2836,7 +2840,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); From fddb0ec50d7d6ccaa997e577b9b436fd34dd72dd Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Thu, 22 Nov 2018 15:25:57 +0100 Subject: [PATCH 084/116] fix black thumnbail issue for float DNGs --- rtengine/rtthumbnail.cc | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 150582f57..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(); From 831e18ca4556ae1273de9b8c0a2c5554fe59f08d Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 22 Nov 2018 16:19:16 +0100 Subject: [PATCH 085/116] Add override keyword. Thanks @Floessie --- rtengine/curves.h | 16 ++--- rtengine/dcraw.cc | 2 +- rtengine/dcraw.h | 3 +- rtengine/dcrop.h | 12 ++-- rtengine/histmatching.cc | 2 +- rtengine/iccstore.cc | 2 +- rtengine/iimage.h | 46 +++++++------- rtengine/image16.h | 2 +- rtengine/image8.h | 2 +- rtengine/imagedata.h | 52 ++++++++-------- rtengine/imagefloat.h | 2 +- rtengine/imageio.h | 2 +- rtengine/imagesource.h | 14 ++--- rtengine/improccoordinator.h | 94 ++++++++++++++--------------- rtengine/lcp.h | 10 +-- rtengine/pdaflinesfilter.cc | 4 +- rtengine/processingjob.h | 4 +- rtengine/procparams.h | 2 - rtengine/rawimagesource.h | 72 +++++++++++----------- rtengine/rawmetadatalocation.h | 2 +- rtengine/rtlensfun.h | 2 +- rtengine/stdimagesource.h | 44 +++++++------- rtexif/canonattribs.cc | 34 +++++------ rtexif/nikonattribs.cc | 18 +++--- rtexif/olympusattribs.cc | 14 ++--- rtexif/pentaxattribs.cc | 86 +++++++++++++------------- rtexif/rtexif.h | 10 +-- rtexif/sonyminoltaattribs.cc | 42 ++++++------- rtexif/stdattribs.cc | 20 +++--- rtgui/adjuster.h | 2 +- rtgui/batchqueue.h | 28 ++++----- rtgui/batchqueueentry.h | 16 ++--- rtgui/batchqueuepanel.h | 2 +- rtgui/bayerpreprocess.h | 14 ++--- rtgui/bayerprocess.h | 22 +++---- rtgui/bayerrawexposure.h | 16 ++--- rtgui/blackwhite.h | 28 ++++----- rtgui/cacheimagedata.h | 50 +++++++-------- rtgui/cacorrection.h | 14 ++--- rtgui/chmixer.h | 16 ++--- rtgui/coarsepanel.h | 4 +- rtgui/colorappearance.h | 30 ++++----- rtgui/colortoning.h | 42 ++++++------- rtgui/coordinateadjuster.h | 2 +- rtgui/crop.h | 40 ++++++------ rtgui/crophandler.h | 8 +-- rtgui/cropwindow.h | 38 ++++++------ rtgui/curveeditor.h | 22 +++---- rtgui/curveeditorgroup.h | 6 +- rtgui/darkframe.h | 4 +- rtgui/defringe.h | 22 +++---- rtgui/dehaze.h | 14 ++--- rtgui/diagonalcurveeditorsubgroup.h | 40 ++++++------ rtgui/dirbrowser.h | 2 +- rtgui/dirpyrdenoise.h | 32 +++++----- rtgui/dirpyrequalizer.h | 28 ++++----- rtgui/distortion.h | 14 ++--- rtgui/edit.h | 30 ++++----- rtgui/editorpanel.h | 22 +++---- rtgui/editwindow.h | 6 +- rtgui/epd.h | 14 ++--- rtgui/exifpanel.h | 8 +-- rtgui/fattaltonemap.h | 14 ++--- rtgui/filebrowser.h | 32 +++++----- rtgui/filebrowserentry.h | 28 ++++----- rtgui/filecatalog.h | 30 ++++----- rtgui/filepanel.h | 8 +-- rtgui/filmsimulation.h | 14 ++--- rtgui/flatcurveeditorsubgroup.h | 32 +++++----- rtgui/flatfield.h | 18 +++--- rtgui/gradient.h | 32 +++++----- rtgui/guiutils.h | 40 ++++++------ rtgui/histogrampanel.h | 46 +++++++------- rtgui/history.h | 4 +- rtgui/hsvequalizer.h | 18 +++--- rtgui/iccprofilecreator.h | 4 +- rtgui/icmpanel.h | 12 ++-- rtgui/ilabel.h | 6 +- rtgui/imagearea.h | 44 +++++++------- rtgui/imageareapanel.h | 2 +- rtgui/impulsedenoise.h | 16 ++--- rtgui/indclippedpanel.h | 2 +- rtgui/inspector.h | 14 ++--- rtgui/iptcpanel.h | 6 +- rtgui/labcurve.h | 26 ++++---- rtgui/labgrid.h | 16 ++--- rtgui/lensgeom.h | 8 +-- rtgui/lensprofile.h | 6 +- rtgui/localcontrast.h | 14 ++--- rtgui/main.cc | 2 +- rtgui/metadatapanel.h | 12 ++-- rtgui/mycurve.h | 16 ++--- rtgui/mydiagonalcurve.h | 26 ++++---- rtgui/myflatcurve.h | 24 ++++---- rtgui/navigator.h | 8 +-- rtgui/options.h | 4 +- rtgui/pcvignette.h | 16 ++--- rtgui/perspective.h | 14 ++--- rtgui/popupbutton.h | 2 +- rtgui/preferences.h | 8 +-- rtgui/preprocess.h | 8 +-- rtgui/previewhandler.h | 8 +-- rtgui/previewmodepanel.h | 2 +- rtgui/previewwindow.h | 30 ++++----- rtgui/profilepanel.h | 12 ++-- rtgui/profilestorecombobox.cc | 2 +- rtgui/progressconnector.h | 8 +-- rtgui/prsharpening.h | 28 ++++----- rtgui/rawcacorrection.h | 16 ++--- rtgui/rawexposure.h | 14 ++--- rtgui/resize.h | 20 +++--- rtgui/retinex.h | 26 ++++---- rtgui/rgbcurves.h | 16 ++--- rtgui/rotate.h | 14 ++--- rtgui/rtwindow.h | 18 +++--- rtgui/saveformatpanel.h | 6 +- rtgui/shadowshighlights.h | 16 ++--- rtgui/sharpenedge.h | 16 ++--- rtgui/sharpening.h | 28 ++++----- rtgui/sharpenmicro.h | 16 ++--- rtgui/shcselector.h | 20 +++--- rtgui/softlight.h | 14 ++--- rtgui/splash.h | 12 ++-- rtgui/thresholdadjuster.h | 2 +- rtgui/thresholdselector.h | 22 +++---- rtgui/thumbbrowserbase.h | 28 ++++----- rtgui/tonecurve.h | 28 ++++----- rtgui/toolpanel.h | 10 +-- rtgui/toolpanelcoord.h | 50 +++++++-------- rtgui/vibrance.h | 34 +++++------ rtgui/vignetting.h | 14 ++--- rtgui/wavelet.h | 36 +++++------ rtgui/whitebalance.h | 20 +++--- rtgui/xtransprocess.h | 18 +++--- rtgui/xtransrawexposure.h | 14 ++--- 135 files changed, 1250 insertions(+), 1251 deletions(-) diff --git a/rtengine/curves.h b/rtengine/curves.h index d9ae15183..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; }; diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 7e4c02015..7d4ec4376 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -6068,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 }; diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h index aa49b99ce..923d6190f 100644 --- a/rtengine/dcraw.h +++ b/rtengine/dcraw.h @@ -261,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; } @@ -428,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.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/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 1f24852d0..e8463a1d8 100644 --- a/rtengine/iccstore.cc +++ b/rtengine/iccstore.cc @@ -623,7 +623,7 @@ private: struct PMatrix { double matrix[3][3]; PMatrix(): matrix{} {} - PMatrix(const CMatrix &m) + explicit PMatrix(const CMatrix &m) { set(m); } diff --git a/rtengine/iimage.h b/rtengine/iimage.h index 5738b4655..3549d4dae 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -257,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) { @@ -327,7 +327,7 @@ public: } } - void rotate (int deg) + void rotate (int deg) override { if (deg == 90) { @@ -446,7 +446,7 @@ public: } } - void hflip () + void hflip () override { int width2 = width / 2; @@ -470,7 +470,7 @@ public: #endif } - void vflip () + void vflip () override { int height2 = height / 2; @@ -648,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) { @@ -736,7 +736,7 @@ public: } } - void rotate (int deg) + void rotate (int deg) override { if (deg == 90) { @@ -863,7 +863,7 @@ public: } } - void hflip () + void hflip () override { int width2 = width / 2; @@ -895,7 +895,7 @@ public: #endif } - void vflip () + void vflip () override { int height2 = height / 2; @@ -961,7 +961,7 @@ public: } } - void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const + 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.; @@ -993,7 +993,7 @@ public: } } - void getAutoWBMultipliers (double &rm, double &gm, double &bm) const + void getAutoWBMultipliers (double &rm, double &gm, double &bm) const override { double avg_r = 0.; @@ -1067,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) const + int tran) const override { int x; int y; @@ -1297,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) { @@ -1351,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) { @@ -1485,7 +1485,7 @@ public: } } - void hflip () + void hflip () override { int width2 = width / 2; @@ -1521,7 +1521,7 @@ public: } } - void vflip () + void vflip () override { AlignedBuffer lBuffer(3 * width); @@ -1570,7 +1570,7 @@ public: } } - void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const + 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.; @@ -1602,7 +1602,7 @@ public: } } - void getAutoWBMultipliers (double &rm, double &gm, double &bm) const + void getAutoWBMultipliers (double &rm, double &gm, double &bm) const override { double avg_r = 0.; @@ -1676,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) const + int tran) const override { int x; int y; @@ -1782,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. @@ -1797,7 +1797,7 @@ public: class IImage16 : public IImage, public PlanarRGBData { public: - virtual ~IImage16() {} + ~IImage16() override {} }; } diff --git a/rtengine/image16.h b/rtengine/image16.h index 940416254..9f73c322b 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -38,7 +38,7 @@ public: Image16(); Image16(int width, int height); - ~Image16(); + ~Image16() override; Image16* copy() const; diff --git a/rtengine/image8.h b/rtengine/image8.h index 2cc670a4a..8928cf85b 100644 --- a/rtengine/image8.h +++ b/rtengine/image8.h @@ -36,7 +36,7 @@ public: Image8 (); Image8 (int width, int height); - ~Image8 (); + ~Image8 () override; Image8* copy () const; 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.h b/rtengine/imagefloat.h index cb0792dc5..9d7c69aef 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -42,7 +42,7 @@ public: Imagefloat (); Imagefloat (int width, int height); - ~Imagefloat (); + ~Imagefloat () override; Imagefloat* copy () const; diff --git a/rtengine/imageio.h b/rtengine/imageio.h index 5970866f0..60bf6bc43 100644 --- a/rtengine/imageio.h +++ b/rtengine/imageio.h @@ -72,7 +72,7 @@ public: loadedProfileLength(0), iptc(nullptr), exifRoot (nullptr), sampleFormat(IIOSF_UNKNOWN), sampleArrangement(IIOSA_UNKNOWN) {} - virtual ~ImageIO (); + ~ImageIO () override; void setProgressListener (ProgressListener* l); void setSampleFormat(IIOSampleFormat sFormat); diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index 2c7ded588..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) {}; @@ -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.h b/rtengine/improccoordinator.h index 356ef6636..488cf28c0 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -219,85 +219,85 @@ protected: 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,70 +305,70 @@ 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; } diff --git a/rtengine/lcp.h b/rtengine/lcp.h index d588ac381..aa6e24be8 100644 --- a/rtengine/lcp.h +++ b/rtengine/lcp.h @@ -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/pdaflinesfilter.cc b/rtengine/pdaflinesfilter.cc index 86c6f2d4c..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; 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.h b/rtengine/procparams.h index c81b17c62..81416b169 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; diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 7244f4c7c..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 (const 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.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/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/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.h b/rtexif/rtexif.h index d7004f388..f6960bc09 100644 --- a/rtexif/rtexif.h +++ b/rtexif/rtexif.h @@ -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 caf1b8eff..2b75922b7 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 8ada3ae00..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); 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.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.h b/rtgui/colortoning.h index 8fb640cba..acf3fa8b5 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(); 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.h b/rtgui/crop.h index d3b5c7b6b..289954398 100644 --- a/rtgui/crop.h +++ b/rtgui/crop.h @@ -41,42 +41,42 @@ 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 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) { 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.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.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.h b/rtgui/dirbrowser.h index a3f451101..62bc6f4a4 100644 --- a/rtgui/dirbrowser.h +++ b/rtgui/dirbrowser.h @@ -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 611d95e1c..1540dc5ac 100644 --- a/rtgui/edit.h +++ b/rtgui/edit.h @@ -348,9 +348,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 @@ -363,9 +363,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 @@ -376,9 +376,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 @@ -394,9 +394,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" @@ -431,9 +431,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.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 8cf93dbf8..736e46bd4 100644 --- a/rtgui/editwindow.h +++ b/rtgui/editwindow.h @@ -55,12 +55,12 @@ public: void toFront(); bool keyPressed (GdkEventKey* event); - bool on_configure_event(GdkEventConfigure* event); - bool on_delete_event(GdkEventAny* 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 (); + 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.h b/rtgui/exifpanel.h index 5121eff4f..cd27cb780 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.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 5d5bd7e8e..b1fa8c54b 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 Glib::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.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.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..f2c9af621 100644 --- a/rtgui/filmsimulation.h +++ b/rtgui/filmsimulation.h @@ -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.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 8816eca4f..074e3bacc 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.h b/rtgui/iccprofilecreator.h index 74fa4bc54..23e5b86c8 100644 --- a/rtgui/iccprofilecreator.h +++ b/rtgui/iccprofilecreator.h @@ -91,8 +91,8 @@ private: void primariesChanged(); void illuminantChanged(); void trcPresetsChanged(); - 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; static std::vector getGamma(); Glib::ustring getPrimariesPresetName(const Glib::ustring &preset); void getPrimaries(const Glib::ustring &preset, double *p, ColorTemp &temp); 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 30f6e76e5..00266c91b 100644 --- a/rtgui/labgrid.h +++ b/rtgui/labgrid.h @@ -85,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.h b/rtgui/lensprofile.h index 42b60a414..76c15aa9a 100644 --- a/rtgui/lensprofile.h +++ b/rtgui/lensprofile.h @@ -31,8 +31,8 @@ class LensProfilePanel final : public: LensProfilePanel(); - 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 setRawMeta(bool raw, const rtengine::FramesMetaData* pMeta); void onLCPFileChanged(); @@ -40,7 +40,7 @@ public: void onUseVignChanged(); void onUseCAChanged(); - void setBatchMode(bool yes); + void setBatchMode(bool yes) override; void onLensfunCameraChanged(); void onLensfunLensChanged(); 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.cc b/rtgui/main.cc index 8dc6b615c..7789b75ed 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -358,7 +358,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.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.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.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.h b/rtgui/preferences.h index a77e3ea82..3b78c0472 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -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/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.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 4769700f6..b35021c65 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.h b/rtgui/thumbbrowserbase.h index 02bea3646..dbc9374a0 100644 --- a/rtgui/thumbbrowserbase.h +++ b/rtgui/thumbbrowserbase.h @@ -49,21 +49,21 @@ class ThumbBrowserBase : public Gtk::Grid public: Internal (); void setParent (ThumbBrowserBase* p); - void on_realize(); - void on_style_updated(); - bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); + void on_realize() override; + void on_style_updated() 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); @@ -199,7 +199,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/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.h b/rtgui/whitebalance.h index 08ec05047..2db46b7af 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 From b7c04d3b080aaaa1bfbf8d644d7bfedfd38d8364 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 22 Nov 2018 16:39:22 +0100 Subject: [PATCH 086/116] Using 'fast' as method for preview < 100% gives wrong result when demosaic is set to 'Mono', fixes #5012 --- rtengine/improccoordinator.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 16d94dd57..ecc068bdb 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -173,13 +173,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); } From 190772af5eeffc368896e4c1598f80385bc4d22b Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 22 Nov 2018 18:40:09 +0100 Subject: [PATCH 087/116] Fix some issues found by cppcheck --- rtengine/dcrop.cc | 7 ++----- rtengine/improccoordinator.cc | 6 ++---- rtengine/improcfun.cc | 14 +++++++------- rtengine/lcp.h | 2 +- rtengine/pdaflinesfilter.h | 2 +- rtengine/procparams.cc | 2 -- rtengine/simpleprocess.cc | 9 +++------ rtgui/dirbrowser.h | 2 +- rtgui/exifpanel.cc | 2 +- rtgui/filmsimulation.h | 4 ++-- rtgui/retinex.cc | 1 - 11 files changed, 20 insertions(+), 31 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 48d1df191..81cc576c9 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -818,9 +818,7 @@ void Crop::update(int todo) //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); + Imagefloat* 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++) { @@ -834,8 +832,7 @@ void Crop::update(int todo) delete readyImg0; //adjust gamma TRC - Imagefloat* readyImg = NULL; - readyImg = parent->ipf.workingtrc(baseCrop, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope); + Imagefloat* 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++) { diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index ecc068bdb..2d6db3dd9 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -513,8 +513,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) int cw = oprevi->getWidth(); 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); + Imagefloat* 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++) { @@ -527,8 +526,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) delete readyImg0; //adjust TRC - Imagefloat* readyImg = NULL; - readyImg = ipf.workingtrc(oprevi, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope); + Imagefloat* 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++) { diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 268c1e6df..d368eb0cd 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -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(); } diff --git a/rtengine/lcp.h b/rtengine/lcp.h index aa6e24be8..2d9707907 100644 --- a/rtengine/lcp.h +++ b/rtengine/lcp.h @@ -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; 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/procparams.cc b/rtengine/procparams.cc index b82a7d440..b58f0f866 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -5081,8 +5081,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/simpleprocess.cc b/rtengine/simpleprocess.cc index 9e23b51a3..bdb3ced19 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -900,8 +900,7 @@ private: int cw = baseImg->getWidth(); int ch = baseImg->getHeight(); // put gamma TRC to 1 - Imagefloat* readyImg0 = NULL; - readyImg0 = ipf.workingtrc(baseImg, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310); + Imagefloat* 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++) { @@ -915,8 +914,7 @@ private: delete readyImg0; //adjust TRC - Imagefloat* readyImg = NULL; - readyImg = ipf.workingtrc(baseImg, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope); + Imagefloat* 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++) { @@ -1258,7 +1256,6 @@ private: } } - Imagefloat* readyImg = nullptr; cmsHPROFILE jprof = nullptr; constexpr bool customGamma = false; constexpr bool useLCMS = false; @@ -1270,7 +1267,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/rtgui/dirbrowser.h b/rtgui/dirbrowser.h index 62bc6f4a4..9d004f5f9 100644 --- a/rtgui/dirbrowser.h +++ b/rtgui/dirbrowser.h @@ -89,7 +89,7 @@ public: void updateVolumes (); void updateDirTree (const Gtk::TreeModel::iterator& iter); void updateDirTreeRoot (); - void winDirChanged (); + void winDirChanged () override; private: void addRoot (char letter); #endif diff --git a/rtgui/exifpanel.cc b/rtgui/exifpanel.cc index fa362a351..20416c549 100644 --- a/rtgui/exifpanel.cc +++ b/rtgui/exifpanel.cc @@ -261,7 +261,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/filmsimulation.h b/rtgui/filmsimulation.h index f2c9af621..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); }; 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.; From 863649a4c235606b8acef74c2b7b573a340e9049 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 22 Nov 2018 19:10:34 +0100 Subject: [PATCH 088/116] Fix another issue detected by cppcheck --- rtengine/rawimagesource.cc | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 13ff1171c..89a66f6c3 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4396,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++) @@ -4463,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]; } } @@ -4487,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; From e58519f2dc07ddecd37cb29b82d2bfbfb4dd04ec Mon Sep 17 00:00:00 2001 From: Thanatomanic <6567747+Thanatomanic@users.noreply.github.com> Date: Thu, 22 Nov 2018 21:26:58 +0100 Subject: [PATCH 089/116] Some pedantic fixes --- rtengine/cplx_wavelet_dec.cc | 2 +- rtengine/cplx_wavelet_dec.h | 2 +- rtengine/cplx_wavelet_filter_coeffs.h | 2 +- rtengine/cplx_wavelet_level.h | 2 +- rtengine/curves.cc | 16 ++++++++-------- rtengine/labimage.cc | 2 +- rtengine/rtthumbnail.h | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) 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 c0f0d9433..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() { 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/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; - }; + } }; } From 944b901a65e8d4ac139ce543d0c2fd3ab83a9704 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 22 Nov 2018 22:07:39 +0100 Subject: [PATCH 090/116] Fix some coverity issues, next try... --- rtexif/rtexif.cc | 4 ++-- rtexif/rtexif.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index d79fd1849..bea091b66 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -362,7 +362,7 @@ 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: @@ -374,7 +374,7 @@ void TagDirectory::addTag (Tag* tag) } } -void TagDirectory::addTagFront (Tag* tag) +void TagDirectory::addTagFront (Tag* &tag) { // look up if it already exists: diff --git a/rtexif/rtexif.h b/rtexif/rtexif.h index f6960bc09..2b68a6754 100644 --- a/rtexif/rtexif.h +++ b/rtexif/rtexif.h @@ -156,8 +156,8 @@ public: bool getXMPTagValue (const char* name, char* value) const; void keepTag (int ID); - void addTag (Tag* a); - void addTagFront (Tag* a); + void addTag (Tag* &a); + void addTagFront (Tag* &a); void replaceTag (Tag* a); inline Tag* getTagByIndex (int ix) { From 52ddc63f5406ff16c13e393cf2d61caa235f7697 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 23 Nov 2018 00:33:30 +0100 Subject: [PATCH 091/116] Fix coverity issues --- rtengine/eahd_demosaic.cc | 2 +- rtexif/rtexif.cc | 12 ++++++++---- rtgui/main-cli.cc | 4 +++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/rtengine/eahd_demosaic.cc b/rtengine/eahd_demosaic.cc index 4ebeb2d66..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; diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index bea091b66..39d85ace9 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -1207,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 @@ -2149,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); diff --git a/rtgui/main-cli.cc b/rtgui/main-cli.cc index 66e0b9cfc..be225378e 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 From 822ba6ae1870af98c847f8d8a3eae2da178beee0 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 23 Nov 2018 08:58:50 +0100 Subject: [PATCH 092/116] Small changes to GammaPreset in iccprofilecreator.cc --- rtgui/iccprofilecreator.cc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 60b45519a..f745598e0 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -833,23 +833,29 @@ void ICCProfileCreator::savePressed() } 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; - presetGamma = 2.2; + //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...) From e0ccb7da7d3036a56564ed083cf32fc4222f129f Mon Sep 17 00:00:00 2001 From: "luz.paz" Date: Fri, 23 Nov 2018 07:07:38 -0500 Subject: [PATCH 093/116] Misc. comment typo fixes Found via `codespell` --- rtengine/ipwavelet.cc | 8 +- rtengine/klt/trackFeatures.cc | 322 +++++++++++++++++----------------- rtgui/cropwindow.cc | 8 +- rtgui/iccprofilecreator.cc | 2 +- 4 files changed, 169 insertions(+), 171 deletions(-) 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/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 374b755ae..45372f1f5 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); @@ -351,7 +351,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 +1385,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 +1653,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) diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index f745598e0..584412120 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1131,7 +1131,7 @@ void ICCProfileCreator::savePressed() //calculate XYZ matrix for each primaries and each temp (D50, D65...) - // reduce coordonate of primaries + // 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; From c8300b137cb8aba10ec5b418bfe0110ff8ab3a3e Mon Sep 17 00:00:00 2001 From: Roel Baars <6567747+Thanatomanic@users.noreply.github.com> Date: Fri, 23 Nov 2018 19:10:04 +0100 Subject: [PATCH 094/116] Add Crop reset button - 2nd attempt (#5015) Add dedicated reset button for Crop, rearrange some GUI, disable crop buttons in batch mode --- rtdata/languages/Catala | 1 - rtdata/languages/Chinese (Simplified) | 1 - rtdata/languages/Chinese (Traditional) | 1 - rtdata/languages/Czech | 1 - rtdata/languages/Dansk | 1 - rtdata/languages/English (UK) | 1 - rtdata/languages/English (US) | 1 - rtdata/languages/Espanol | 1 - rtdata/languages/Euskara | 1 - rtdata/languages/Francais | 1 - rtdata/languages/Greek | 1 - rtdata/languages/Hebrew | 1 - rtdata/languages/Italiano | 1 - rtdata/languages/Japanese | 1 - rtdata/languages/Latvian | 1 - rtdata/languages/Magyar | 1 - rtdata/languages/Nederlands | 1 - rtdata/languages/Norsk BM | 1 - rtdata/languages/Polish | 1 - rtdata/languages/Polish (Latin Characters) | 1 - rtdata/languages/Portugues (Brasil) | 1 - rtdata/languages/Russian | 1 - rtdata/languages/Serbian (Cyrilic Characters) | 1 - rtdata/languages/Serbian (Latin Characters) | 1 - rtdata/languages/Slovak | 1 - rtdata/languages/Suomi | 1 - rtdata/languages/Swedish | 1 - rtdata/languages/Turkish | 1 - rtdata/languages/default | 7 +- rtgui/batchtoolpanelcoord.cc | 6 +- rtgui/crop.cc | 166 ++++++++++++------ rtgui/crop.h | 8 +- rtgui/thumbnail.cc | 5 + rtgui/thumbnail.h | 1 + 34 files changed, 134 insertions(+), 87 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index c9b6b4408..257807ca1 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -658,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 diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index d46b9f6f7..c9790898a 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -761,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 diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index 84f99ba81..91574c9d0 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -339,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 diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 16c68ec5d..5ccce935a 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -1425,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 diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index 1e83b4951..4a2e3c6d4 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -330,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 diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index a266349cd..07046d0e5 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -1553,7 +1553,6 @@ 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_W;Width !TP_CROP_X;X !TP_CROP_Y;Y diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 49553272b..e1d55b2a1 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -1515,7 +1515,6 @@ !TP_CROP_H;Height !TP_CROP_LABEL;Crop !TP_CROP_PPI;PPI= -!TP_CROP_SELECTCROP;Select Crop !TP_CROP_W;Width !TP_CROP_X;X !TP_CROP_Y;Y diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index 1a8506d76..da37e03fd 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -1075,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 diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index 1a3f3f036..f1cc3290a 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -330,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 diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 074efb84d..12c122a2d 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -1509,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 diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index eff50dc3a..bf03647ca 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -330,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 diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index f1bbde6f9..e0e5d8a6c 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -330,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 diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index d07e50f2b..6932a9b8c 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -944,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 diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index cbab4ca3f..11289fbce 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -1537,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 diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index 0cfcb9e04..74c7d4435 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -330,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 diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index af10a8272..ac7dd6e81 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -626,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 diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index feb3cef52..be33cc433 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -1319,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 diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index 06a675819..d7e817dbc 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -330,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 diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 763905496..71295015e 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1030,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 diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index e1d110970..6abf773b6 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -1030,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 diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 95923c6f0..e49129afd 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -1461,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 diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 36f7f64a6..acf163298 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1004,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 diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 1d5c6b3f9..6da76619f 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -909,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 diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index 97399f629..ea663dab4 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -909,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 diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index ac6dc7928..98e330bbb 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -384,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 diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index 3d450a65c..6728207d2 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -331,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 diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 5d93a9279..af522505a 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1206,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 diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index 37338ba52..30b4e2b98 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -331,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 diff --git a/rtdata/languages/default b/rtdata/languages/default index e734c4b44..759dcd1bc 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1528,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_SELECTCROP;Select +TP_CROP_RESETCROP;Reset 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 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/crop.cc b/rtgui/crop.cc index d5b246107..2484b9060 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,6 +281,7 @@ 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; @@ -482,6 +523,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 () { @@ -1296,5 +1354,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 289954398..a16683d1b 100644 --- a/rtgui/crop.h +++ b/rtgui/crop.h @@ -51,6 +51,7 @@ public: void ratioFixedChanged (); // The toggle button void refreshSize (); void selectPressed (); + void doresetCrop (); void setDimensions (int mw, int mh); void enabledChanged () override; void positionChanged (); @@ -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/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; From f5d56ffd1717e7c8468942651741902153d9a1e5 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 23 Nov 2018 19:51:01 +0100 Subject: [PATCH 095/116] Shortcut 'p' for Sharpening contrast mask, closes #5018 --- rtdata/languages/default | 2 +- rtgui/editorpanel.cc | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 759dcd1bc..5f0976900 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -934,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 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; From 7adad4688d74c33283106812ffd42ff2b2e3848f Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Fri, 23 Nov 2018 22:11:09 +0100 Subject: [PATCH 096/116] Updated translations Updated or deleted MAIN_TOOLTIP_PREVIEWSHARPMASK from f5d56f #5018 and ran generateTranslationDiffs --- rtdata/languages/Catala | 24 +++++++++++++--- rtdata/languages/Chinese (Simplified) | 24 +++++++++++++--- rtdata/languages/Chinese (Traditional) | 24 +++++++++++++--- rtdata/languages/Czech | 24 +++++++++++++--- rtdata/languages/Dansk | 24 +++++++++++++--- rtdata/languages/Deutsch | 21 +++++++++++++- rtdata/languages/English (UK) | 28 +++++++++++++++---- rtdata/languages/English (US) | 28 +++++++++++++++---- rtdata/languages/Espanol | 24 +++++++++++++--- rtdata/languages/Euskara | 24 +++++++++++++--- rtdata/languages/Francais | 18 +++++++++++- rtdata/languages/Greek | 24 +++++++++++++--- rtdata/languages/Hebrew | 24 +++++++++++++--- rtdata/languages/Italiano | 24 +++++++++++++--- rtdata/languages/Japanese | 18 +++++++++++- rtdata/languages/Latvian | 24 +++++++++++++--- rtdata/languages/Magyar | 24 +++++++++++++--- rtdata/languages/Nederlands | 24 +++++++++++++--- rtdata/languages/Norsk BM | 24 +++++++++++++--- rtdata/languages/Polish | 24 +++++++++++++--- rtdata/languages/Polish (Latin Characters) | 24 +++++++++++++--- rtdata/languages/Portugues (Brasil) | 24 +++++++++++++--- rtdata/languages/Russian | 24 +++++++++++++--- rtdata/languages/Serbian (Cyrilic Characters) | 24 +++++++++++++--- rtdata/languages/Serbian (Latin Characters) | 24 +++++++++++++--- rtdata/languages/Slovak | 24 +++++++++++++--- rtdata/languages/Suomi | 24 +++++++++++++--- rtdata/languages/Swedish | 24 +++++++++++++--- rtdata/languages/Turkish | 24 +++++++++++++--- rtdata/languages/default | 16 +++++------ 30 files changed, 586 insertions(+), 119 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 257807ca1..bf1a12876 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -1316,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 @@ -1437,7 +1442,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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_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: @@ -1751,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. @@ -1789,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 diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index c9790898a..38c4a37fe 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -1387,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 @@ -1513,7 +1518,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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: 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%. !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. @@ -1699,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. @@ -1734,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 diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index 91574c9d0..4c4e727c1 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -984,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 @@ -1133,7 +1138,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !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_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 @@ -1554,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. @@ -1596,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 diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 5ccce935a..51873b391 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -2179,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 @@ -2252,7 +2257,7 @@ 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 @@ -2282,16 +2287,27 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !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;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 diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index 4a2e3c6d4..beb4f2711 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -979,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 @@ -1129,7 +1134,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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_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 @@ -1551,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. @@ -1593,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 diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 74015b509..736247c77 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -1004,7 +1004,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 @@ -2389,3 +2389,22 @@ 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. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!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 +!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 diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 07046d0e5..648eca675 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -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 @@ -1013,7 +1019,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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 @@ -1510,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 @@ -1553,9 +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_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 diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index e1d55b2a1..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 @@ -930,7 +935,7 @@ !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 @@ -1466,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. @@ -1515,9 +1529,11 @@ !TP_CROP_H;Height !TP_CROP_LABEL;Crop !TP_CROP_PPI;PPI= +!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 diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index da37e03fd..dfd0bc84b 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -1689,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 @@ -1801,7 +1806,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !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_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: @@ -1938,19 +1943,30 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !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_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 diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index f1cc3290a..33cb478a3 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -980,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 @@ -1130,7 +1135,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !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_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 @@ -1552,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. @@ -1594,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 diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 12c122a2d..94f0f3fc9 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -932,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 @@ -2298,6 +2298,11 @@ 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 @@ -2308,6 +2313,17 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !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 diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index bf03647ca..d930c3948 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -979,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 @@ -1129,7 +1134,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !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_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 @@ -1551,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. @@ -1593,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 diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index e0e5d8a6c..64b29759a 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -980,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 @@ -1130,7 +1135,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !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_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 @@ -1552,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. @@ -1594,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 diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 6932a9b8c..6b3e6ef4d 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1564,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 @@ -1677,7 +1682,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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_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. @@ -1821,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. @@ -1859,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 diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 11289fbce..568d7c842 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -962,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 @@ -2301,6 +2301,11 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - ! 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 @@ -2311,6 +2316,17 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - !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 diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index 74c7d4435..45d06fdd8 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -980,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 @@ -1130,7 +1135,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !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_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 @@ -1552,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. @@ -1594,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 diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index ac7dd6e81..9a459d5be 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -1249,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 @@ -1373,7 +1378,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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_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: @@ -1704,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. @@ -1743,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 diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index be33cc433..e9b05ab7f 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -2094,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 @@ -2180,7 +2185,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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_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. @@ -2251,16 +2256,27 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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_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 diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index d7e817dbc..3db05ead0 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -979,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 @@ -1129,7 +1134,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !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_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 @@ -1551,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. @@ -1593,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 diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 71295015e..1026e9bd1 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1646,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 @@ -1759,7 +1764,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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_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. @@ -1886,19 +1891,30 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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_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 diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index 6abf773b6..7f3271885 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -1646,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 @@ -1759,7 +1764,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !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_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. @@ -1886,19 +1891,30 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !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_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 diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index e49129afd..b8d85ed59 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -905,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 @@ -2228,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 @@ -2266,16 +2271,27 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !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;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 diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index acf163298..c930b43d8 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1668,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 @@ -1763,7 +1768,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !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_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 @@ -1915,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. @@ -1950,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. diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 6da76619f..fe64675c8 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1540,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 @@ -1652,7 +1657,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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_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: @@ -1813,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. @@ -1851,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 diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index ea663dab4..9cffebc2f 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -1540,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 @@ -1652,7 +1657,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !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_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: @@ -1813,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. @@ -1851,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 diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index 98e330bbb..09c4d83db 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -1041,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 @@ -1185,7 +1190,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !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_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 @@ -1591,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. @@ -1633,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 diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index 6728207d2..9e05dc05b 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -981,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 @@ -1131,7 +1136,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !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_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 @@ -1552,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. @@ -1594,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 diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index af522505a..a063f0516 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1899,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 @@ -2010,7 +2015,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !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_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. @@ -2101,18 +2106,29 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !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 diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index 30b4e2b98..36e5033c4 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -980,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 @@ -1130,7 +1135,7 @@ TP_WBALANCE_TEMPERATURE;Isı !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_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 @@ -1551,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. @@ -1593,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 diff --git a/rtdata/languages/default b/rtdata/languages/default index 5f0976900..10c8ed730 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -738,13 +738,13 @@ 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_SHOWMASK;CT - region show mask HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List -HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope +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_MASKBLUR;CT - region mask blur +HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation +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 @@ -1472,7 +1472,6 @@ 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;Color correction regions TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 -TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur TP_COLORTONING_LABREGION_CHANNEL;Channel TP_COLORTONING_LABREGION_CHANNEL_ALL;All TP_COLORTONING_LABREGION_CHANNEL_B;Blue @@ -1484,11 +1483,12 @@ 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_LABREGION_OFFSET;Offset -TP_COLORTONING_LABREGION_POWER;Power 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. @@ -1528,8 +1528,8 @@ TP_CROP_GUIDETYPE;Guide type: TP_CROP_H;Height TP_CROP_LABEL;Crop TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Select TP_CROP_RESETCROP;Reset +TP_CROP_SELECTCROP;Select TP_CROP_W;Width TP_CROP_X;Left TP_CROP_Y;Top From a9d13ab56a0b9da44a7dcf5774f7a9096f13cfad Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sat, 24 Nov 2018 06:30:49 +0100 Subject: [PATCH 097/116] Update Deutsch locale --- rtdata/languages/Deutsch | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 736247c77..99c41cde4 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -72,6 +72,7 @@ #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 @@ -1591,7 +1592,7 @@ 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_SELECTCROP;Ausschnitt TP_CROP_W;Breite TP_CROP_X;Links TP_CROP_Y;Oben @@ -2393,18 +2394,18 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! 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 -!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 +HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Kanal +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_SLOPE;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Steigung +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_MASKBLUR;Maskenunschärfe +TP_COLORTONING_LABREGION_OFFSET;Versatz +TP_COLORTONING_LABREGION_POWER;Verstärkung +TP_COLORTONING_LABREGION_SLOPE;Steigung +TP_CROP_RESETCROP;Zurücksetzen From ad7f47804b8592d04de46eb5f0be01490c608015 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 24 Nov 2018 13:01:18 +0100 Subject: [PATCH 098/116] If a custom TRC is set, it is applied after every edit, fixes #5023 --- rtengine/dcrop.cc | 38 ++++++++++++++++++----------------- rtengine/improccoordinator.cc | 8 ++++++-- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 81cc576c9..7854dfb81 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -808,56 +808,58 @@ 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") { - + int cw = baseCrop->getWidth(); + int ch = baseCrop->getHeight(); + workingCrop = new Imagefloat(cw, ch); + baseCrop->copyData(workingCrop); //first put gamma TRC to 1 - int cw = baseCrop->getWidth(); - int ch = baseCrop->getHeight(); - Imagefloat* readyImg0 = parent->ipf.workingtrc(baseCrop, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310); + Imagefloat* readyImg0 = parent->ipf.workingtrc(workingCrop, 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); + workingCrop->r(row, col) = (float)readyImg0->r(row, col); + workingCrop->g(row, col) = (float)readyImg0->g(row, col); + workingCrop->b(row, col) = (float)readyImg0->b(row, col); } } delete readyImg0; //adjust gamma TRC - Imagefloat* readyImg = parent->ipf.workingtrc(baseCrop, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope); + Imagefloat* readyImg = parent->ipf.workingtrc(workingCrop, 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); + workingCrop->r(row, col) = (float)readyImg->r(row, col); + workingCrop->g(row, col) = (float)readyImg->g(row, col); + workingCrop->b(row, col) = (float)readyImg->b(row, col); } } delete readyImg; } } - } - - 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; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 2d6db3dd9..d76ccda27 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -506,8 +506,12 @@ 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); + } + + 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(); From 27e6d5e72383d0d9d7545d9498bb77b8fc9335f5 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sat, 24 Nov 2018 13:14:54 +0100 Subject: [PATCH 099/116] generateTranslationDiffs Deutsch --- rtdata/languages/Deutsch | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 99c41cde4..8cc1bc000 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -806,13 +806,18 @@ 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_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 @@ -1545,14 +1550,23 @@ 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. @@ -1592,6 +1606,7 @@ TP_CROP_GUIDETYPE;Hilfslinien: TP_CROP_H;Höhe TP_CROP_LABEL;Ausschnitt TP_CROP_PPI;PPI = +TP_CROP_RESETCROP;Zurücksetzen TP_CROP_SELECTCROP;Ausschnitt TP_CROP_W;Breite TP_CROP_X;Links @@ -2390,22 +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. -!!!!!!!!!!!!!!!!!!!!!!!!! - -HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Kanal -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_SLOPE;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Steigung -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_MASKBLUR;Maskenunschärfe -TP_COLORTONING_LABREGION_OFFSET;Versatz -TP_COLORTONING_LABREGION_POWER;Verstärkung -TP_COLORTONING_LABREGION_SLOPE;Steigung -TP_CROP_RESETCROP;Zurücksetzen From d1571658f89e31f644cf7c79d366bfe6bf41a631 Mon Sep 17 00:00:00 2001 From: Roel Baars <6567747+Thanatomanic@users.noreply.github.com> Date: Sat, 24 Nov 2018 13:37:36 +0100 Subject: [PATCH 100/116] Consistent display of lensfun profile, fixes #5024 --- rtgui/lensprofile.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index 0d5d9a0c3..e110792ec 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -194,6 +194,7 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa switch (pp->lensProf.lcMode) { case procparams::LensProfParams::LcMode::LCP: { corrLcpFileRB->set_active(true); + setManualParamsVisibility(false); break; } @@ -209,6 +210,7 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa case procparams::LensProfParams::LcMode::NONE: { corrOffRB->set_active(true); + setManualParamsVisibility(false); break; } } From 23aa0562aabc2c028202a3291dd03c91dd78ea88 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sun, 25 Nov 2018 00:00:40 +0100 Subject: [PATCH 101/116] crop tool: fix grid spacing for gtkmm < 3.20 --- rtgui/crop.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rtgui/crop.cc b/rtgui/crop.cc index 2484b9060..5bfeca61b 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -286,6 +286,20 @@ Crop::Crop(): 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 (); } From 67aa52b4ff98e4a65963fae203ed21444ea824a1 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sun, 25 Nov 2018 09:50:00 +0100 Subject: [PATCH 102/116] Update TWB-theme (cleaning & minor cosmetic changes (#5027) --- rtdata/themes/TooWaBlue-GTK3-20_.css | 92 +++++++++++++++------------- 1 file changed, 48 insertions(+), 44 deletions(-) diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index b7b5175a7..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.96 + 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 @@ -164,7 +164,9 @@ undershoot { } label { - margin: 0 0.19em; + padding: 0.083333333333333333em 0; + margin: 0.19em; + min-height: 1.333333333333333333em; } /*** Frames ************************************************************************************/ @@ -323,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 ***************************************************************************************/ @@ -927,14 +926,18 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { border-bottom: 0.083333333333333333em solid @view-grid-border; margin-left: 0.083333333333333333em; margin-right: 0.083333333333333333em; + padding: 0 0.19em; } #ToolPanelNotebook > header tabs { - margin-bottom: 0.333333333333333333em; + margin: 0 0 0.25em; } -#ToolPanelNotebook > header tab > box > image{ +#ToolPanelNotebook > header tab { + padding: 0; +} +#ToolPanelNotebook > header tab image{ min-height: 2em; min-width: 2em; - margin: 0.25em 0 0.333333333333333333em; + margin: 0.19em 0.25em 0.333333333333333333em; padding: 0; } #ToolPanelNotebook > stack { @@ -963,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; } @@ -994,9 +992,6 @@ 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.19em; -} #MetaPanelNotebook > stack { background-color: @bg-dark-grey; padding: 0 0 0.5em 0; @@ -1036,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 ***************************************************************************************/ @@ -1093,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 { @@ -1478,13 +1479,21 @@ scale + image + image + button.flat { 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; } @@ -1492,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; @@ -1708,9 +1724,6 @@ 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 @view-grid-border; @@ -1792,11 +1805,7 @@ popover button.text-button:active { /*** end ***************************************************************************************/ /*** Checkbox & Radio **************************************************************************/ -checkbutton { - padding: 0; - margin: 0.083333333333333333em 0.19em; - min-height: 1.666666666666666666em;/*x*/ -} +checkbutton, radiobutton { padding: 0.083333333333333333em 0; margin: 0.19em; @@ -1839,16 +1848,11 @@ 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 ***************************************************************************************/ @@ -1908,8 +1912,8 @@ spinbutton { margin-bottom: 0.333333333333333333em; } #MyExpander checkbutton + label + spinbutton { - margin-top: 0.333333333333333333em; - margin-bottom: 0.333333333333333333em; + margin-top: 0.416666666666666666em; + margin-bottom: 0.416666666666666666em; } /**/ From 20577ccab67a595a8e98c301a517ba07842b9836 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 25 Nov 2018 13:54:59 +0100 Subject: [PATCH 103/116] custom trc, speedup and reduced memory usage, #5025 --- rtengine/dcrop.cc | 32 +++----------------- rtengine/imagefloat.cc | 21 ++++++++----- rtengine/imagefloat.h | 2 +- rtengine/improccoordinator.cc | 34 ++++------------------ rtengine/improcfun.h | 2 +- rtengine/iplab2rgb.cc | 55 +++++++++++++++-------------------- rtengine/simpleprocess.cc | 34 ++++------------------ 7 files changed, 53 insertions(+), 127 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 7854dfb81..d9b4f1ca1 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -815,37 +815,13 @@ void Crop::update(int todo) 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 = baseCrop->getWidth(); - int ch = baseCrop->getHeight(); + const int cw = baseCrop->getWidth(); + const int ch = baseCrop->getHeight(); workingCrop = new Imagefloat(cw, ch); - baseCrop->copyData(workingCrop); //first put gamma TRC to 1 - Imagefloat* readyImg0 = parent->ipf.workingtrc(workingCrop, 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++) { - workingCrop->r(row, col) = (float)readyImg0->r(row, col); - workingCrop->g(row, col) = (float)readyImg0->g(row, col); - workingCrop->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, true, false); //adjust gamma TRC - Imagefloat* readyImg = parent->ipf.workingtrc(workingCrop, 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++) { - workingCrop->r(row, col) = (float)readyImg->r(row, col); - workingCrop->g(row, col) = (float)readyImg->g(row, col); - workingCrop->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, false, true); } } double rrm, ggm, bbm; diff --git a/rtengine/imagefloat.cc b/rtengine/imagefloat.cc index 63c521040..2dae72793 100644 --- a/rtengine/imagefloat.cc +++ b/rtengine/imagefloat.cc @@ -475,7 +475,7 @@ void Imagefloat::calcCroppedHistogram(const ProcParams ¶ms, float scale, LUT } // Parallelized transformation; create transform with cmsFLAGS_NOCACHE! -void Imagefloat::ExecCMSTransform2(cmsHTRANSFORM hTransform) +void Imagefloat::ExecCMSTransform2(cmsHTRANSFORM hTransform, bool normalizeIn) { // LittleCMS cannot parallelize planar setups -- Hombre: LCMS2.4 can! But it we use this new feature, memory allocation @@ -487,18 +487,25 @@ void Imagefloat::ExecCMSTransform2(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++) { 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; - + if (normalizeIn) { + for (int x = 0; x < width; x++) { + *(p++) = *(pR++)/ 65535.f; + *(p++) = *(pG++)/ 65535.f; + *(p++) = *(pB++)/ 65535.f; + } + } else { + for (int x = 0; x < width; x++) { + *(p++) = *(pR++); + *(p++) = *(pG++); + *(p++) = *(pB++); + } } cmsDoTransform (hTransform, pBuf.data, pBuf.data, width); diff --git a/rtengine/imagefloat.h b/rtengine/imagefloat.h index 9d7c69aef..921f86b59 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -222,7 +222,7 @@ public: void normalizeFloatTo1(); void normalizeFloatTo65535(); void calcCroppedHistogram(const ProcParams ¶ms, float scale, LUTu & hist); - void ExecCMSTransform2(cmsHTRANSFORM hTransform); + void ExecCMSTransform2(cmsHTRANSFORM hTransform, bool normalizeIn = true); void ExecCMSTransform(cmsHTRANSFORM hTransform); void ExecCMSTransform(cmsHTRANSFORM hTransform, const LabImage &labImage, int cx, int cy); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index d76ccda27..bbadbf0a7 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -28,7 +28,6 @@ #include #include #include "color.h" - #ifdef _OPENMP #include #endif @@ -511,38 +510,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) orig_prev->copyData(oprevi); } - Glib::ustring 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 = oprevi->getWidth(); - int ch = oprevi->getHeight(); + const int cw = oprevi->getWidth(); + const int ch = oprevi->getHeight(); // put gamma TRC to 1 - Imagefloat* 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); - } - } - - delete readyImg0; + ipf.workingtrc(oprevi, oprevi, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, true, false); //adjust TRC - Imagefloat* 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); - } - } - - delete readyImg; - + ipf.workingtrc(oprevi, oprevi, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, false, true); } } } diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index c3e17a050..470922508 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(Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, Glib::ustring profile, double gampos, double slpos, bool normalizeIn = true, bool normalizeOut = true); 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/iplab2rgb.cc b/rtengine/iplab2rgb.cc index da8e687ed..437144600 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -432,7 +432,7 @@ 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(Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, Glib::ustring profile, double gampos, double slpos, bool normalizeIn, bool normalizeOut) { TMatrix wprof; @@ -445,22 +445,20 @@ Imagefloat* ImProcFunctions::workingtrc(Imagefloat* working, int cw, int ch, int } double toxyz[3][3] = { { - (wprof[0][0] / dx), //I have suppressed / Color::D50x - (wprof[0][1] / dx), - (wprof[0][2] / dx) + (wprof[0][0] / (dx * (normalizeIn ? 65535.0 : 1.0))), //I have suppressed / Color::D50x + (wprof[0][1] / (dx * (normalizeIn ? 65535.0 : 1.0))), + (wprof[0][2] / (dx * (normalizeIn ? 65535.0 : 1.0))) }, { - (wprof[1][0]), - (wprof[1][1]), - (wprof[1][2]) + (wprof[1][0] / (normalizeIn ? 65535.0 : 1.0)), + (wprof[1][1] / (normalizeIn ? 65535.0 : 1.0)), + (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) + (wprof[2][0] / (dz * (normalizeIn ? 65535.0 : 1.0))), //I have suppressed / Color::D50z + (wprof[2][1] / (dz * (normalizeIn ? 65535.0 : 1.0))), + (wprof[2][2] / (dz * (normalizeIn ? 65535.0 : 1.0))) } }; - Imagefloat* image = new Imagefloat(cw, ch); - double pwr; double ts; ts = slpos; @@ -618,27 +616,22 @@ Imagefloat* ImProcFunctions::workingtrc(Imagefloat* working, int cw, int ch, int #pragma omp parallel for if (multiThread) for (int i = 0; i < ch; i++) { - float* rr = working->r(i); - float* rg = working->g(i); - float* rb = working->b(i); + float* rr = src->r(i); + float* rg = src->g(i); + float* rb = src->b(i); - float* xa = (float*)image->r(i); - float* ya = (float*)image->g(i); - float* za = (float*)image->b(i); + float* xa = (float*)dst->r(i); + float* ya = (float*)dst->g(i); + float* za = (float*)dst->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_); - + xa[j] = toxyz[0][0] * r1 + toxyz[0][1] * g1 + toxyz[0][2] * b1; + ya[j] = toxyz[1][0] * r1 + toxyz[1][1] * g1 + toxyz[1][2] * b1; + za[j] = toxyz[2][0] * r1 + toxyz[2][1] * g1 + toxyz[2][2] * b1; } } @@ -651,16 +644,14 @@ Imagefloat* ImProcFunctions::workingtrc(Imagefloat* working, int cw, int ch, int cmsHTRANSFORM hTransform = cmsCreateTransform(iprof, TYPE_RGB_FLT, oprofdef, TYPE_RGB_FLT, params->icm.outputIntent, flags); lcmsMutex->unlock(); - image->ExecCMSTransform2(hTransform); + dst->ExecCMSTransform2(hTransform, false); cmsDeleteTransform(hTransform); - image->normalizeFloatTo65535(); + if (normalizeOut) { + dst->normalizeFloatTo65535(); + } } - - - return image; - } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index bdb3ced19..e09d2fe3a 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -893,39 +893,15 @@ 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(); // put gamma TRC to 1 - Imagefloat* 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, true, false); //adjust TRC - Imagefloat* 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, false, true); } } From cfc947a865cbfe554a28ca9c80f4bf9c1eceda85 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sun, 25 Nov 2018 14:23:06 +0100 Subject: [PATCH 104/116] Moved the ICC TRC patching code for RTv2 profiles from ImProcFunctions::lab2rgbOut to ICCStore See #5026 --- rtengine/iccstore.cc | 128 ++++++++++++++++++++++++++++++++++++++++-- rtengine/iplab2rgb.cc | 77 +------------------------ 2 files changed, 125 insertions(+), 80 deletions(-) diff --git a/rtengine/iccstore.cc b/rtengine/iccstore.cc index e8463a1d8..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 diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index da8e687ed..2cbfc3df3 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -303,82 +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()) { - 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]; - if(slopetag == 0.) { - //printf("gammatag=%f\n", gammatag); - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, gammatag); - } - else { - 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; From c9817e369cd0b0d18ee95b2b65897c2fc7ca6d2d Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 25 Nov 2018 14:45:28 +0100 Subject: [PATCH 105/116] Remove Imagefloat::ExecCMSTransform2, #5025 --- rtengine/imagefloat.cc | 55 +----------------------------------------- rtengine/imagefloat.h | 2 -- rtengine/iplab2rgb.cc | 2 +- 3 files changed, 2 insertions(+), 57 deletions(-) diff --git a/rtengine/imagefloat.cc b/rtengine/imagefloat.cc index 2dae72793..940806419 100644 --- a/rtengine/imagefloat.cc +++ b/rtengine/imagefloat.cc @@ -474,59 +474,6 @@ void Imagefloat::calcCroppedHistogram(const ProcParams ¶ms, float scale, LUT } -// Parallelized transformation; create transform with cmsFLAGS_NOCACHE! -void Imagefloat::ExecCMSTransform2(cmsHTRANSFORM hTransform, bool normalizeIn) -{ - - // 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(dynamic, 16) -#endif - - for (int y = 0; y < height; y++) - { - float *p = pBuf.data, *pR = r(y), *pG = g(y), *pB = b(y); - - if (normalizeIn) { - for (int x = 0; x < width; x++) { - *(p++) = *(pR++)/ 65535.f; - *(p++) = *(pG++)/ 65535.f; - *(p++) = *(pB++)/ 65535.f; - } - } else { - for (int x = 0; x < width; x++) { - *(p++) = *(pR++); - *(p++) = *(pG++); - *(p++) = *(pB++); - } - } - - 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) { @@ -540,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 921f86b59..e1e5086b8 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -222,8 +222,6 @@ public: void normalizeFloatTo1(); void normalizeFloatTo65535(); void calcCroppedHistogram(const ProcParams ¶ms, float scale, LUTu & hist); - void ExecCMSTransform2(cmsHTRANSFORM hTransform, bool normalizeIn = true); - void ExecCMSTransform(cmsHTRANSFORM hTransform); void ExecCMSTransform(cmsHTRANSFORM hTransform, const LabImage &labImage, int cx, int cy); }; diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 437144600..3240f06b1 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -644,7 +644,7 @@ void ImProcFunctions::workingtrc(Imagefloat* src, Imagefloat* dst, int cw, int c cmsHTRANSFORM hTransform = cmsCreateTransform(iprof, TYPE_RGB_FLT, oprofdef, TYPE_RGB_FLT, params->icm.outputIntent, flags); lcmsMutex->unlock(); - dst->ExecCMSTransform2(hTransform, false); + dst->ExecCMSTransform(hTransform); cmsDeleteTransform(hTransform); if (normalizeOut) { From a3549a6247926ac05b96d3d66114a97e12ee61fc Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 25 Nov 2018 16:21:47 +0100 Subject: [PATCH 106/116] custom trc: another small speedup, #5025 --- rtengine/iplab2rgb.cc | 339 +++++++++++++++++++++--------------------- 1 file changed, 172 insertions(+), 167 deletions(-) diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 3240f06b1..38cebd17a 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -443,29 +443,26 @@ void ImProcFunctions::workingtrc(Imagefloat* src, Imagefloat* dst, int cw, int c { dx = dz = 1.0; } - double toxyz[3][3] = { + const float toxyz[3][3] = { { - (wprof[0][0] / (dx * (normalizeIn ? 65535.0 : 1.0))), //I have suppressed / Color::D50x - (wprof[0][1] / (dx * (normalizeIn ? 65535.0 : 1.0))), - (wprof[0][2] / (dx * (normalizeIn ? 65535.0 : 1.0))) + 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] / (normalizeIn ? 65535.0 : 1.0)), - (wprof[1][1] / (normalizeIn ? 65535.0 : 1.0)), - (wprof[1][2] / (normalizeIn ? 65535.0 : 1.0)) + 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 * (normalizeIn ? 65535.0 : 1.0))), //I have suppressed / Color::D50z - (wprof[2][1] / (dz * (normalizeIn ? 65535.0 : 1.0))), - (wprof[2][2] / (dz * (normalizeIn ? 65535.0 : 1.0))) + 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))) } }; - double pwr; - double ts; - ts = slpos; - + double pwr = 1.0 / gampos; + double ts = slpos; int five = mul; - pwr = 1.0 / gampos; if (gampos < 1.0) { pwr = gampos; @@ -474,7 +471,7 @@ void ImProcFunctions::workingtrc(Imagefloat* src, Imagefloat* dst, int cw, int c } // int select_temp = 1; //5003K - const double eps = 0.000000001; // not divide by zero + constexpr double eps = 0.000000001; // not divide by zero enum class ColorTemp { D50 = 5003, // for Widegamut, ProPhoto Best, Beta -> D50 @@ -484,173 +481,181 @@ void ImProcFunctions::workingtrc(Imagefloat* src, Imagefloat* dst, int cw, int c }; ColorTemp temp = ColorTemp::D50; - cmsHPROFILE oprofdef; float p[6]; //primaries - if (true) { - //primaries for 10 working profiles ==> output profiles - if (profile == "WideGamut") { - p[0] = 0.7350; //Widegamut primaries - p[1] = 0.2650; - p[2] = 0.1150; - p[3] = 0.8260; - p[4] = 0.1570; - p[5] = 0.0180; - } else if (profile == "Adobe RGB") { - p[0] = 0.6400; //Adobe primaries - p[1] = 0.3300; - p[2] = 0.2100; - p[3] = 0.7100; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (profile == "sRGB") { - p[0] = 0.6400; // sRGB primaries - p[1] = 0.3300; - p[2] = 0.3000; - p[3] = 0.6000; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (profile == "BruceRGB") { - p[0] = 0.6400; // Bruce primaries - p[1] = 0.3300; - p[2] = 0.2800; - p[3] = 0.6500; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (profile == "Beta RGB") { - p[0] = 0.6888; // Beta primaries - p[1] = 0.3112; - p[2] = 0.1986; - p[3] = 0.7551; - p[4] = 0.1265; - p[5] = 0.0352; - } else if (profile == "BestRGB") { - p[0] = 0.7347; // Best primaries - p[1] = 0.2653; - p[2] = 0.2150; - p[3] = 0.7750; - p[4] = 0.1300; - p[5] = 0.0350; - } else if (profile == "Rec2020") { - p[0] = 0.7080; // Rec2020 primaries - p[1] = 0.2920; - p[2] = 0.1700; - p[3] = 0.7970; - p[4] = 0.1310; - p[5] = 0.0460; - temp = ColorTemp::D65; - } else if (profile == "ACESp0") { - p[0] = 0.7347; // ACES P0 primaries - p[1] = 0.2653; - p[2] = 0.0000; - p[3] = 1.0; - p[4] = 0.0001; - p[5] = -0.0770; - temp = ColorTemp::D60; - } else if (profile == "ACESp1") { - p[0] = 0.713; // ACES P1 primaries - p[1] = 0.293; - p[2] = 0.165; - p[3] = 0.830; - p[4] = 0.128; - p[5] = 0.044; - temp = ColorTemp::D60; - } else if (profile == "ProPhoto") { - p[0] = 0.7347; //ProPhoto and default primaries - p[1] = 0.2653; - p[2] = 0.1596; - p[3] = 0.8404; - p[4] = 0.0366; - p[5] = 0.0001; - } else { - p[0] = 0.7347; //default primaries always unused - p[1] = 0.2653; - p[2] = 0.1596; - p[3] = 0.8404; - p[4] = 0.0366; - p[5] = 0.0001; - } - - if (slpos == 0) { - slpos = eps; - } - - GammaValues g_a; //gamma parameters - 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; - gammaParams[1] = 1. / (1.0 + g_a[4]); - gammaParams[2] = g_a[4] / (1.0 + g_a[4]); - gammaParams[3] = 1. / slpos; - gammaParams[5] = 0.0; - gammaParams[6] = 0.0; - // printf("ga0=%f ga1=%f ga2=%f ga3=%f ga4=%f\n", ga0, ga1, ga2, ga3, ga4); - - // 7 parameters for smoother curves - 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); - cmsFreeToneCurve(GammaTRC[0]); + //primaries for 10 working profiles ==> output profiles + if (profile == "WideGamut") { + p[0] = 0.7350; //Widegamut primaries + p[1] = 0.2650; + p[2] = 0.1150; + p[3] = 0.8260; + p[4] = 0.1570; + p[5] = 0.0180; + } else if (profile == "Adobe RGB") { + p[0] = 0.6400; //Adobe primaries + p[1] = 0.3300; + p[2] = 0.2100; + p[3] = 0.7100; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (profile == "sRGB") { + p[0] = 0.6400; // sRGB primaries + p[1] = 0.3300; + p[2] = 0.3000; + p[3] = 0.6000; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (profile == "BruceRGB") { + p[0] = 0.6400; // Bruce primaries + p[1] = 0.3300; + p[2] = 0.2800; + p[3] = 0.6500; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (profile == "Beta RGB") { + p[0] = 0.6888; // Beta primaries + p[1] = 0.3112; + p[2] = 0.1986; + p[3] = 0.7551; + p[4] = 0.1265; + p[5] = 0.0352; + } else if (profile == "BestRGB") { + p[0] = 0.7347; // Best primaries + p[1] = 0.2653; + p[2] = 0.2150; + p[3] = 0.7750; + p[4] = 0.1300; + p[5] = 0.0350; + } else if (profile == "Rec2020") { + p[0] = 0.7080; // Rec2020 primaries + p[1] = 0.2920; + p[2] = 0.1700; + p[3] = 0.7970; + p[4] = 0.1310; + p[5] = 0.0460; + temp = ColorTemp::D65; + } else if (profile == "ACESp0") { + p[0] = 0.7347; // ACES P0 primaries + p[1] = 0.2653; + p[2] = 0.0000; + p[3] = 1.0; + p[4] = 0.0001; + p[5] = -0.0770; + temp = ColorTemp::D60; + } else if (profile == "ACESp1") { + p[0] = 0.713; // ACES P1 primaries + p[1] = 0.293; + p[2] = 0.165; + p[3] = 0.830; + p[4] = 0.128; + p[5] = 0.044; + temp = ColorTemp::D60; + } else if (profile == "ProPhoto") { + p[0] = 0.7347; //ProPhoto and default primaries + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } else { + p[0] = 0.7347; //default primaries always unused + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; } + if (slpos == 0) { + slpos = eps; + } + + GammaValues g_a; //gamma parameters + 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; + gammaParams[1] = 1. / (1.0 + g_a[4]); + gammaParams[2] = g_a[4] / (1.0 + g_a[4]); + gammaParams[3] = 1. / slpos; + gammaParams[5] = 0.0; + gammaParams[6] = 0.0; + // printf("ga0=%f ga1=%f ga2=%f ga3=%f ga4=%f\n", ga0, ga1, ga2, ga3, ga4); + + // 7 parameters for smoother curves + 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 + const cmsHPROFILE oprofdef = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); + cmsFreeToneCurve(GammaTRC[0]); + if (oprofdef) { - #pragma omp parallel for if (multiThread) - - for (int i = 0; i < ch; i++) { - float* rr = src->r(i); - float* rg = src->g(i); - float* rb = src->b(i); - - float* xa = (float*)dst->r(i); - float* ya = (float*)dst->g(i); - float* za = (float*)dst->b(i); - - for (int j = 0; j < cw; j++) { - float r1 = rr[j]; - float g1 = rg[j]; - float b1 = rb[j]; - - xa[j] = toxyz[0][0] * r1 + toxyz[0][1] * g1 + toxyz[0][2] * b1; - ya[j] = toxyz[1][0] * r1 + toxyz[1][1] * g1 + toxyz[1][2] * b1; - za[j] = toxyz[2][0] * r1 + toxyz[2][1] * g1 + toxyz[2][2] * b1; - } - } - cmsUInt32Number flags = cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE; - - - lcmsMutex->lock(); cmsHPROFILE iprof = ICCStore::getInstance()->getXYZProfile(); + lcmsMutex->lock(); // 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(); +#ifdef _OPENMP + #pragma omp parallel if (multiThread) +#endif + { + AlignedBuffer pBuf(cw * 3); - dst->ExecCMSTransform(hTransform); +#ifdef _OPENMP + #pragma omp for schedule(dynamic, 16) +#endif + + for (int i = 0; i < ch; i++) { + float *p = pBuf.data; + float* rr = src->r(i); + float* rg = src->g(i); + float* rb = src->b(i); + + float* xa = (float*)dst->r(i); + float* ya = (float*)dst->g(i); + float* za = (float*)dst->b(i); + + for (int j = 0; j < cw; j++) { + float r1 = rr[j]; + float g1 = rg[j]; + float b1 = rb[j]; + + *(p++) = toxyz[0][0] * r1 + toxyz[0][1] * g1 + toxyz[0][2] * b1; + *(p++) = toxyz[1][0] * r1 + toxyz[1][1] * g1 + toxyz[1][2] * b1; + *(p++) = toxyz[2][0] * r1 + toxyz[2][1] * g1 + toxyz[2][2] * b1; + } + cmsDoTransform (hTransform, pBuf.data, pBuf.data, cw); + p = pBuf.data; + for (int x = 0; x < cw; x++) { + *(xa++) = *(p++); + *(ya++) = *(p++); + *(za++) = *(p++); + } + } + } cmsDeleteTransform(hTransform); if (normalizeOut) { dst->normalizeFloatTo65535(); } - } } From 4f89286b986f5d5b22783eac63f54b114830eb4f Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 25 Nov 2018 17:53:49 +0100 Subject: [PATCH 107/116] ImProcFunctions::workingtrc(): cleanup and another small speedup, #5025 --- rtengine/improcfun.h | 2 +- rtengine/iplab2rgb.cc | 72 ++++++++++++++++++------------------------- 2 files changed, 31 insertions(+), 43 deletions(-) diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 470922508..6684c8ee2 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; - void workingtrc(Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, Glib::ustring profile, double gampos, double slpos, bool normalizeIn = true, bool normalizeOut = true); + void workingtrc(const Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, const Glib::ustring &profile, double gampos, double slpos, bool normalizeIn = true, bool normalizeOut = true); 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/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 38cebd17a..9e47558ca 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -432,11 +432,9 @@ Imagefloat* ImProcFunctions::lab2rgbOut(LabImage* lab, int cx, int cy, int cw, i } -void ImProcFunctions::workingtrc(Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, Glib::ustring profile, double gampos, double slpos, bool normalizeIn, bool normalizeOut) +void ImProcFunctions::workingtrc(const Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, const Glib::ustring &profile, double gampos, double slpos, bool normalizeIn, bool normalizeOut) { - 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; @@ -574,18 +572,10 @@ void ImProcFunctions::workingtrc(Imagefloat* src, Imagefloat* dst, int cw, int c } 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; @@ -597,65 +587,63 @@ void ImProcFunctions::workingtrc(Imagefloat* src, Imagefloat* dst, int cw, int c // 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 } + 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) { - cmsUInt32Number flags = cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE; - cmsHPROFILE iprof = ICCStore::getInstance()->getXYZProfile(); + constexpr cmsUInt32Number flags = cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE; + const cmsHPROFILE iprof = ICCStore::getInstance()->getXYZProfile(); lcmsMutex->lock(); - // 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); + const cmsHTRANSFORM hTransform = cmsCreateTransform(iprof, TYPE_RGB_FLT, oprofdef, TYPE_RGB_FLT, params->icm.outputIntent, flags); lcmsMutex->unlock(); #ifdef _OPENMP #pragma omp parallel if (multiThread) #endif { AlignedBuffer pBuf(cw * 3); + const float normalize = normalizeOut ? 65535.f : 1.f; #ifdef _OPENMP - #pragma omp for schedule(dynamic, 16) + #pragma omp for schedule(dynamic, 16) nowait #endif - for (int i = 0; i < ch; i++) { + for (int i = 0; i < ch; ++i) { float *p = pBuf.data; - float* rr = src->r(i); - float* rg = src->g(i); - float* rb = src->b(i); + 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); - float* xa = (float*)dst->r(i); - float* ya = (float*)dst->g(i); - float* za = (float*)dst->b(i); - - for (int j = 0; j < cw; j++) { - float r1 = rr[j]; - float g1 = rg[j]; - float b1 = rb[j]; - - *(p++) = toxyz[0][0] * r1 + toxyz[0][1] * g1 + toxyz[0][2] * b1; - *(p++) = toxyz[1][0] * r1 + toxyz[1][1] * g1 + toxyz[1][2] * b1; - *(p++) = toxyz[2][0] * r1 + toxyz[2][1] * g1 + toxyz[2][2] * b1; + *(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; } - cmsDoTransform (hTransform, pBuf.data, pBuf.data, cw); p = pBuf.data; - for (int x = 0; x < cw; x++) { - *(xa++) = *(p++); - *(ya++) = *(p++); - *(za++) = *(p++); + 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; } } } cmsDeleteTransform(hTransform); - if (normalizeOut) { - dst->normalizeFloatTo65535(); - } } } From 9fca8ed9f1c8924191607c85b9777c4d20f100f5 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 26 Nov 2018 14:34:06 +0100 Subject: [PATCH 108/116] custom trc: speedup for preview and detail windows --- rtengine/dcrop.cc | 4 +- rtengine/improccoordinator.cc | 25 ++- rtengine/improccoordinator.h | 13 +- rtengine/improcfun.h | 2 +- rtengine/iplab2rgb.cc | 320 ++++++++++++++++++---------------- rtengine/simpleprocess.cc | 5 +- 6 files changed, 205 insertions(+), 164 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index d9b4f1ca1..778f29fe8 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -819,9 +819,9 @@ void Crop::update(int todo) const int ch = baseCrop->getHeight(); workingCrop = new Imagefloat(cw, ch); //first put gamma TRC to 1 - parent->ipf.workingtrc(baseCrop, workingCrop, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, true, false); + parent->ipf.workingtrc(baseCrop, workingCrop, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, parent->getCustomTransformIn(), true, false, true); //adjust gamma TRC - parent->ipf.workingtrc(workingCrop, workingCrop, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, false, true); + parent->ipf.workingtrc(workingCrop, workingCrop, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, parent->getCustomTransformOut(), false, true, true); } } double rrm, ggm, bbm; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index bbadbf0a7..851f78ed8 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -94,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) @@ -128,6 +128,17 @@ ImProcCoordinator::~ImProcCoordinator() } imgsrc->decreaseRef(); + + if(customTransformIn) { + cmsDeleteTransform(customTransformIn); + customTransformIn = nullptr; + } + + if(customTransformOut) { + cmsDeleteTransform(customTransformOut); + customTransformOut = nullptr; + } + updaterThreadStart.unlock(); } @@ -516,9 +527,17 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) const int cw = oprevi->getWidth(); const int ch = oprevi->getHeight(); // put gamma TRC to 1 - ipf.workingtrc(oprevi, oprevi, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, true, false); + if(customTransformIn) { + cmsDeleteTransform(customTransformIn); + customTransformIn = nullptr; + } + ipf.workingtrc(oprevi, oprevi, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, customTransformIn, true, false, true); //adjust TRC - ipf.workingtrc(oprevi, oprevi, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, false, true); + if(customTransformOut) { + cmsDeleteTransform(customTransformOut); + customTransformOut = nullptr; + } + ipf.workingtrc(oprevi, oprevi, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, customTransformOut, false, true, true); } } } diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index 488cf28c0..fb3012f62 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -215,7 +215,8 @@ protected: float colourToningSatLimit; float colourToningSatLimitOpacity; bool highQualityComputed; - + cmsHTRANSFORM customTransformIn; + cmsHTRANSFORM customTransformOut; public: ImProcCoordinator (); @@ -373,6 +374,16 @@ public: 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.h b/rtengine/improcfun.h index 6684c8ee2..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; - void workingtrc(const Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, const Glib::ustring &profile, double gampos, double slpos, bool normalizeIn = true, bool normalizeOut = true); + 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/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 0af6aa9de..9ab8e1d01 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -357,7 +357,7 @@ Imagefloat* ImProcFunctions::lab2rgbOut(LabImage* lab, int cx, int cy, int cw, i } -void ImProcFunctions::workingtrc(const Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, const Glib::ustring &profile, double gampos, double slpos, bool normalizeIn, bool normalizeOut) +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 { const TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); @@ -382,160 +382,167 @@ void ImProcFunctions::workingtrc(const Imagefloat* src, Imagefloat* dst, int cw, } }; - double pwr = 1.0 / gampos; - double ts = slpos; - int 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 - - 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; - - float p[6]; //primaries - - //primaries for 10 working profiles ==> output profiles - if (profile == "WideGamut") { - p[0] = 0.7350; //Widegamut primaries - p[1] = 0.2650; - p[2] = 0.1150; - p[3] = 0.8260; - p[4] = 0.1570; - p[5] = 0.0180; - } else if (profile == "Adobe RGB") { - p[0] = 0.6400; //Adobe primaries - p[1] = 0.3300; - p[2] = 0.2100; - p[3] = 0.7100; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (profile == "sRGB") { - p[0] = 0.6400; // sRGB primaries - p[1] = 0.3300; - p[2] = 0.3000; - p[3] = 0.6000; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (profile == "BruceRGB") { - p[0] = 0.6400; // Bruce primaries - p[1] = 0.3300; - p[2] = 0.2800; - p[3] = 0.6500; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (profile == "Beta RGB") { - p[0] = 0.6888; // Beta primaries - p[1] = 0.3112; - p[2] = 0.1986; - p[3] = 0.7551; - p[4] = 0.1265; - p[5] = 0.0352; - } else if (profile == "BestRGB") { - p[0] = 0.7347; // Best primaries - p[1] = 0.2653; - p[2] = 0.2150; - p[3] = 0.7750; - p[4] = 0.1300; - p[5] = 0.0350; - } else if (profile == "Rec2020") { - p[0] = 0.7080; // Rec2020 primaries - p[1] = 0.2920; - p[2] = 0.1700; - p[3] = 0.7970; - p[4] = 0.1310; - p[5] = 0.0460; - temp = ColorTemp::D65; - } else if (profile == "ACESp0") { - p[0] = 0.7347; // ACES P0 primaries - p[1] = 0.2653; - p[2] = 0.0000; - p[3] = 1.0; - p[4] = 0.0001; - p[5] = -0.0770; - temp = ColorTemp::D60; - } else if (profile == "ACESp1") { - p[0] = 0.713; // ACES P1 primaries - p[1] = 0.293; - p[2] = 0.165; - p[3] = 0.830; - p[4] = 0.128; - p[5] = 0.044; - temp = ColorTemp::D60; - } else if (profile == "ProPhoto") { - p[0] = 0.7347; //ProPhoto and default primaries - p[1] = 0.2653; - p[2] = 0.1596; - p[3] = 0.8404; - p[4] = 0.0366; - p[5] = 0.0001; + cmsHTRANSFORM hTransform = nullptr; + if (transform) { + hTransform = transform; } else { - p[0] = 0.7347; //default primaries always unused - p[1] = 0.2653; - p[2] = 0.1596; - p[3] = 0.8404; - p[4] = 0.0366; - p[5] = 0.0001; + + double pwr = 1.0 / gampos; + double ts = slpos; + int 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 + + 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; + + float p[6]; //primaries + + //primaries for 10 working profiles ==> output profiles + if (profile == "WideGamut") { + p[0] = 0.7350; //Widegamut primaries + p[1] = 0.2650; + p[2] = 0.1150; + p[3] = 0.8260; + p[4] = 0.1570; + p[5] = 0.0180; + } else if (profile == "Adobe RGB") { + p[0] = 0.6400; //Adobe primaries + p[1] = 0.3300; + p[2] = 0.2100; + p[3] = 0.7100; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (profile == "sRGB") { + p[0] = 0.6400; // sRGB primaries + p[1] = 0.3300; + p[2] = 0.3000; + p[3] = 0.6000; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (profile == "BruceRGB") { + p[0] = 0.6400; // Bruce primaries + p[1] = 0.3300; + p[2] = 0.2800; + p[3] = 0.6500; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (profile == "Beta RGB") { + p[0] = 0.6888; // Beta primaries + p[1] = 0.3112; + p[2] = 0.1986; + p[3] = 0.7551; + p[4] = 0.1265; + p[5] = 0.0352; + } else if (profile == "BestRGB") { + p[0] = 0.7347; // Best primaries + p[1] = 0.2653; + p[2] = 0.2150; + p[3] = 0.7750; + p[4] = 0.1300; + p[5] = 0.0350; + } else if (profile == "Rec2020") { + p[0] = 0.7080; // Rec2020 primaries + p[1] = 0.2920; + p[2] = 0.1700; + p[3] = 0.7970; + p[4] = 0.1310; + p[5] = 0.0460; + temp = ColorTemp::D65; + } else if (profile == "ACESp0") { + p[0] = 0.7347; // ACES P0 primaries + p[1] = 0.2653; + p[2] = 0.0000; + p[3] = 1.0; + p[4] = 0.0001; + p[5] = -0.0770; + temp = ColorTemp::D60; + } else if (profile == "ACESp1") { + p[0] = 0.713; // ACES P1 primaries + p[1] = 0.293; + p[2] = 0.165; + p[3] = 0.830; + p[4] = 0.128; + p[5] = 0.044; + temp = ColorTemp::D60; + } else if (profile == "ProPhoto") { + p[0] = 0.7347; //ProPhoto and default primaries + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } else { + p[0] = 0.7347; //default primaries always unused + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } + + if (slpos == 0) { + slpos = eps; + } + + GammaValues g_a; //gamma parameters + constexpr int mode = 0; + Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 + + + cmsFloat64Number gammaParams[7]; + gammaParams[4] = g_a[3] * ts; + gammaParams[0] = gampos; + gammaParams[1] = 1. / (1.0 + g_a[4]); + gammaParams[2] = g_a[4] / (1.0 + g_a[4]); + gammaParams[3] = 1. / slpos; + gammaParams[5] = 0.0; + gammaParams[6] = 0.0; + // 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 + } + + 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 (slpos == 0) { - slpos = eps; - } - - GammaValues g_a; //gamma parameters - constexpr int mode = 0; - Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 - - - cmsFloat64Number gammaParams[7]; - gammaParams[4] = g_a[3] * ts; - gammaParams[0] = gampos; - gammaParams[1] = 1. / (1.0 + g_a[4]); - gammaParams[2] = g_a[4] / (1.0 + g_a[4]); - gammaParams[3] = 1. / slpos; - gammaParams[5] = 0.0; - gammaParams[6] = 0.0; - // 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 - } - - 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(); - const cmsHTRANSFORM 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 @@ -567,8 +574,11 @@ void ImProcFunctions::workingtrc(const Imagefloat* src, Imagefloat* dst, int cw, } } } - - cmsDeleteTransform(hTransform); + if (!keepTransForm) { + cmsDeleteTransform(hTransform); + hTransform = nullptr; + } + transform = hTransform; } } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index e09d2fe3a..87c33e8f8 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -898,10 +898,11 @@ private: 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 = baseImg->getWidth(); const int ch = baseImg->getHeight(); + cmsHTRANSFORM dummy = nullptr; // put gamma TRC to 1 - ipf.workingtrc(baseImg, baseImg, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, true, false); + ipf.workingtrc(baseImg, baseImg, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, dummy, true, false, false); //adjust TRC - ipf.workingtrc(baseImg, baseImg, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, false, true); + ipf.workingtrc(baseImg, baseImg, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, dummy, false, true, false); } } From ae4cfaa9928b0832f53bad6c6a77c69a99b70153 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 26 Nov 2018 21:00:48 +0100 Subject: [PATCH 109/116] Using mouse wheel to zoom in sometimes zooms out, fixes #5036 --- rtgui/cropwindow.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 45372f1f5..6eac5e59d 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -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 From 4a6449b310f57b27c07017e4fa96f1eec7c5284f Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Tue, 27 Nov 2018 15:45:53 +0100 Subject: [PATCH 110/116] Crop: improve alignment with fixed ratios Fixes #4981 --- rtgui/crop.cc | 51 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/rtgui/crop.cc b/rtgui/crop.cc index 5bfeca61b..a6b418bd7 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -712,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; } } From 6ba989ef1cb058b11d56b658489e9de7ed014ee3 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Tue, 27 Nov 2018 12:09:39 +0100 Subject: [PATCH 111/116] gamutwarning: clamp in the intermediate transform, otherwise there's no point in checking for OOG Fixes #5019 --- rtengine/gamutwarning.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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; From d06e26356b625a19be32eef03def59e99afffffa Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 27 Nov 2018 19:54:26 +0100 Subject: [PATCH 112/116] Fix scrolling in wrong direction when using mouse wheel in filebrowser, #5036 --- rtgui/thumbbrowserbase.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index fdb551f45..5f75967e6 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 From 7f1b14c50aa46ac5e48099e43ac9121f7b790275 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 27 Nov 2018 20:06:09 +0100 Subject: [PATCH 113/116] Remove unused Image16::tofloat() --- rtengine/image16.cc | 14 -------------- rtengine/image16.h | 1 - 2 files changed, 15 deletions(-) diff --git a/rtengine/image16.cc b/rtengine/image16.cc index 618d31641..c0e97557a 100644 --- a/rtengine/image16.cc +++ b/rtengine/image16.cc @@ -310,20 +310,6 @@ Image8* Image16::to8() const return img8; } -Imagefloat* Image16::tofloat() const -{ - 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 9f73c322b..9762af990 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -43,7 +43,6 @@ public: Image16* copy() const; Image8* to8() const; - Imagefloat* tofloat() const; void getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, PreviewProps pp) const override; From 79d561469fa6d03afae75da222b6c02ccae0faf5 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 27 Nov 2018 20:06:48 +0100 Subject: [PATCH 114/116] Fix two leaks reported by coverity --- rtgui/previewloader.cc | 4 ++++ rtgui/previewloader.h | 1 + rtgui/thumbimageupdater.cc | 4 ++++ rtgui/thumbimageupdater.h | 1 + 4 files changed, 10 insertions(+) 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/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_; From b5a20fd6dfae98efa9ec357f360c2a508baf9180 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 28 Nov 2018 16:28:43 +0100 Subject: [PATCH 115/116] Fix bug in calculation of diagonal, #5032, thanks to @Konyicsiva --- rtgui/cropwindow.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 6eac5e59d..50d8f9543 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -1964,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 From 15c18325c0a6fce8c8a8c4cd0e6fc5b22b28f1c1 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 28 Nov 2018 17:04:45 +0100 Subject: [PATCH 116/116] Reset parsed extensions when empty, fixes #5040 --- rtgui/options.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index c1494a085..c267c4651 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -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")) {