Merge branch 'dev' into hidpi-icons

This commit is contained in:
Hombre 2018-12-13 00:52:07 +01:00
commit 8728142b64
57 changed files with 1929 additions and 1418 deletions

View File

@ -374,7 +374,7 @@ if(WITH_PROF)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")
endif() endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wno-deprecated-declarations") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wno-deprecated-declarations -Wno-unused-result")
if(OPTION_OMP) if(OPTION_OMP)
find_package(OpenMP) find_package(OpenMP)
if(OPENMP_FOUND) if(OPENMP_FOUND)

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

View File

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
viewBox="0 0 16 16"
version="1.1"
id="SVGRoot"
inkscape:export-filename="/tmp/template.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="0.92.2 2405546, 2018-03-11"
sodipodi:docname="curve-catmullrom-small.svg">
<sodipodi:namedview
id="base"
pagecolor="#E0E1E2"
bordercolor="#666768"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="50.5"
inkscape:cx="8"
inkscape:cy="8"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:grid-bbox="true"
inkscape:pagecheckerboard="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:object-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-bbox-midpoints="false"
inkscape:object-paths="true"
inkscape:snap-intersection-paths="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true"
inkscape:snap-object-midpoints="true"
inkscape:snap-nodes="false"
showborder="true"
borderlayer="false"
inkscape:showpageshadow="true">
<inkscape:grid
type="xygrid"
id="grid1374"
originx="1"
originy="1"
empspacing="7"
dotted="false" />
</sodipodi:namedview>
<defs
id="defs815" />
<metadata
id="metadata818">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Maciej Dworak</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:rights>
<dc:description>RawTherapee icon.</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1"
transform="translate(0,-8)">
<circle
r="2.1000001"
cy="-7.5"
cx="10.5"
id="circle3732"
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:0.80000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.00314951;stroke-opacity:1;paint-order:normal" />
<circle
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:0.80000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.00314951;stroke-opacity:1;paint-order:normal"
id="circle3734"
cx="6.5"
cy="0.5"
r="2.1000001" />
<path
sodipodi:nodetypes="caac"
inkscape:connector-curvature="0"
id="path3736"
d="M 2,2 C 2,2 5.336352,1.536652 6.539604,0.490099 8.782506,-1.46071 8.57285,-5.236736 10.5,-7.5 11.429492,-8.591604 14,-10 14,-10"
style="opacity:0.9;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<circle
r="2.6000001"
cy="-8"
cx="30"
id="circle4393"
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:0.80000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.00314951;stroke-opacity:1;paint-order:normal" />
<circle
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:0.80000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.00314951;stroke-opacity:1;paint-order:normal"
id="circle4395"
cx="26"
cy="0"
r="2.6000001" />
<path
sodipodi:nodetypes="caac"
inkscape:connector-curvature="0"
id="path4397"
d="m 22,2 c 0,0 2.945907,-0.945907 4,-2 2.108185,-2.108185 1.891815,-5.891815 4,-8 1.054093,-1.054093 4,-2 4,-2"
style="opacity:0.9;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.00314951;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 13.957617,9.0010308 a 0.99703958,0.99930081 0 0 0 -0.445902,0.128803 c 0,0 -0.669824,0.3673832 -1.458413,0.8762522 -0.134886,0.08704 -0.27712,0.195722 -0.416691,0.288832 -0.342359,-0.177992 -0.724456,-0.288832 -1.135186,-0.288832 -1.3717587,0 -2.4923491,1.123128 -2.4923491,2.498002 0,0.549878 0.1839155,1.055935 0.4867858,1.469528 -0.3263981,0.787192 -0.5622541,1.587644 -0.8002735,2.336023 -0.202987,0.638199 -0.4127132,1.221238 -0.6522978,1.750553 -0.1713441,-0.03761 -0.3473737,-0.0605 -0.5296243,-0.0605 -1.3717594,0 -2.4923497,1.123128 -2.4923497,2.498002 0,0.01 0.00179,0.0193 0.00189,0.02928 -0.1454635,0.04365 -0.2824131,0.102887 -0.424477,0.138561 -0.9240894,0.232048 -1.7076443,0.341524 -1.7076443,0.341524 a 0.99703958,0.99930081 0 1 0 0.2726033,1.978885 c 0,0 0.8810157,-0.121637 1.9198869,-0.382506 0.2647274,-0.06648 0.5384671,-0.139215 0.8158557,-0.220527 0.4365799,0.376198 0.996262,0.612788 1.6142351,0.612788 1.3717594,0 2.4923497,-1.123127 2.4923497,-2.498002 0,-0.438945 -0.1230822,-0.846798 -0.3232278,-1.206066 0.3946885,-0.776236 0.6653676,-1.595807 0.9132168,-2.375054 0.2181704,-0.685981 0.4272682,-1.338908 0.6620272,-1.939855 0.08137,0.0081 0.159969,0.02537 0.243393,0.02537 1.37176,0 2.49235,-1.123128 2.49235,-2.498002 0,-0.226332 -0.0405,-0.44107 -0.09736,-0.649871 0.08068,-0.05425 0.158822,-0.11703 0.237551,-0.167834 0.724416,-0.467449 1.33575,-0.804045 1.33575,-0.804045 A 0.99703958,0.99930081 0 0 0 13.957617,9.0010308 Z"
id="circle4399"
inkscape:connector-curvature="0" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.00314951;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 33.95898,8.996094 a 1.0001,1.0001 0 0 0 -0.26562,0.05273 c 0,0 -0.77575,0.247246 -1.68945,0.634765 -0.026,0.01104 -0.0539,0.02398 -0.0801,0.03516 C 31.40115,9.277093 30.735,9 30,9 c -1.65212,0 -3,1.347884 -3,3 0,0.717059 0.26501,1.367657 0.6875,1.884766 -0.24334,0.608424 -0.45019,1.221586 -0.63867,1.808593 -0.15423,0.480329 -0.31093,0.93057 -0.47461,1.363282 C 26.38812,17.020277 26.19646,17 26,17 c -1.65212,0 -3,1.347884 -3,3 0,0.183819 0.0228,0.362261 0.0547,0.537109 -0.74094,0.305136 -1.36133,0.511719 -1.36133,0.511719 a 1.0001,1.0001 0 1 0 0.61328,1.902344 c 0,0 0.77575,-0.247247 1.68945,-0.634766 0.026,-0.01103 0.0539,-0.02398 0.0801,-0.03516 C 24.59885,22.722907 25.265,23 26,23 c 1.65212,0 3,-1.347884 3,-3 0,-0.717059 -0.26501,-1.367657 -0.6875,-1.884766 0.24334,-0.608424 0.45019,-1.221586 0.63867,-1.808593 0.15423,-0.480329 0.31093,-0.93057 0.47461,-1.363282 C 29.61188,14.979723 29.80354,15 30,15 c 1.65212,0 3,-1.347884 3,-3 0,-0.183819 -0.0228,-0.362261 -0.0547,-0.537109 0.74094,-0.305136 1.36133,-0.511719 1.36133,-0.511719 a 1.0001,1.0001 0 0 0 -0.24805,-1.955078 1.0001,1.0001 0 0 0 -0.0996,0 z"
id="circle4405"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
id="SVGRoot"
inkscape:export-filename="/tmp/template.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="0.92.2 2405546, 2018-03-11"
sodipodi:docname="curve-catmullrom.svg">
<sodipodi:namedview
id="base"
pagecolor="#E0E1E2"
bordercolor="#666768"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="33.666667"
inkscape:cx="12"
inkscape:cy="12"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:grid-bbox="true"
inkscape:pagecheckerboard="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="true"
inkscape:object-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-intersection-paths="false"
inkscape:object-paths="true"
inkscape:snap-smooth-nodes="false"
inkscape:snap-midpoints="false"
inkscape:snap-object-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid1374"
originx="1"
originy="1"
empspacing="11"
dotted="false" />
</sodipodi:namedview>
<defs
id="defs815" />
<metadata
id="metadata818">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Maciej Dworak</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:rights>
<dc:description>RawTherapee icon.</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 21.961385,1.0008339 a 0.99786946,0.99965853 0 0 0 -0.446268,0.1249448 c 0,0 -1.320539,0.7149725 -2.872486,1.7101822 -0.726935,0.4661586 -1.500431,0.9886892 -2.23134,1.5422877 -0.422327,-0.229707 -0.896874,-0.3728822 -1.407011,-0.3728822 -1.641341,0 -2.993309,1.3543922 -2.993309,2.9986757 0,0.7218688 0.270322,1.3795002 0.701557,1.8995517 -0.64861,1.4824552 -1.035206,3.0616262 -1.445987,4.5448682 -0.377799,1.364155 -0.775111,2.628847 -1.331009,3.713203 -0.2915113,-0.09608 -0.5961135,-0.162037 -0.9178702,-0.162037 -1.6413407,0 -2.9933091,1.354392 -2.9933091,2.998676 0,0.08674 0.017964,0.168817 0.025334,0.253794 -0.4669772,0.137993 -0.9444077,0.264577 -1.4089603,0.357264 -1.453702,0.290044 -2.689301,0.392405 -2.689301,0.392405 a 0.99786946,0.99965853 0 1 0 0.1636965,1.991308 c 0,0 1.336573,-0.108641 2.9153582,-0.423641 0.6045648,-0.120624 1.2415233,-0.274321 1.8708182,-0.458782 0.543473,0.546411 1.293738,0.886327 2.1163631,0.886327 1.6413416,0 2.9933096,-1.354391 2.9933096,-2.998675 0,-0.580391 -0.175599,-1.119993 -0.465756,-1.581333 0.775824,-1.387713 1.230097,-2.936322 1.644762,-4.433589 0.394368,-1.423985 0.765718,-2.808151 1.268648,-4.0353276 0.177472,0.033413 0.359151,0.054663 0.545655,0.054663 1.641341,0 2.993309,-1.3543916 2.993309,-2.998675 0,-0.3989768 -0.08399,-0.7787742 -0.228006,-1.1284079 C 18.400516,5.4015772 19.076546,4.930379 19.718352,4.518811 21.202494,3.5670816 22.462218,2.8867193 22.462218,2.8867193 A 0.99786946,0.99965853 0 0 0 21.961385,1.0008339 Z"
id="circle817"
inkscape:connector-curvature="0" />
<circle
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:#2a7fff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="circle5141"
cx="-25"
cy="7"
r="2" />
<circle
r="2"
cy="20"
cx="-31"
id="circle5143"
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:#2a7fff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal" />
<path
sodipodi:nodetypes="caac"
inkscape:connector-curvature="0"
id="path5145"
d="m -38,22 c 0,0 5.157064,-0.421242 7,-2 3.62451,-3.104949 2.956624,-9.323638 6,-13 1.828498,-2.2088042 7,-5 7,-5"
style="opacity:0.7;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.00314951;stroke-opacity:1;paint-order:normal" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -940,6 +940,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!DONT_SHOW_AGAIN;Don't show this message again. !DONT_SHOW_AGAIN;Don't show this message again.
!DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_DELETE;Delete
@ -1577,7 +1578,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !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_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_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_PERFORMANCE;Performance
!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview
@ -1968,7 +1969,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -980,6 +980,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!DYNPROFILEEDITOR_IMGTYPE_ANY;Any !DYNPROFILEEDITOR_IMGTYPE_ANY;Any
!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR !DYNPROFILEEDITOR_IMGTYPE_HDR;HDR
@ -1932,7 +1933,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -432,9 +432,10 @@ TP_WBALANCE_TEMPERATURE;色溫
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1347,7 +1348,7 @@ TP_WBALANCE_TEMPERATURE;色溫
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !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_SET;Set
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
@ -1877,7 +1878,6 @@ TP_WBALANCE_TEMPERATURE;色溫
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -1702,7 +1702,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Vodorovně pouze PDAF řádky
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Svisle TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Svisle
TP_PREPROCESS_NO_FOUND;Nic nenalezeno TP_PREPROCESS_NO_FOUND;Nic nenalezeno
TP_PREPROCESS_PDAFLINESFILTER;Filtr PDAF linek TP_PREPROCESS_PDAFLINESFILTER;Filtr PDAF linek
TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Pokusí se potlačit proužkový šum způsobený PDAF pixely na sensoru, vznikající na některých bezzrcadlovkách Sony v některých scénách se záblesky v protisvětle.
TP_PRSHARPENING_LABEL;Doostření po změně velikosti TP_PRSHARPENING_LABEL;Doostření po změně velikosti
TP_PRSHARPENING_TOOLTIP;Obrázek po zmenšení doostří. Funguje pouze pokud je použita "Lanczos" metoda zmenšení. Náhled výsledku není v tomto nástroji možný. Podívejte se do RawPedie pro návod k použití. TP_PRSHARPENING_TOOLTIP;Obrázek po zmenšení doostří. Funguje pouze pokud je použita "Lanczos" metoda zmenšení. Náhled výsledku není v tomto nástroji možný. Podívejte se do RawPedie pro návod k použití.
TP_RAWCACORR_AUTO;Automatická korekce TP_RAWCACORR_AUTO;Automatická korekce
@ -2162,6 +2161,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: <b>-</b>
!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!
!ADJUSTER_RESET_TO_DEFAULT;<b>Click</b> - reset to default value.\n<b>Ctrl</b>+<b>click</b> - reset to initial value. !ADJUSTER_RESET_TO_DEFAULT;<b>Click</b> - reset to default value.\n<b>Ctrl</b>+<b>click</b> - reset to initial value.
!CURVEEDITOR_CATMULLROM;Flexible
!DYNPROFILEEDITOR_IMGTYPE_ANY;Any !DYNPROFILEEDITOR_IMGTYPE_ANY;Any
!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR !DYNPROFILEEDITOR_IMGTYPE_HDR;HDR
!DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift !DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift

View File

@ -424,9 +424,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1344,7 +1345,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !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_SET;Set
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
@ -1874,7 +1875,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -74,6 +74,7 @@
#73 21.11.2018 Erweiterung (TooWaBoo) RT 5.5 #73 21.11.2018 Erweiterung (TooWaBoo) RT 5.5
#74 24.11.2018 Erweiterung (TooWaBoo) RT 5.5 #74 24.11.2018 Erweiterung (TooWaBoo) RT 5.5
#75 02.12.2018 Erweiterung (TooWaBoo) RT 5.5 #75 02.12.2018 Erweiterung (TooWaBoo) RT 5.5
#76 11.12.2018 Erweiterung (TooWaBoo) RT 5.5
ABOUT_TAB_BUILD;Version ABOUT_TAB_BUILD;Version
ABOUT_TAB_CREDITS;Danksagungen ABOUT_TAB_CREDITS;Danksagungen
@ -90,9 +91,10 @@ CURVEEDITOR_AXIS_IN;x:
CURVEEDITOR_AXIS_LEFT_TAN;LT: CURVEEDITOR_AXIS_LEFT_TAN;LT:
CURVEEDITOR_AXIS_OUT;y: CURVEEDITOR_AXIS_OUT;y:
CURVEEDITOR_AXIS_RIGHT_TAN;RT: CURVEEDITOR_AXIS_RIGHT_TAN;RT:
CURVEEDITOR_CATMULLROM;Flexibel
CURVEEDITOR_CURVE;Kurve CURVEEDITOR_CURVE;Kurve
CURVEEDITOR_CURVES;Kurven CURVEEDITOR_CURVES;Kurven
CURVEEDITOR_CUSTOM;Angepasst CURVEEDITOR_CUSTOM;Standard
CURVEEDITOR_DARKS;Tiefen CURVEEDITOR_DARKS;Tiefen
CURVEEDITOR_EDITPOINT_HINT;Bearbeitung der Kurvenpunkte über Zahlenwerte.\n\nRechtsklick auf einen Kurvenpunkt um ihn auszuwählen.\nRechtsklick in einen leeren Bereich um ihn abzuwählen. CURVEEDITOR_EDITPOINT_HINT;Bearbeitung der Kurvenpunkte über Zahlenwerte.\n\nRechtsklick auf einen Kurvenpunkt um ihn auszuwählen.\nRechtsklick in einen leeren Bereich um ihn abzuwählen.
CURVEEDITOR_HIGHLIGHTS;Spitzlichter CURVEEDITOR_HIGHLIGHTS;Spitzlichter
@ -1907,7 +1909,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal (nur PDAF-Zeilen)
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertikal TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertikal
TP_PREPROCESS_NO_FOUND;Nichts gefunden TP_PREPROCESS_NO_FOUND;Nichts gefunden
TP_PREPROCESS_PDAFLINESFILTER;PDAF-Zeilenfilter 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_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_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_AUTO;Autokorrektur

View File

@ -138,9 +138,10 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1278,7 +1279,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!PREFERENCES_SHOWBASICEXIF;Show basic Exif info !PREFERENCES_SHOWBASICEXIF;Show basic Exif info
!PREFERENCES_SHOWDATETIME;Show date and time !PREFERENCES_SHOWDATETIME;Show date and time
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows !PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
@ -1838,7 +1839,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -18,9 +18,10 @@
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1210,7 +1211,7 @@
!PREFERENCES_SHOWBASICEXIF;Show basic Exif info !PREFERENCES_SHOWBASICEXIF;Show basic Exif info
!PREFERENCES_SHOWDATETIME;Show date and time !PREFERENCES_SHOWDATETIME;Show date and time
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows !PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
@ -1824,7 +1825,6 @@
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

File diff suppressed because it is too large Load Diff

View File

@ -425,9 +425,10 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1345,7 +1346,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !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_SET;Set
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
@ -1875,7 +1876,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -1834,7 +1834,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontale seulement sur les lig
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Verticale TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Verticale
TP_PREPROCESS_NO_FOUND;Aucun trouvé TP_PREPROCESS_NO_FOUND;Aucun trouvé
TP_PREPROCESS_PDAFLINESFILTER;Filtre de ligne PDAF TP_PREPROCESS_PDAFLINESFILTER;Filtre de ligne PDAF
TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Essaie de supprimer les bandes de bruit causées par les pixel PDAF sur le capteur, arrivant sur certains mirrorless Sony cameras avec des scènes en contre-jour avec un flare visible.
TP_PRSHARPENING_LABEL;Netteté post-redimensionnement TP_PRSHARPENING_LABEL;Netteté post-redimensionnement
TP_PRSHARPENING_TOOLTIP;Augmente la netteté de l'image après le redimentionnement. Ne fonctionne que si la méthode de redimensionnement "Lanczos" est utilisé. Il est impossible de prévisualiser les effets de cet outil. Cf. RawPedia pour les instructions d'utilisation. TP_PRSHARPENING_TOOLTIP;Augmente la netteté de l'image après le redimentionnement. Ne fonctionne que si la méthode de redimensionnement "Lanczos" est utilisé. Il est impossible de prévisualiser les effets de cet outil. Cf. RawPedia pour les instructions d'utilisation.
TP_RAWCACORR_AUTO;Correction automatique TP_RAWCACORR_AUTO;Correction automatique
@ -2334,3 +2333,8 @@ ZOOMPANEL_ZOOMFITSCREEN;Affiche l'image entière\nRaccourci: <b>Alt</b>-<b>f</b>
ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: <b>+</b> ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: <b>+</b>
ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: <b>-</b> ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: <b>-</b>
!!!!!!!!!!!!!!!!!!!!!!!!!
! Untranslated keys follow; remove the ! prefix after an entry is translated.
!!!!!!!!!!!!!!!!!!!!!!!!!
!CURVEEDITOR_CATMULLROM;Flexible

View File

@ -424,9 +424,10 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1344,7 +1345,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !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_SET;Set
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
@ -1874,7 +1875,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -425,9 +425,10 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1345,7 +1346,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !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_SET;Set
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
@ -1875,7 +1876,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -1291,6 +1291,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!DONT_SHOW_AGAIN;Don't show this message again. !DONT_SHOW_AGAIN;Don't show this message again.
!DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_DELETE;Delete
@ -1776,7 +1777,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !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_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_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_PERFORMANCE;Performance
!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview
@ -1986,7 +1987,6 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -1855,7 +1855,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;PDAFの場合は水平方向だ
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;垂直方向 TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;垂直方向
TP_PREPROCESS_NO_FOUND;未検出 TP_PREPROCESS_NO_FOUND;未検出
TP_PREPROCESS_PDAFLINESFILTER;PDAFラインフィルタ TP_PREPROCESS_PDAFLINESFILTER;PDAFラインフィルタ
TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Sonyのミラーレスカメラの一部では、PDAFイメージセンサが原因で、ゴーストが出るバックライトの画像でストライプイズが発生することがあり、これを軽減します。
TP_PRSHARPENING_LABEL;リサイズ後のシャープ化 TP_PRSHARPENING_LABEL;リサイズ後のシャープ化
TP_PRSHARPENING_TOOLTIP;リサイズ後の画像をシャープ化します。但し、リサイズの方式がランチョスの場合に限ります。プレビュー画面でこの機能の効果を見ることは出来ません。使用法に関してはRawPediaを参照して下さい。 TP_PRSHARPENING_TOOLTIP;リサイズ後の画像をシャープ化します。但し、リサイズの方式がランチョスの場合に限ります。プレビュー画面でこの機能の効果を見ることは出来ません。使用法に関してはRawPediaを参照して下さい。
TP_RAWCACORR_AUTO;自動補正 TP_RAWCACORR_AUTO;自動補正
@ -2340,4 +2339,5 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: <b>-</b>
! Untranslated keys follow; remove the ! prefix after an entry is translated. ! Untranslated keys follow; remove the ! prefix after an entry is translated.
!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!
!CURVEEDITOR_CATMULLROM;Flexible
!GENERAL_CURRENT;Current !GENERAL_CURRENT;Current

View File

@ -425,9 +425,10 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1345,7 +1346,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !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_SET;Set
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
@ -1875,7 +1876,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -861,6 +861,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!DONT_SHOW_AGAIN;Don't show this message again. !DONT_SHOW_AGAIN;Don't show this message again.
!DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_DELETE;Delete
@ -1516,7 +1517,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !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_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_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_PERFORMANCE;Performance
!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview
@ -1960,7 +1961,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -2049,6 +2049,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!ADJUSTER_RESET_TO_DEFAULT;<b>Click</b> - reset to default value.\n<b>Ctrl</b>+<b>click</b> - reset to initial value. !ADJUSTER_RESET_TO_DEFAULT;<b>Click</b> - reset to default value.\n<b>Ctrl</b>+<b>click</b> - reset to initial value.
!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: <b>Ctrl</b>+<b>s</b> !BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: <b>Ctrl</b>+<b>s</b>
!CURVEEDITOR_CATMULLROM;Flexible
!DONT_SHOW_AGAIN;Don't show this message again. !DONT_SHOW_AGAIN;Don't show this message again.
!DYNPROFILEEDITOR_IMGTYPE_ANY;Any !DYNPROFILEEDITOR_IMGTYPE_ANY;Any
!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR !DYNPROFILEEDITOR_IMGTYPE_HDR;HDR
@ -2317,7 +2318,6 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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;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_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_AVOIDCOLORSHIFT;Avoid color shift

View File

@ -424,9 +424,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1344,7 +1345,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !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_SET;Set
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
@ -1874,7 +1875,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -1413,6 +1413,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!DONT_SHOW_AGAIN;Don't show this message again. !DONT_SHOW_AGAIN;Don't show this message again.
!DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_DELETE;Delete
@ -1852,7 +1853,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !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_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_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_PERFORMANCE;Performance
!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview
@ -2003,7 +2004,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -1413,6 +1413,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!DONT_SHOW_AGAIN;Don't show this message again. !DONT_SHOW_AGAIN;Don't show this message again.
!DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_DELETE;Delete
@ -1852,7 +1853,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !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_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_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_PERFORMANCE;Performance
!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview
@ -2003,7 +2004,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -1744,7 +1744,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal apenas em linhas PDAF
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
TP_PREPROCESS_NO_FOUND;Nenhum encontrado TP_PREPROCESS_NO_FOUND;Nenhum encontrado
TP_PREPROCESS_PDAFLINESFILTER;Filtro de linhas PDAF TP_PREPROCESS_PDAFLINESFILTER;Filtro de linhas PDAF
TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tenta suprimir o ruído de faixas causado por pixels PDAF no sensor, ocorrendo com algumas câmeras mirrorless da Sony em algumas cenas em contraluz com "flare" visível.
TP_PRSHARPENING_LABEL;Pós-Redimensionamento de Nitidez TP_PRSHARPENING_LABEL;Pós-Redimensionamento de Nitidez
TP_PRSHARPENING_TOOLTIP;Focaliza a imagem após o redimensionamento. Funciona somente quando o método de redimensionamento "Lanczos" é usado. É impossível visualizar os efeitos dessa ferramenta. Veja RawPedia para instruções de uso. TP_PRSHARPENING_TOOLTIP;Focaliza a imagem após o redimensionamento. Funciona somente quando o método de redimensionamento "Lanczos" é usado. É impossível visualizar os efeitos dessa ferramenta. Veja RawPedia para instruções de uso.
TP_RAWCACORR_AUTO;Auto correção TP_RAWCACORR_AUTO;Auto correção
@ -2219,6 +2218,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
! Untranslated keys follow; remove the ! prefix after an entry is translated. ! Untranslated keys follow; remove the ! prefix after an entry is translated.
!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!
!CURVEEDITOR_CATMULLROM;Flexible
!DYNPROFILEEDITOR_IMGTYPE_ANY;Any !DYNPROFILEEDITOR_IMGTYPE_ANY;Any
!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR !DYNPROFILEEDITOR_IMGTYPE_HDR;HDR
!DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift !DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift

View File

@ -1433,6 +1433,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. !EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool.
!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. !EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve.
@ -1843,7 +1844,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !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_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_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_PERFORMANCE;Performance
!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview
!PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show
@ -2033,7 +2034,6 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -1248,6 +1248,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!DIRBROWSER_FOLDERS;Folders !DIRBROWSER_FOLDERS;Folders
!DONT_SHOW_AGAIN;Don't show this message again. !DONT_SHOW_AGAIN;Don't show this message again.
@ -1765,7 +1766,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !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_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_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_PERFORMANCE;Performance
!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview
@ -1987,7 +1988,6 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -1248,6 +1248,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!DIRBROWSER_FOLDERS;Folders !DIRBROWSER_FOLDERS;Folders
!DONT_SHOW_AGAIN;Don't show this message again. !DONT_SHOW_AGAIN;Don't show this message again.
@ -1765,7 +1766,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !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_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_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_PERFORMANCE;Performance
!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview
@ -1987,7 +1988,6 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -512,6 +512,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
@ -1389,7 +1390,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !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_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_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc.
@ -1890,7 +1891,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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;Iterations

View File

@ -426,9 +426,10 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1346,7 +1347,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !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_SET;Set
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
@ -1875,7 +1876,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -1801,6 +1801,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: <b>Ctrl</b>+<b>s</b> !BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: <b>Ctrl</b>+<b>s</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!DONT_SHOW_AGAIN;Don't show this message again. !DONT_SHOW_AGAIN;Don't show this message again.
!DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_DELETE;Delete
@ -2189,7 +2190,6 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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;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_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_AVOIDCOLORSHIFT;Avoid color shift

View File

@ -425,9 +425,10 @@ TP_WBALANCE_TEMPERATURE;Isı
!CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_OUT;O:
!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT:
!CURVEEDITOR_CATMULLROM;Flexible
!CURVEEDITOR_CURVE;Curve !CURVEEDITOR_CURVE;Curve
!CURVEEDITOR_CURVES;Curves !CURVEEDITOR_CURVES;Curves
!CURVEEDITOR_CUSTOM;Custom !CURVEEDITOR_CUSTOM;Standard
!CURVEEDITOR_DARKS;Darks !CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
!CURVEEDITOR_HIGHLIGHTS;Highlights !CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1345,7 +1346,7 @@ TP_WBALANCE_TEMPERATURE;Isı
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !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_SET;Set
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
!PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
@ -1874,7 +1875,6 @@ TP_WBALANCE_TEMPERATURE;Isı
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
!TP_PREPROCESS_NO_FOUND;None found !TP_PREPROCESS_NO_FOUND;None found
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !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_PRSHARPENING_LABEL;Post-Resize Sharpening !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_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_AUTO;Auto-correction

View File

@ -17,9 +17,10 @@ CURVEEDITOR_AXIS_IN;I:
CURVEEDITOR_AXIS_LEFT_TAN;LT: CURVEEDITOR_AXIS_LEFT_TAN;LT:
CURVEEDITOR_AXIS_OUT;O: CURVEEDITOR_AXIS_OUT;O:
CURVEEDITOR_AXIS_RIGHT_TAN;RT: CURVEEDITOR_AXIS_RIGHT_TAN;RT:
CURVEEDITOR_CATMULLROM;Flexible
CURVEEDITOR_CURVE;Curve CURVEEDITOR_CURVE;Curve
CURVEEDITOR_CURVES;Curves CURVEEDITOR_CURVES;Curves
CURVEEDITOR_CUSTOM;Custom CURVEEDITOR_CUSTOM;Standard
CURVEEDITOR_DARKS;Darks CURVEEDITOR_DARKS;Darks
CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node.
CURVEEDITOR_HIGHLIGHTS;Highlights CURVEEDITOR_HIGHLIGHTS;Highlights
@ -1209,7 +1210,7 @@ PREFERENCES_SET;Set
PREFERENCES_SHOWBASICEXIF;Show basic Exif info PREFERENCES_SHOWBASICEXIF;Show basic Exif info
PREFERENCES_SHOWDATETIME;Show date and time PREFERENCES_SHOWDATETIME;Show date and time
PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
PREFERENCES_SINGLETAB;Single Editor Tab Mode PREFERENCES_SINGLETAB;Single Editor Tab Mode
PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
@ -1823,7 +1824,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
TP_PREPROCESS_NO_FOUND;None found TP_PREPROCESS_NO_FOUND;None found
TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter 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_PRSHARPENING_LABEL;Post-Resize Sharpening 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_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_AUTO;Auto-correction

View File

@ -2,7 +2,7 @@
This file is part of RawTherapee. This file is part of RawTherapee.
Copyright (c) 2016-2018 TooWaBoo Copyright (c) 2016-2018 TooWaBoo
Version 2.98 Version 3.00
RawTherapee is free software: you can redistribute it and/or modify RawTherapee is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -1191,7 +1191,7 @@ window.csd:not(.fullscreen) #MainNotebook > header.top {
/*** end ***************************************************************************************/ /*** end ***************************************************************************************/
/*** Context & popups menus *****************************************************************************/ /*** Context & popups menus *****************************************************************************/
.popup > decoration { .csd.popup > decoration {
background-image: none; background-image: none;
border-radius: 0; border-radius: 0;
border: none; border: none;
@ -1245,47 +1245,47 @@ menu image:not(.dummy),
} }
/*** Selection popup list (used in filechooser) ***/ /*** Selection popup list (used in filechooser) ***/
entry > window > frame { entry > window > frame:not(.dummy) {
background-color: @bg-dark-grey; background-color: @bg-dark-grey;
padding: 0;
} }
entry > window > frame > border { entry > window > frame > border:not(.dummy) {
background-color: @bg-dark-grey; background-color: @bg-dark-grey;
padding: 0.083333333333333333em; padding: 0.083333333333333333em;
border: 0.083333333333333333em solid @accent-color;
}
entry > window > frame > border {
margin: 0.083333333333333333em; margin: 0.083333333333333333em;
border: 0.083333333333333333em solid @accent-color;
} }
/* end */ /* end */
/*** end ***************************************************************************************/ /*** end ***************************************************************************************/
/*** Popover *** Context menu filechooser ******************************************************/ /*** Popover *** Context menu filechooser ******************************************************/
popover {
popover.background { box-shadow: 0 1px 6px 1px rgba(0, 0, 0, 0.5), 0 0 0 1px @bg-dark-grey;
}
popover {
background-color: @bg-dark-grey; background-color: @bg-dark-grey;
border: 0.083333333333333333em solid @accent-color; border: 0.083333333333333333em solid @accent-color;
border-radius: 0; border-radius: 0;
padding: 0; padding: 0;
margin: 0; margin: 0;
box-shadow: 0 1px 6px 1px rgba(0, 0, 0, 0.5), 0 0 0 1px @bg-dark-grey;
} }
popover.background > box { popover > box {
padding: 0; padding: 0;
margin: -9px; margin: -9px;
} }
popover.background modelbutton { popover modelbutton {
min-height: 2em; min-height: 2em;
padding: 0 0.416666666666666666em; padding: 0 0.416666666666666666em;
margin: 0; margin: 0;
border-radius: 0; border-radius: 0;
} }
popover.background label { popover label {
margin-right: 0.5em; margin-right: 0.5em;
} }
popover.background modelbutton:hover label, popover modelbutton:hover label,
popover.background modelbutton:hover { popover modelbutton:hover {
background-color: @accent-color; background-color: @accent-color;
color: @text-hl-color; color: @text-hl-color;
} }
@ -2042,7 +2042,7 @@ entry:focus > selection {
/*** end ***************************************************************************************/ /*** end ***************************************************************************************/
/*** Window Layout *****************************************************************************/ /*** Window Layout *****************************************************************************/
:not(.popup):not(tooltip) > decoration { .csd:not(.popup):not(tooltip) > decoration {
background-color: @winHeaderbar; background-color: @winHeaderbar;
background-image: none; background-image: none;
border-radius: 0.416666666666666666em 0.416666666666666666em 0 0; border-radius: 0.416666666666666666em 0.416666666666666666em 0 0;
@ -2057,14 +2057,10 @@ headerbar {
background-image: linear-gradient(shade(@winHeaderbar,1.14), shade(@winHeaderbar,.86)); background-image: linear-gradient(shade(@winHeaderbar,1.14), shade(@winHeaderbar,.86));
border-bottom: 0.083333333333333333em solid @bg-dark-grey; border-bottom: 0.083333333333333333em solid @bg-dark-grey;
border-radius: 0.416666666666666666em 0.416666666666666666em 0 0; border-radius: 0.416666666666666666em 0.416666666666666666em 0 0;
min-height: 2.333333333333333333em; min-height: 2em;
padding: 0.083333333333333333em 0.416666666666666666em 0; padding: 0.083333333333333333em 0.416666666666666666em 0;
margin: 0; margin: 0;
} }
messagedialog headerbar {
min-height: 2em;
}
headerbar .title{ headerbar .title{
color: @winTitle; color: @winTitle;
} }
@ -2076,7 +2072,7 @@ headerbar .title{
/**/ /**/
/* Window in background */ /* Window in background */
:not(.popup):not(tooltip) > decoration:backdrop { .csd:not(.popup):not(tooltip) > decoration:backdrop {
box-shadow: 0 0.25em 0.75em 0.083333333333333333em rgba(0, 0, 0, 0.3), 0 0 0 0.083333333333333333em @bg-dark-grey; box-shadow: 0 0.25em 0.75em 0.083333333333333333em rgba(0, 0, 0, 0.3), 0 0 0 0.083333333333333333em @bg-dark-grey;
} }
headerbar:backdrop { headerbar:backdrop {

View File

@ -48,7 +48,7 @@ DiagonalCurve::DiagonalCurve (const std::vector<double>& p, int poly_pn)
bool identity = true; bool identity = true;
kind = (DiagonalCurveType)p[0]; kind = (DiagonalCurveType)p[0];
if (kind == DCT_Linear || kind == DCT_Spline || kind == DCT_NURBS) { if (kind == DCT_Linear || kind == DCT_Spline || kind == DCT_NURBS || kind == DCT_CatumullRom) {
N = (p.size() - 1) / 2; N = (p.size() - 1) / 2;
x = new double[N]; x = new double[N];
y = new double[N]; y = new double[N];
@ -86,11 +86,12 @@ DiagonalCurve::DiagonalCurve (const std::vector<double>& p, int poly_pn)
if (!identity) { if (!identity) {
if (kind == DCT_Spline && N > 2) { if (kind == DCT_Spline && N > 2) {
//spline_cubic_set (); spline_cubic_set ();
catmull_rom_set();
} else if (kind == DCT_NURBS && N > 2) { } else if (kind == DCT_NURBS && N > 2) {
NURBS_set (); NURBS_set ();
fillHash(); fillHash();
} else if (kind == DCT_CatumullRom && N > 2) {
catmull_rom_set();
} else { } else {
kind = DCT_Linear; kind = DCT_Linear;
} }
@ -325,6 +326,9 @@ inline void catmull_rom_spline(int n_points,
if (p1_y == p2_y && (p1_y == 0 || p1_y == 1)) { if (p1_y == p2_y && (p1_y == 0 || p1_y == 1)) {
for (i = 1; i < n_points-1; ++i) { for (i = 1; i < n_points-1; ++i) {
t = p1_x + space * i; t = p1_x + space * i;
if (t >= p2_x) {
break;
}
res_x.push_back(t); res_x.push_back(t);
res_y.push_back(p1_y); res_y.push_back(p1_y);
} }
@ -459,7 +463,7 @@ double DiagonalCurve::getVal (double t) const
} }
case DCT_Linear : case DCT_Linear :
// case DCT_Spline : case DCT_Spline :
{ {
// values under and over the first and last point // values under and over the first and last point
if (t > x[N - 1]) { if (t > x[N - 1]) {
@ -484,21 +488,21 @@ double DiagonalCurve::getVal (double t) const
double h = x[k_hi] - x[k_lo]; double h = x[k_hi] - x[k_lo];
// linear // linear
// if (kind == DCT_Linear) { if (kind == DCT_Linear) {
return y[k_lo] + (t - x[k_lo]) * ( y[k_hi] - y[k_lo] ) / h; return y[k_lo] + (t - x[k_lo]) * ( y[k_hi] - y[k_lo] ) / h;
// } }
// // spline curve // spline curve
// else { // if (kind==Spline) { else { // if (kind==Spline) {
// double a = (x[k_hi] - t) / h; double a = (x[k_hi] - t) / h;
// double b = (t - x[k_lo]) / h; double b = (t - x[k_lo]) / h;
// double r = a * y[k_lo] + b * y[k_hi] + ((a * a * a - a) * ypp[k_lo] + (b * b * b - b) * ypp[k_hi]) * (h * h) * 0.1666666666666666666666666666666; double r = a * y[k_lo] + b * y[k_hi] + ((a * a * a - a) * ypp[k_lo] + (b * b * b - b) * ypp[k_hi]) * (h * h) * 0.1666666666666666666666666666666;
// return CLIPD(r); return CLIPD(r);
// } }
break; break;
} }
case DCT_Spline: { case DCT_CatumullRom: {
auto it = std::lower_bound(poly_x.begin(), poly_x.end(), t); auto it = std::lower_bound(poly_x.begin(), poly_x.end(), t);
if (it == poly_x.end()) { if (it == poly_x.end()) {
return poly_y.back(); return poly_y.back();

View File

@ -97,55 +97,6 @@ int findMatch(int val, const std::vector<int> &cdf, int j)
} }
class CubicSplineCurve: public DiagonalCurve {
public:
CubicSplineCurve(const std::vector<double> &points):
DiagonalCurve({DCT_Linear})
{
N = points.size() / 2;
x = new double[N];
y = new double[N];
for (int i = 0; i < N; ++i) {
x[i] = points[2*i];
y[i] = points[2*i+1];
}
kind = DCT_Spline;
spline_cubic_set();
}
double getVal(double t) const override
{
// values under and over the first and last point
if (t > x[N - 1]) {
return y[N - 1];
} else if (t < x[0]) {
return y[0];
}
// do a binary search for the right interval:
unsigned int k_lo = 0, k_hi = N - 1;
while (k_hi > 1 + k_lo) {
unsigned int k = (k_hi + k_lo) / 2;
if (x[k] > t) {
k_hi = k;
} else {
k_lo = k;
}
}
double h = x[k_hi] - x[k_lo];
double a = (x[k_hi] - t) / h;
double b = (t - x[k_lo]) / h;
double r = a * y[k_lo] + b * y[k_hi] + ((a * a * a - a) * ypp[k_lo] + (b * b * b - b) * ypp[k_hi]) * (h * h) * 0.1666666666666666666666666666666;
return LIM01(r);
}
};
void mappingToCurve(const std::vector<int> &mapping, std::vector<double> &curve) void mappingToCurve(const std::vector<int> &mapping, std::vector<double> &curve)
{ {
curve.clear(); curve.clear();
@ -259,10 +210,11 @@ void mappingToCurve(const std::vector<int> &mapping, std::vector<double> &curve)
if (curve.size() < 4) { if (curve.size() < 4) {
curve = { DCT_Linear }; // not enough points, fall back to linear curve = { DCT_Linear }; // not enough points, fall back to linear
} else { } else {
CubicSplineCurve c(curve); curve.insert(curve.begin(), DCT_Spline);
DiagonalCurve c(curve);
double gap = 0.05; double gap = 0.05;
double x = 0.0; double x = 0.0;
curve = { DCT_Spline }; curve = { DCT_CatumullRom };
while (x < 1.0) { while (x < 1.0) {
curve.push_back(x); curve.push_back(x);
curve.push_back(c.getVal(x)); curve.push_back(c.getVal(x));

View File

@ -2868,7 +2868,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
saveToKeyfile(!pedited || pedited->toneCurve.hlcomprthresh, "Exposure", "HighlightComprThreshold", toneCurve.hlcomprthresh, keyFile); saveToKeyfile(!pedited || pedited->toneCurve.hlcomprthresh, "Exposure", "HighlightComprThreshold", toneCurve.hlcomprthresh, keyFile);
saveToKeyfile(!pedited || pedited->toneCurve.shcompr, "Exposure", "ShadowCompr", toneCurve.shcompr, keyFile); saveToKeyfile(!pedited || pedited->toneCurve.shcompr, "Exposure", "ShadowCompr", toneCurve.shcompr, keyFile);
saveToKeyfile(!pedited || pedited->toneCurve.histmatching, "Exposure", "HistogramMatching", toneCurve.histmatching, keyFile); saveToKeyfile(!pedited || pedited->toneCurve.histmatching, "Exposure", "HistogramMatching", toneCurve.histmatching, keyFile);
saveToKeyfile(!pedited || pedited->toneCurve.fromHistMatching, "Exposure", "FromHistogramMatching", toneCurve.fromHistMatching, keyFile); saveToKeyfile(!pedited || pedited->toneCurve.fromHistMatching, "Exposure", "CurveFromHistogramMatching", toneCurve.fromHistMatching, keyFile);
saveToKeyfile(!pedited || pedited->toneCurve.clampOOG, "Exposure", "ClampOOG", toneCurve.clampOOG, keyFile); saveToKeyfile(!pedited || pedited->toneCurve.clampOOG, "Exposure", "ClampOOG", toneCurve.clampOOG, keyFile);
// Highlight recovery // Highlight recovery
@ -3683,7 +3683,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
pedited->toneCurve.fromHistMatching = true; pedited->toneCurve.fromHistMatching = true;
} }
} else { } else {
assignFromKeyfile(keyFile, "Exposure", "FromHistogramMatching", pedited, toneCurve.fromHistMatching, pedited->toneCurve.fromHistMatching); assignFromKeyfile(keyFile, "Exposure", "CurveFromHistogramMatching", pedited, toneCurve.fromHistMatching, pedited->toneCurve.fromHistMatching);
} }
assignFromKeyfile(keyFile, "Exposure", "ClampOOG", pedited, toneCurve.clampOOG, pedited->toneCurve.clampOOG); assignFromKeyfile(keyFile, "Exposure", "ClampOOG", pedited, toneCurve.clampOOG, pedited->toneCurve.clampOOG);
} }

View File

@ -4833,20 +4833,27 @@ void RawImageSource::getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LU
} // end of critical region } // end of critical region
} // end of parallel region } // end of parallel region
const auto getidx =
[&](int c, int i) -> int
{
float f = mult[c] * std::max(0.f, i - cblacksom[c]);
return f > 0.f ? (f < 1.f ? 1 : std::min(int(f), 255)) : 0;
};
for(int i = 0; i < histoSize; i++) { for(int i = 0; i < histoSize; i++) {
int idx = std::min(255.f, mult[0] * std::max(0.f, i - cblacksom[0])); int idx = getidx(0, i);
histRedRaw[idx] += hist[0][i]; histRedRaw[idx] += hist[0][i];
if (ri->get_colors() > 1) { if (ri->get_colors() > 1) {
idx = std::min(255.f, mult[1] * std::max(0.f, i - cblacksom[1])); idx = getidx(1, i);
histGreenRaw[idx] += hist[1][i]; histGreenRaw[idx] += hist[1][i];
if (fourColours) { if (fourColours) {
idx = std::min(255.f, mult[3] * std::max(0.f, i - cblacksom[3])); idx = getidx(3, i);
histGreenRaw[idx] += hist[3][i]; histGreenRaw[idx] += hist[3][i];
} }
idx = std::min(255.f, mult[2] * std::max(0.f, i - cblacksom[2])); idx = getidx(2, i);
histBlueRaw[idx] += hist[2][i]; histBlueRaw[idx] += hist[2][i];
} }
} }

View File

@ -20,6 +20,7 @@
#include <algorithm> #include <algorithm>
#include <cassert> #include <cassert>
#include <cmath> #include <cmath>
#include <cstddef>
#include <cstdint> #include <cstdint>
#include <vector> #include <vector>
#ifdef _OPENMP #ifdef _OPENMP
@ -31,7 +32,6 @@
#include "rt_algo.h" #include "rt_algo.h"
#include "rt_math.h" #include "rt_math.h"
#include "sleef.c" #include "sleef.c"
#include "jaggedarray.h"
namespace { namespace {
float calcBlendFactor(float val, float threshold) { float calcBlendFactor(float val, float threshold) {
@ -51,6 +51,113 @@ vfloat calcBlendFactor(vfloat valv, vfloat thresholdv) {
return onev / (onev + xexpf(c16v - c16v * valv / thresholdv)); return onev / (onev + xexpf(c16v - c16v * valv / thresholdv));
} }
#endif #endif
float tileAverage(float **data, size_t tileY, size_t tileX, size_t tilesize) {
float avg = 0.f;
#ifdef __SSE2__
vfloat avgv = ZEROV;
#endif
for (std::size_t y = tileY; y < tileY + tilesize; ++y) {
std::size_t x = tileX;
#ifdef __SSE2__
for (; x < tileX + tilesize - 3; x += 4) {
avgv += LVFU(data[y][x]);
}
#endif
for (; x < tileX + tilesize; ++x) {
avg += data[y][x];
}
}
#ifdef __SSE2__
avg += vhadd(avgv);
#endif
return avg / rtengine::SQR(tilesize);
}
float tileVariance(float **data, size_t tileY, size_t tileX, size_t tilesize, float avg) {
float var = 0.f;
#ifdef __SSE2__
vfloat varv = ZEROV;
const vfloat avgv = F2V(avg);
#endif
for (std::size_t y = tileY; y < tileY + tilesize; ++y) {
std::size_t x = tileX;
#ifdef __SSE2__
for (; x < tileX + tilesize - 3; x += 4) {
varv += SQRV(LVFU(data[y][x]) - avgv);
}
#endif
for (; x < tileX + tilesize; ++x) {
var += rtengine::SQR(data[y][x] - avg);
}
}
#ifdef __SSE2__
var += vhadd(varv);
#endif
return var / (rtengine::SQR(tilesize) * avg);
}
float calcContrastThreshold(float** luminance, int tileY, int tileX, int tilesize) {
constexpr float scale = 0.0625f / 327.68f;
std::vector<std::vector<float>> blend(tilesize - 4, std::vector<float>(tilesize - 4));
#ifdef __SSE2__
const vfloat scalev = F2V(scale);
#endif
for(int j = tileY + 2; j < tileY + tilesize - 2; ++j) {
int i = tileX + 2;
#ifdef __SSE2__
for(; i < tileX + tilesize - 5; i += 4) {
vfloat contrastv = vsqrtf(SQRV(LVFU(luminance[j][i+1]) - LVFU(luminance[j][i-1])) + SQRV(LVFU(luminance[j+1][i]) - LVFU(luminance[j-1][i])) +
SQRV(LVFU(luminance[j][i+2]) - LVFU(luminance[j][i-2])) + SQRV(LVFU(luminance[j+2][i]) - LVFU(luminance[j-2][i]))) * scalev;
STVFU(blend[j - tileY - 2][i - tileX - 2], contrastv);
}
#endif
for(; i < tileX + tilesize - 2; ++i) {
float contrast = sqrtf(rtengine::SQR(luminance[j][i+1] - luminance[j][i-1]) + rtengine::SQR(luminance[j+1][i] - luminance[j-1][i]) +
rtengine::SQR(luminance[j][i+2] - luminance[j][i-2]) + rtengine::SQR(luminance[j+2][i] - luminance[j-2][i])) * scale;
blend[j - tileY - 2][i - tileX - 2] = contrast;
}
}
const float limit = rtengine::SQR(tilesize - 4) / 100.f;
int c;
for (c = 1; c < 100; ++c) {
const float contrastThreshold = c / 100.f;
float sum = 0.f;
#ifdef __SSE2__
const vfloat contrastThresholdv = F2V(contrastThreshold);
vfloat sumv = ZEROV;
#endif
for(int j = 0; j < tilesize - 4; ++j) {
int i = 0;
#ifdef __SSE2__
for(; i < tilesize - 7; i += 4) {
sumv += calcBlendFactor(LVFU(blend[j][i]), contrastThresholdv);
}
#endif
for(; i < tilesize - 4; ++i) {
sum += calcBlendFactor(blend[j][i], contrastThreshold);
}
}
#ifdef __SSE2__
sum += vhadd(sumv);
#endif
if (sum <= limit) {
break;
}
}
return c / 100.f;
}
} }
namespace rtengine namespace rtengine
@ -194,230 +301,173 @@ void findMinMaxPercentile(const float* data, size_t size, float minPrct, float&
void buildBlendMask(float** luminance, float **blend, int W, int H, float &contrastThreshold, float amount, bool autoContrast) { void buildBlendMask(float** luminance, float **blend, int W, int H, float &contrastThreshold, float amount, bool autoContrast) {
if(contrastThreshold == 0.f && !autoContrast) { if (autoContrast) {
constexpr float minLuminance = 2000.f;
constexpr float maxLuminance = 20000.f;
constexpr float minTileVariance = 0.5f;
for (int pass = 0; pass < 2; ++pass) {
const int tilesize = 80 / (pass + 1);
const int skip = pass == 0 ? tilesize : tilesize / 4;
const int numTilesW = W / skip - 3 * pass;
const int numTilesH = H / skip - 3 * pass;
std::vector<std::vector<float>> variances(numTilesH, std::vector<float>(numTilesW));
#ifdef _OPENMP
#pragma omp parallel for schedule(dynamic)
#endif
for (int i = 0; i < numTilesH; ++i) {
const int tileY = i * skip;
for (int j = 0; j < numTilesW; ++j) {
const int tileX = j * skip;
const float avg = tileAverage(luminance, tileY, tileX, tilesize);
if (avg < minLuminance || avg > maxLuminance) {
// too dark or too bright => skip the tile
variances[i][j] = RT_INFINITY_F;
continue;
} else {
variances[i][j] = tileVariance(luminance, tileY, tileX, tilesize, avg);
// exclude tiles with a variance less than minTileVariance
variances[i][j] = variances[i][j] < minTileVariance ? RT_INFINITY_F : variances[i][j];
}
}
}
float minvar = RT_INFINITY_F;
int minI = 0, minJ = 0;
for (int i = 0; i < numTilesH; ++i) {
for (int j = 0; j < numTilesW; ++j) {
if (variances[i][j] < minvar) {
minvar = variances[i][j];
minI = i;
minJ = j;
}
}
}
if (minvar <= 1.f || pass == 1) {
const int minY = skip * minI;
const int minX = skip * minJ;
if (pass == 0) {
// a variance <= 1 means we already found a flat region and can skip second pass
contrastThreshold = calcContrastThreshold(luminance, minY, minX, tilesize);
break;
} else {
// in second pass we allow a variance of 4
// we additionally scan the tiles +-skip pixels around the best tile from pass 2
// Means we scan (2 * skip + 1)^2 tiles in this step to get a better hit rate
// fortunately the scan is quite fast, so we use only one core and don't parallelize
const int topLeftYStart = std::max(minY - skip, 0);
const int topLeftXStart = std::max(minX - skip, 0);
const int topLeftYEnd = std::min(minY + skip, H - tilesize);
const int topLeftXEnd = std::min(minX + skip, W - tilesize);
const int numTilesH = topLeftYEnd - topLeftYStart + 1;
const int numTilesW = topLeftXEnd - topLeftXStart + 1;
std::vector<std::vector<float>> variances(numTilesH, std::vector<float>(numTilesW));
for (int i = 0; i < numTilesH; ++i) {
const int tileY = topLeftYStart + i;
for (int j = 0; j < numTilesW; ++j) {
const int tileX = topLeftXStart + j;
const float avg = tileAverage(luminance, tileY, tileX, tilesize);
if (avg < minLuminance || avg > maxLuminance) {
// too dark or too bright => skip the tile
variances[i][j] = RT_INFINITY_F;
continue;
} else {
variances[i][j] = tileVariance(luminance, tileY, tileX, tilesize, avg);
// exclude tiles with a variance less than minTileVariance
variances[i][j] = variances[i][j] < minTileVariance ? RT_INFINITY_F : variances[i][j];
}
}
}
float minvar = RT_INFINITY_F;
int minI = 0, minJ = 0;
for (int i = 0; i < numTilesH; ++i) {
for (int j = 0; j < numTilesW; ++j) {
if (variances[i][j] < minvar) {
minvar = variances[i][j];
minI = i;
minJ = j;
}
}
}
contrastThreshold = minvar <= 4.f ? calcContrastThreshold(luminance, topLeftYStart + minI, topLeftXStart + minJ, tilesize) : 0.f;
}
}
}
}
if(contrastThreshold == 0.f) {
for(int j = 0; j < H; ++j) { for(int j = 0; j < H; ++j) {
for(int i = 0; i < W; ++i) { for(int i = 0; i < W; ++i) {
blend[j][i] = amount; blend[j][i] = amount;
} }
} }
} else { } else {
if (autoContrast) { constexpr float scale = 0.0625f / 327.68f;
for (int pass = 0; pass < 2; ++pass) {
const int tilesize = 80 / (pass + 1);
const int skip = pass == 0 ? tilesize : tilesize / 4;
const int numTilesW = W / skip - 3 * pass;
const int numTilesH = H / skip - 3 * pass;
std::vector<std::vector<float>> variances(numTilesH, std::vector<float>(numTilesW));
#ifdef _OPENMP #ifdef _OPENMP
#pragma omp parallel for schedule(dynamic) #pragma omp parallel
#endif #endif
for (int i = 0; i < numTilesH; ++i) { {
const int tileY = i * skip;
for (int j = 0; j < numTilesW; ++j) {
const int tileX = j * skip;
#ifdef __SSE2__ #ifdef __SSE2__
vfloat avgv = ZEROV; const vfloat contrastThresholdv = F2V(contrastThreshold);
for (int y = tileY; y < tileY + tilesize; ++y) { const vfloat scalev = F2V(scale);
for (int x = tileX; x < tileX + tilesize; x += 4) { const vfloat amountv = F2V(amount);
avgv += LVFU(luminance[y][x]);
}
}
float avg = vhadd(avgv);
#else
float avg = 0.f;
for (int y = tileY; y < tileY + tilesize; ++y) {
for (int x = tileX; x < tileX + tilesize; ++x) {
avg += luminance[y][x];
}
}
#endif #endif
avg /= SQR(tilesize); #ifdef _OPENMP
if (avg < 2000.f || avg > 20000.f) { #pragma omp for schedule(dynamic,16)
// too dark or too bright => skip the tile #endif
variances[i][j] = RT_INFINITY_F;
continue; for(int j = 2; j < H - 2; ++j) {
} int i = 2;
#ifdef __SSE2__ #ifdef __SSE2__
vfloat varv = ZEROV; for(; i < W - 5; i += 4) {
avgv = F2V(avg); vfloat contrastv = vsqrtf(SQRV(LVFU(luminance[j][i+1]) - LVFU(luminance[j][i-1])) + SQRV(LVFU(luminance[j+1][i]) - LVFU(luminance[j-1][i])) +
for (int y = tileY; y < tileY + tilesize; ++y) { SQRV(LVFU(luminance[j][i+2]) - LVFU(luminance[j][i-2])) + SQRV(LVFU(luminance[j+2][i]) - LVFU(luminance[j-2][i]))) * scalev;
for (int x = tileX; x < tileX + tilesize; x +=4) {
varv += SQRV(LVFU(luminance[y][x]) - avgv); STVFU(blend[j][i], amountv * calcBlendFactor(contrastv, contrastThresholdv));
} }
}
float var = vhadd(varv);
#else
float var = 0.f;
for (int y = tileY; y < tileY + tilesize; ++y) {
for (int x = tileX; x < tileX + tilesize; ++x) {
var += SQR(luminance[y][x] - avg);
}
}
#endif #endif
var /= (SQR(tilesize) * avg); for(; i < W - 2; ++i) {
variances[i][j] = var;
}
}
float minvar = RT_INFINITY_F; float contrast = sqrtf(rtengine::SQR(luminance[j][i+1] - luminance[j][i-1]) + rtengine::SQR(luminance[j+1][i] - luminance[j-1][i]) +
int minI = 0, minJ = 0; rtengine::SQR(luminance[j][i+2] - luminance[j][i-2]) + rtengine::SQR(luminance[j+2][i] - luminance[j-2][i])) * scale;
for (int i = 0; i < numTilesH; ++i) {
for (int j = 0; j < numTilesW; ++j) {
if (variances[i][j] < minvar) {
minvar = variances[i][j];
minI = i;
minJ = j;
}
}
}
const int minY = skip * minI; blend[j][i] = amount * calcBlendFactor(contrast, contrastThreshold);
const int minX = skip * minJ;
if (minvar <= 1.f || pass == 1) {
// a variance <= 1 means we already found a flat region and can skip second pass
// in second pass we allow a variance of 2
JaggedArray<float> Lum(tilesize, tilesize);
JaggedArray<float> Blend(tilesize, tilesize);
for (int i = 0; i < tilesize; ++i) {
for (int j = 0; j < tilesize; ++j) {
Lum[i][j] = luminance[i + minY][j + minX];
}
}
contrastThreshold = (pass == 0 || minvar <= 4.f) ? calcContrastThreshold(Lum, Blend, tilesize, tilesize) / 100.f : 0.f;
break;
} }
} }
}
if(contrastThreshold == 0.f) {
for(int j = 0; j < H; ++j) {
for(int i = 0; i < W; ++i) {
blend[j][i] = amount;
}
}
} else {
constexpr float scale = 0.0625f / 327.68f;
#ifdef _OPENMP #ifdef _OPENMP
#pragma omp parallel #pragma omp single
#endif #endif
{ {
#ifdef __SSE2__ // upper border
const vfloat contrastThresholdv = F2V(contrastThreshold); for(int j = 0; j < 2; ++j) {
const vfloat scalev = F2V(scale); for(int i = 2; i < W - 2; ++i) {
const vfloat amountv = F2V(amount); blend[j][i] = blend[2][i];
#endif
#ifdef _OPENMP
#pragma omp for schedule(dynamic,16)
#endif
for(int j = 2; j < H - 2; ++j) {
int i = 2;
#ifdef __SSE2__
for(; i < W - 5; i += 4) {
vfloat contrastv = vsqrtf(SQRV(LVFU(luminance[j][i+1]) - LVFU(luminance[j][i-1])) + SQRV(LVFU(luminance[j+1][i]) - LVFU(luminance[j-1][i])) +
SQRV(LVFU(luminance[j][i+2]) - LVFU(luminance[j][i-2])) + SQRV(LVFU(luminance[j+2][i]) - LVFU(luminance[j-2][i]))) * scalev;
STVFU(blend[j][i], amountv * calcBlendFactor(contrastv, contrastThresholdv));
}
#endif
for(; i < W - 2; ++i) {
float contrast = sqrtf(rtengine::SQR(luminance[j][i+1] - luminance[j][i-1]) + rtengine::SQR(luminance[j+1][i] - luminance[j-1][i]) +
rtengine::SQR(luminance[j][i+2] - luminance[j][i-2]) + rtengine::SQR(luminance[j+2][i] - luminance[j-2][i])) * scale;
blend[j][i] = amount * calcBlendFactor(contrast, contrastThreshold);
} }
} }
// lower border
#ifdef _OPENMP for(int j = H - 2; j < H; ++j) {
#pragma omp single for(int i = 2; i < W - 2; ++i) {
#endif blend[j][i] = blend[H-3][i];
{
// upper border
for(int j = 0; j < 2; ++j) {
for(int i = 2; i < W - 2; ++i) {
blend[j][i] = blend[2][i];
}
}
// lower border
for(int j = H - 2; j < H; ++j) {
for(int i = 2; i < W - 2; ++i) {
blend[j][i] = blend[H-3][i];
}
}
for(int j = 0; j < H; ++j) {
// left border
blend[j][0] = blend[j][1] = blend[j][2];
// right border
blend[j][W - 2] = blend[j][W - 1] = blend[j][W - 3];
} }
} }
for(int j = 0; j < H; ++j) {
// blur blend mask to smooth transitions // left border
gaussianBlur(blend, blend, W, H, 2.0); blend[j][0] = blend[j][1] = blend[j][2];
// right border
blend[j][W - 2] = blend[j][W - 1] = blend[j][W - 3];
}
} }
// blur blend mask to smooth transitions
gaussianBlur(blend, blend, W, H, 2.0);
} }
} }
} }
int calcContrastThreshold(float** luminance, float **blend, int W, int H) {
constexpr float scale = 0.0625f / 327.68f;
#ifdef __SSE2__
const vfloat scalev = F2V(scale);
#endif
for(int j = 2; j < H - 2; ++j) {
int i = 2;
#ifdef __SSE2__
for(; i < W - 5; i += 4) {
vfloat contrastv = vsqrtf(SQRV(LVFU(luminance[j][i+1]) - LVFU(luminance[j][i-1])) + SQRV(LVFU(luminance[j+1][i]) - LVFU(luminance[j-1][i])) +
SQRV(LVFU(luminance[j][i+2]) - LVFU(luminance[j][i-2])) + SQRV(LVFU(luminance[j+2][i]) - LVFU(luminance[j-2][i]))) * scalev;
STVFU(blend[j -2 ][i - 2], contrastv);
}
#endif
for(; i < W - 2; ++i) {
float contrast = sqrtf(rtengine::SQR(luminance[j][i+1] - luminance[j][i-1]) + rtengine::SQR(luminance[j+1][i] - luminance[j-1][i]) +
rtengine::SQR(luminance[j][i+2] - luminance[j][i-2]) + rtengine::SQR(luminance[j+2][i] - luminance[j-2][i])) * scale;
blend[j -2][i- 2] = contrast;
}
}
const float limit = (W - 4) * (H - 4) / 100.f;
int c;
for (c = 1; c < 100; ++c) {
const float contrastThreshold = c / 100.f;
float sum = 0.f;
#ifdef __SSE2__
const vfloat contrastThresholdv = F2V(contrastThreshold);
vfloat sumv = ZEROV;
#endif
for(int j = 0; j < H - 4; ++j) {
int i = 0;
#ifdef __SSE2__
for(; i < W - 7; i += 4) {
sumv += calcBlendFactor(LVFU(blend[j][i]), contrastThresholdv);
}
#endif
for(; i < W - 4; ++i) {
sum += calcBlendFactor(blend[j][i], contrastThreshold);
}
}
#ifdef __SSE2__
sum += vhadd(sumv);
#endif
if (sum <= limit) {
break;
}
}
return c;
}
} }

View File

@ -25,5 +25,4 @@ namespace rtengine
{ {
void findMinMaxPercentile(const float* data, size_t size, float minPrct, float& minOut, float maxPrct, float& maxOut, bool multiThread = true); void findMinMaxPercentile(const float* data, size_t size, float minPrct, float& minOut, float maxPrct, float& maxOut, bool multiThread = true);
void buildBlendMask(float** luminance, float **blend, int W, int H, float &contrastThreshold, float amount = 1.f, bool autoContrast = false); void buildBlendMask(float** luminance, float **blend, int W, int H, float &contrastThreshold, float amount = 1.f, bool autoContrast = false);
int calcContrastThreshold(float** luminance, float **blend, int W, int H);
} }

View File

@ -24,14 +24,14 @@
using namespace rtengine; using namespace rtengine;
using namespace rtengine::procparams; using namespace rtengine::procparams;
BayerPreProcess::BayerPreProcess () : FoldableToolPanel(this, "bayerpreprocess", M("TP_PREPROCESS_LABEL"), true) BayerPreProcess::BayerPreProcess() : FoldableToolPanel(this, "bayerpreprocess", M("TP_PREPROCESS_LABEL"), true)
{ {
auto m = ProcEventMapper::getInstance(); auto m = ProcEventMapper::getInstance();
EvLineDenoiseDirection = m->newEvent(DARKFRAME, "HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION"); EvLineDenoiseDirection = m->newEvent(DARKFRAME, "HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION");
EvPDAFLinesFilter = m->newEvent(DARKFRAME, "HISTORY_MSG_PREPROCESS_PDAFLINESFILTER"); EvPDAFLinesFilter = m->newEvent(DARKFRAME, "HISTORY_MSG_PREPROCESS_PDAFLINESFILTER");
lineDenoise = Gtk::manage(new Adjuster (M("TP_PREPROCESS_LINEDENOISE"), 0, 1000, 1, 0)); lineDenoise = Gtk::manage(new Adjuster(M("TP_PREPROCESS_LINEDENOISE"), 0, 1000, 1, 0));
lineDenoise->setAdjusterListener (this); lineDenoise->setAdjusterListener(this);
if (lineDenoise->delay < options.adjusterMaxDelay) { if (lineDenoise->delay < options.adjusterMaxDelay) {
lineDenoise->delay = options.adjusterMaxDelay; lineDenoise->delay = options.adjusterMaxDelay;
@ -39,8 +39,8 @@ BayerPreProcess::BayerPreProcess () : FoldableToolPanel(this, "bayerpreprocess",
lineDenoise->show(); lineDenoise->show();
greenEqThreshold = Gtk::manage(new Adjuster (M("TP_PREPROCESS_GREENEQUIL"), 0, 100, 1, 0)); greenEqThreshold = Gtk::manage(new Adjuster(M("TP_PREPROCESS_GREENEQUIL"), 0, 100, 1, 0));
greenEqThreshold->setAdjusterListener (this); greenEqThreshold->setAdjusterListener(this);
if (greenEqThreshold->delay < options.adjusterMaxDelay) { if (greenEqThreshold->delay < options.adjusterMaxDelay) {
greenEqThreshold->delay = options.adjusterMaxDelay; greenEqThreshold->delay = options.adjusterMaxDelay;
@ -57,18 +57,17 @@ BayerPreProcess::BayerPreProcess () : FoldableToolPanel(this, "bayerpreprocess",
lineDenoiseDirection->append(M("TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES")); lineDenoiseDirection->append(M("TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES"));
lineDenoiseDirection->show(); lineDenoiseDirection->show();
lineDenoiseDirection->signal_changed().connect(sigc::mem_fun(*this, &BayerPreProcess::lineDenoiseDirectionChanged)); lineDenoiseDirection->signal_changed().connect(sigc::mem_fun(*this, &BayerPreProcess::lineDenoiseDirectionChanged));
hb->pack_start(*lineDenoiseDirection); hb->pack_start(*lineDenoiseDirection);
pack_start( *lineDenoise, Gtk::PACK_SHRINK, 4); pack_start(*lineDenoise, Gtk::PACK_SHRINK, 4);
pack_start(*hb, Gtk::PACK_SHRINK, 4); pack_start(*hb, Gtk::PACK_SHRINK, 4);
pack_start( *Gtk::manage (new Gtk::HSeparator())); pack_start(*Gtk::manage(new Gtk::HSeparator()));
pack_start( *greenEqThreshold, Gtk::PACK_SHRINK, 4); pack_start(*greenEqThreshold, Gtk::PACK_SHRINK, 4);
pdafLinesFilter = Gtk::manage(new Gtk::CheckButton((M("TP_PREPROCESS_PDAFLINESFILTER")))); pdafLinesFilter = Gtk::manage(new Gtk::CheckButton((M("TP_PREPROCESS_PDAFLINESFILTER"))));
pdafLinesFilter->set_tooltip_markup(M("TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP"));
pdafLinesFilter->show(); pdafLinesFilter->show();
pdafLinesFilter->signal_toggled().connect(sigc::mem_fun(*this, &BayerPreProcess::pdafLinesFilterChanged), true); pdafLinesFilter->signal_toggled().connect(sigc::mem_fun(*this, &BayerPreProcess::pdafLinesFilterChanged), true);
@ -78,58 +77,64 @@ BayerPreProcess::BayerPreProcess () : FoldableToolPanel(this, "bayerpreprocess",
void BayerPreProcess::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited) void BayerPreProcess::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited)
{ {
disableListener (); disableListener();
if (pedited) {
lineDenoise->setEditedState(pedited->raw.bayersensor.linenoise ? Edited : UnEdited);
greenEqThreshold->setEditedState(pedited->raw.bayersensor.greenEq ? Edited : UnEdited);
if(pedited ) {
lineDenoise->setEditedState( pedited->raw.bayersensor.linenoise ? Edited : UnEdited );
greenEqThreshold->setEditedState( pedited->raw.bayersensor.greenEq ? Edited : UnEdited );
if (!pedited->raw.bayersensor.linenoiseDirection) { if (!pedited->raw.bayersensor.linenoiseDirection) {
lineDenoiseDirection->set_active(3); lineDenoiseDirection->set_active(3);
} }
pdafLinesFilter->set_inconsistent(!pedited->raw.bayersensor.pdafLinesFilter); pdafLinesFilter->set_inconsistent(!pedited->raw.bayersensor.pdafLinesFilter);
} }
lineDenoise->setValue (pp->raw.bayersensor.linenoise); lineDenoise->setValue(pp->raw.bayersensor.linenoise);
int d = int(pp->raw.bayersensor.linenoiseDirection)-1; int d = int(pp->raw.bayersensor.linenoiseDirection) - 1;
if (d == 4) { if (d == 4) {
--d; --d;
} }
lineDenoiseDirection->set_active(d); lineDenoiseDirection->set_active(d);
greenEqThreshold->setValue (pp->raw.bayersensor.greenthresh); greenEqThreshold->setValue(pp->raw.bayersensor.greenthresh);
pdafLinesFilter->set_active(pp->raw.bayersensor.pdafLinesFilter); pdafLinesFilter->set_active(pp->raw.bayersensor.pdafLinesFilter);
enableListener (); enableListener();
} }
void BayerPreProcess::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) void BayerPreProcess::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited)
{ {
pp->raw.bayersensor.linenoise = lineDenoise->getIntValue(); pp->raw.bayersensor.linenoise = lineDenoise->getIntValue();
int d = lineDenoiseDirection->get_active_row_number() + 1; int d = lineDenoiseDirection->get_active_row_number() + 1;
if (d == 4) { if (d == 4) {
++d; ++d;
} }
pp->raw.bayersensor.linenoiseDirection = RAWParams::BayerSensor::LineNoiseDirection(d); pp->raw.bayersensor.linenoiseDirection = RAWParams::BayerSensor::LineNoiseDirection(d);
pp->raw.bayersensor.greenthresh = greenEqThreshold->getIntValue(); pp->raw.bayersensor.greenthresh = greenEqThreshold->getIntValue();
pp->raw.bayersensor.pdafLinesFilter = pdafLinesFilter->get_active(); pp->raw.bayersensor.pdafLinesFilter = pdafLinesFilter->get_active();
if (pedited) { if (pedited) {
pedited->raw.bayersensor.linenoise = lineDenoise->getEditedState (); pedited->raw.bayersensor.linenoise = lineDenoise->getEditedState();
pedited->raw.bayersensor.greenEq = greenEqThreshold->getEditedState (); pedited->raw.bayersensor.greenEq = greenEqThreshold->getEditedState();
pedited->raw.bayersensor.linenoise = lineDenoiseDirection->get_active_row_number() != 3; pedited->raw.bayersensor.linenoise = lineDenoiseDirection->get_active_row_number() != 3;
pedited->raw.bayersensor.pdafLinesFilter = !pdafLinesFilter->get_inconsistent(); pedited->raw.bayersensor.pdafLinesFilter = !pdafLinesFilter->get_inconsistent();
} }
} }
void BayerPreProcess::adjusterChanged (Adjuster* a, double newval) void BayerPreProcess::adjusterChanged(Adjuster* a, double newval)
{ {
if (listener) { if (listener) {
Glib::ustring value = a->getTextValue(); Glib::ustring value = a->getTextValue();
if (a == greenEqThreshold) { if (a == greenEqThreshold) {
listener->panelChanged (EvPreProcessGEquilThresh, value ); listener->panelChanged(EvPreProcessGEquilThresh, value);
} else if (a == lineDenoise) { } else if (a == lineDenoise) {
listener->panelChanged (EvPreProcessLineDenoise, value ); listener->panelChanged(EvPreProcessLineDenoise, value);
} }
} }
} }
@ -140,9 +145,10 @@ void BayerPreProcess::adjusterAutoToggled(Adjuster* a, bool newval)
void BayerPreProcess::setBatchMode(bool batchMode) void BayerPreProcess::setBatchMode(bool batchMode)
{ {
ToolPanel::setBatchMode (batchMode); ToolPanel::setBatchMode(batchMode);
lineDenoise->showEditedCB (); lineDenoise->showEditedCB();
greenEqThreshold->showEditedCB (); greenEqThreshold->showEditedCB();
if (batchMode) { if (batchMode) {
lineDenoiseDirection->append(M("GENERAL_UNCHANGED")); lineDenoiseDirection->append(M("GENERAL_UNCHANGED"));
} }
@ -150,26 +156,26 @@ void BayerPreProcess::setBatchMode(bool batchMode)
void BayerPreProcess::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited) void BayerPreProcess::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited)
{ {
lineDenoise->setDefault( defParams->raw.bayersensor.linenoise); lineDenoise->setDefault(defParams->raw.bayersensor.linenoise);
greenEqThreshold->setDefault (defParams->raw.bayersensor.greenthresh); greenEqThreshold->setDefault(defParams->raw.bayersensor.greenthresh);
if (pedited) { if (pedited) {
lineDenoise->setDefaultEditedState( pedited->raw.bayersensor.linenoise ? Edited : UnEdited); lineDenoise->setDefaultEditedState(pedited->raw.bayersensor.linenoise ? Edited : UnEdited);
greenEqThreshold->setDefaultEditedState(pedited->raw.bayersensor.greenEq ? Edited : UnEdited); greenEqThreshold->setDefaultEditedState(pedited->raw.bayersensor.greenEq ? Edited : UnEdited);
} else { } else {
lineDenoise->setDefaultEditedState( Irrelevant ); lineDenoise->setDefaultEditedState(Irrelevant);
greenEqThreshold->setDefaultEditedState(Irrelevant ); greenEqThreshold->setDefaultEditedState(Irrelevant);
} }
} }
void BayerPreProcess::setAdjusterBehavior (bool linedenoiseadd, bool greenequiladd) void BayerPreProcess::setAdjusterBehavior(bool linedenoiseadd, bool greenequiladd)
{ {
lineDenoise->setAddMode(linedenoiseadd); lineDenoise->setAddMode(linedenoiseadd);
greenEqThreshold->setAddMode(greenequiladd); greenEqThreshold->setAddMode(greenequiladd);
} }
void BayerPreProcess::trimValues (rtengine::procparams::ProcParams* pp) void BayerPreProcess::trimValues(rtengine::procparams::ProcParams* pp)
{ {
lineDenoise->trimValue(pp->raw.bayersensor.linenoise); lineDenoise->trimValue(pp->raw.bayersensor.linenoise);

View File

@ -339,6 +339,25 @@ Glib::ustring CacheManager::getCacheFileName (const Glib::ustring& subDir,
void CacheManager::applyCacheSizeLimitation () const void CacheManager::applyCacheSizeLimitation () const
{ {
// first count files without fetching file name and timestamp.
std::size_t numFiles = 0;
try {
const auto dirName = Glib::build_filename (baseDir, "data");
const auto dir = Gio::File::create_for_path (dirName);
auto enumerator = dir->enumerate_children ("");
while (numFiles <= options.maxCacheEntries && enumerator->next_file ()) {
++numFiles;
}
} catch (Glib::Exception&) {}
if (numFiles <= options.maxCacheEntries) {
return;
}
using FNameMTime = std::pair<Glib::ustring, Glib::TimeVal>; using FNameMTime = std::pair<Glib::ustring, Glib::TimeVal>;
std::vector<FNameMTime> files; std::vector<FNameMTime> files;

View File

@ -25,6 +25,47 @@
#include <cstring> #include <cstring>
namespace {
class CurveTypePopUpButton: public PopUpToggleButton {
public:
CurveTypePopUpButton(const Glib::ustring &label=""):
PopUpToggleButton(label) {}
void setPosIndexMap(const std::vector<int> &pmap)
{
posidxmap_ = pmap;
}
protected:
int posToIndex(int pos) const override
{
if (pos < 0 || size_t(pos) >= posidxmap_.size()) {
return pos;
}
return posidxmap_[pos];
}
int indexToPos(int index) const override
{
if (index < 0 || size_t(index) >= posidxmap_.size()) {
return index;
}
for (int i = 0, n = int(posidxmap_.size()); i < n; ++i) {
if (posidxmap_[i] == index) {
return i;
}
}
return -1;
}
private:
std::vector<int> posidxmap_;
};
} // namespace
bool CurveEditor::reset() bool CurveEditor::reset()
{ {
return subGroup->curveReset(this); return subGroup->curveReset(this);
@ -33,12 +74,14 @@ bool CurveEditor::reset()
DiagonalCurveEditor::DiagonalCurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, CurveEditorSubGroup* ceSubGroup) : CurveEditor::CurveEditor(text, static_cast<CurveEditorGroup*>(ceGroup), ceSubGroup) DiagonalCurveEditor::DiagonalCurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, CurveEditorSubGroup* ceSubGroup) : CurveEditor::CurveEditor(text, static_cast<CurveEditorGroup*>(ceGroup), ceSubGroup)
{ {
// Order set in the same order than "enum DiagonalCurveType". Shouldn't change, for compatibility reason
curveType->addEntry("curve-linear-small.png", M("CURVEEDITOR_LINEAR")); // 0 Linear curveType->addEntry("curve-linear-small.png", M("CURVEEDITOR_LINEAR")); // 0 Linear
curveType->addEntry("curve-spline-small.png", M("CURVEEDITOR_CUSTOM")); // 1 Spline curveType->addEntry("curve-spline-small.png", M("CURVEEDITOR_CUSTOM")); // 1 Spline
curveType->addEntry("curve-catmullrom-small.png", M("CURVEEDITOR_CATMULLROM")); // 4 CatmullRom
curveType->addEntry("curve-parametric-small.png", M("CURVEEDITOR_PARAMETRIC")); // 2 Parametric curveType->addEntry("curve-parametric-small.png", M("CURVEEDITOR_PARAMETRIC")); // 2 Parametric
curveType->addEntry("curve-nurbs-small.png", M("CURVEEDITOR_NURBS")); // 3 NURBS curveType->addEntry("curve-nurbs-small.png", M("CURVEEDITOR_NURBS")); // 3 NURBS
static_cast<CurveTypePopUpButton *>(curveType)->setPosIndexMap({ 0, 1, 4, 2, 3 });
curveType->setSelected(DCT_Linear); curveType->setSelected(DCT_Linear);
curveType->show(); curveType->show();
rangeLabels[0] = M("CURVEEDITOR_SHADOWS"); rangeLabels[0] = M("CURVEEDITOR_SHADOWS");
@ -65,6 +108,9 @@ std::vector<double> DiagonalCurveEditor::getCurve ()
case (DCT_NURBS): case (DCT_NURBS):
return curve = NURBSCurveEd; return curve = NURBSCurveEd;
case (DCT_CatumullRom):
return curve = catmullRomCurveEd;
default: default:
// returning Linear or Unchanged // returning Linear or Unchanged
curve.push_back((double)(selected)); curve.push_back((double)(selected));
@ -96,6 +142,13 @@ void DiagonalCurveEditor::setResetCurve(DiagonalCurveType cType, const std::vect
break; break;
case (DCT_CatumullRom):
if (resetCurve.size() && DiagonalCurveType(resetCurve.at(0)) == cType) {
catmullRomResetCurve = resetCurve;
}
break;
default: default:
break; break;
} }
@ -209,9 +262,9 @@ CurveEditor::CurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, CurveEd
subGroup = ceSubGroup; subGroup = ceSubGroup;
if (group && text.size()) { if (group && text.size()) {
curveType = new PopUpToggleButton(text + ":"); curveType = new CurveTypePopUpButton(text + ":");
} else { } else {
curveType = new PopUpToggleButton(); curveType = new CurveTypePopUpButton();
} }
curveType->set_tooltip_text(M("CURVEEDITOR_TYPE")); curveType->set_tooltip_text(M("CURVEEDITOR_TYPE"));

View File

@ -156,6 +156,8 @@ protected:
std::vector<double> paramResetCurve; std::vector<double> paramResetCurve;
std::vector<double> NURBSCurveEd; std::vector<double> NURBSCurveEd;
std::vector<double> NURBSResetCurve; std::vector<double> NURBSResetCurve;
std::vector<double> catmullRomCurveEd;
std::vector<double> catmullRomResetCurve;
Glib::ustring rangeLabels[4]; Glib::ustring rangeLabels[4];
double rangeMilestones[3]; double rangeMilestones[3];

View File

@ -393,6 +393,7 @@ DiagonalCurveEditor* DiagonalCurveEditorSubGroup::addCurve(Glib::ustring curveLa
storeCurveValues(newCE, getCurveFromGUI(DCT_Spline)); storeCurveValues(newCE, getCurveFromGUI(DCT_Spline));
storeCurveValues(newCE, getCurveFromGUI(DCT_Parametric)); storeCurveValues(newCE, getCurveFromGUI(DCT_Parametric));
storeCurveValues(newCE, getCurveFromGUI(DCT_NURBS)); storeCurveValues(newCE, getCurveFromGUI(DCT_NURBS));
storeCurveValues(newCE, getCurveFromGUI(DCT_CatumullRom));
return newCE; return newCE;
} }
@ -437,6 +438,7 @@ void DiagonalCurveEditorSubGroup::pipetteMouseOver(EditDataProvider *provider, i
switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) { switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) {
case (DCT_Spline): case (DCT_Spline):
case (DCT_CatumullRom):
customCurve->pipetteMouseOver(curveEditor, provider, modifierKey); customCurve->pipetteMouseOver(curveEditor, provider, modifierKey);
customCurve->setDirty(true); customCurve->setDirty(true);
break; break;
@ -511,6 +513,7 @@ bool DiagonalCurveEditorSubGroup::pipetteButton1Pressed(EditDataProvider *provid
switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) { switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) {
case (DCT_Spline): case (DCT_Spline):
case (DCT_CatumullRom):
isDragging = customCurve->pipetteButton1Pressed(provider, modifierKey); isDragging = customCurve->pipetteButton1Pressed(provider, modifierKey);
break; break;
@ -539,6 +542,7 @@ void DiagonalCurveEditorSubGroup::pipetteButton1Released(EditDataProvider *provi
switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) { switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) {
case (DCT_Spline): case (DCT_Spline):
case (DCT_CatumullRom):
customCurve->pipetteButton1Released(provider); customCurve->pipetteButton1Released(provider);
break; break;
@ -562,6 +566,7 @@ void DiagonalCurveEditorSubGroup::pipetteDrag(EditDataProvider *provider, int mo
switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) { switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) {
case (DCT_Spline): case (DCT_Spline):
case (DCT_CatumullRom):
customCurve->pipetteDrag(provider, modifierKey); customCurve->pipetteDrag(provider, modifierKey);
break; break;
@ -615,6 +620,7 @@ void DiagonalCurveEditorSubGroup::refresh(CurveEditor *curveToRefresh)
if (curveToRefresh != nullptr && curveToRefresh == static_cast<DiagonalCurveEditor*>(parent->displayedCurve)) { if (curveToRefresh != nullptr && curveToRefresh == static_cast<DiagonalCurveEditor*>(parent->displayedCurve)) {
switch((DiagonalCurveType)(curveToRefresh->curveType->getSelected())) { switch((DiagonalCurveType)(curveToRefresh->curveType->getSelected())) {
case (DCT_Spline): case (DCT_Spline):
case (DCT_CatumullRom):
customCurve->refresh(); customCurve->refresh();
break; break;
@ -703,9 +709,10 @@ void DiagonalCurveEditorSubGroup::switchGUI()
} }
} }
switch((DiagonalCurveType)(dCurve->curveType->getSelected())) { switch(auto tp = (DiagonalCurveType)(dCurve->curveType->getSelected())) {
case (DCT_Spline): case (DCT_Spline):
customCurve->setPoints (dCurve->customCurveEd); case (DCT_CatumullRom):
customCurve->setPoints(tp == DCT_Spline ? dCurve->customCurveEd : dCurve->catmullRomCurveEd);
customCurve->setColorProvider(dCurve->getCurveColorProvider(), dCurve->getCurveCallerId()); customCurve->setColorProvider(dCurve->getCurveColorProvider(), dCurve->getCurveCallerId());
customCurve->setColoredBar(leftBar, bottomBar); customCurve->setColoredBar(leftBar, bottomBar);
customCurve->queue_resize_no_redraw(); customCurve->queue_resize_no_redraw();
@ -776,6 +783,7 @@ void DiagonalCurveEditorSubGroup::savePressed ()
switch (parent->displayedCurve->selected) { switch (parent->displayedCurve->selected) {
case DCT_Spline: // custom case DCT_Spline: // custom
case DCT_CatumullRom:
p = customCurve->getPoints (); p = customCurve->getPoints ();
break; break;
@ -797,6 +805,8 @@ void DiagonalCurveEditorSubGroup::savePressed ()
f << "Linear" << std::endl; f << "Linear" << std::endl;
} else if (p[ix] == (double)(DCT_Spline)) { } else if (p[ix] == (double)(DCT_Spline)) {
f << "Spline" << std::endl; f << "Spline" << std::endl;
} else if (p[ix] == (double)(DCT_CatumullRom)) {
f << "CatmullRom" << std::endl;
} else if (p[ix] == (double)(DCT_NURBS)) { } else if (p[ix] == (double)(DCT_NURBS)) {
f << "NURBS" << std::endl; f << "NURBS" << std::endl;
} else if (p[ix] == (double)(DCT_Parametric)) { } else if (p[ix] == (double)(DCT_Parametric)) {
@ -838,6 +848,8 @@ void DiagonalCurveEditorSubGroup::loadPressed ()
p.push_back ((double)(DCT_Linear)); p.push_back ((double)(DCT_Linear));
} else if (s == "Spline") { } else if (s == "Spline") {
p.push_back ((double)(DCT_Spline)); p.push_back ((double)(DCT_Spline));
} else if (s == "CatmullRom") {
p.push_back ((double)(DCT_CatumullRom));
} else if (s == "NURBS") { } else if (s == "NURBS") {
p.push_back ((double)(DCT_NURBS)); p.push_back ((double)(DCT_NURBS));
} else if (s == "Parametric") { } else if (s == "Parametric") {
@ -858,7 +870,7 @@ void DiagonalCurveEditorSubGroup::loadPressed ()
rtengine::sanitizeCurve(p); rtengine::sanitizeCurve(p);
if (p[0] == (double)(DCT_Spline)) { if (p[0] == (double)(DCT_Spline) || p[0] == (double)(DCT_CatumullRom)) {
customCurve->setPoints (p); customCurve->setPoints (p);
customCurve->queue_draw (); customCurve->queue_draw ();
customCurve->notifyListener (); customCurve->notifyListener ();
@ -903,6 +915,12 @@ void DiagonalCurveEditorSubGroup::copyPressed ()
clipboard.setDiagonalCurveData (curve, DCT_NURBS); clipboard.setDiagonalCurveData (curve, DCT_NURBS);
break; break;
case DCT_CatumullRom:
curve = customCurve->getPoints ();
curve[0] = DCT_CatumullRom;
clipboard.setDiagonalCurveData (curve, DCT_CatumullRom);
break;
default: // (DCT_Linear, DCT_Unchanged) default: // (DCT_Linear, DCT_Unchanged)
// ... do nothing // ... do nothing
break; break;
@ -923,6 +941,7 @@ void DiagonalCurveEditorSubGroup::pastePressed ()
switch (type) { switch (type) {
case DCT_Spline: // custom case DCT_Spline: // custom
case DCT_CatumullRom:
customCurve->setPoints (curve); customCurve->setPoints (curve);
customCurve->queue_draw (); customCurve->queue_draw ();
customCurve->notifyListener (); customCurve->notifyListener ();
@ -1060,6 +1079,10 @@ void DiagonalCurveEditorSubGroup::storeDisplayedCurve()
storeCurveValues(parent->displayedCurve, getCurveFromGUI(DCT_NURBS)); storeCurveValues(parent->displayedCurve, getCurveFromGUI(DCT_NURBS));
break; break;
case (DCT_CatumullRom):
storeCurveValues(parent->displayedCurve, getCurveFromGUI(DCT_CatumullRom));
break;
default: default:
break; break;
} }
@ -1097,6 +1120,10 @@ void DiagonalCurveEditorSubGroup::storeCurveValues (CurveEditor* ce, const std::
(static_cast<DiagonalCurveEditor*>(ce))->NURBSCurveEd = p; (static_cast<DiagonalCurveEditor*>(ce))->NURBSCurveEd = p;
break; break;
case (DCT_CatumullRom):
(static_cast<DiagonalCurveEditor*>(ce))->catmullRomCurveEd = p;
break;
default: default:
break; break;
} }
@ -1126,6 +1153,14 @@ const std::vector<double> DiagonalCurveEditorSubGroup::getCurveFromGUI (int type
case (DCT_NURBS): case (DCT_NURBS):
return NURBSCurve->getPoints (); return NURBSCurve->getPoints ();
case (DCT_CatumullRom): {
auto ret = customCurve->getPoints();
if (!ret.empty()) {
ret[0] = DCT_CatumullRom;
}
return ret;
}
default: { default: {
// linear and other solutions // linear and other solutions
std::vector<double> lcurve (1); std::vector<double> lcurve (1);
@ -1162,6 +1197,10 @@ bool DiagonalCurveEditorSubGroup::curveReset(CurveEditor *ce)
customCurve->reset (dce->customResetCurve, dce->getIdentityValue()); customCurve->reset (dce->customResetCurve, dce->getIdentityValue());
return true; return true;
case (DCT_CatumullRom) :
customCurve->reset (dce->catmullRomResetCurve, dce->getIdentityValue());
return true;
case (DCT_Parametric) : { case (DCT_Parametric) : {
DiagonalCurveEditor* dCurve = static_cast<DiagonalCurveEditor*>(parent->displayedCurve); DiagonalCurveEditor* dCurve = static_cast<DiagonalCurveEditor*>(parent->displayedCurve);
double mileStone[3]; double mileStone[3];

View File

@ -1211,7 +1211,7 @@ void FileCatalog::developRequested(const std::vector<FileBrowserEntry*>& tbe, bo
params.resize.width = options.fastexport_resize_width; params.resize.width = options.fastexport_resize_width;
params.resize.height = options.fastexport_resize_height; params.resize.height = options.fastexport_resize_height;
} }
params.resize.enabled = options.fastexport_resize_enabled; params.resize.enabled = options.fastexport_resize_enabled;
params.resize.scale = options.fastexport_resize_scale; params.resize.scale = options.fastexport_resize_scale;
params.resize.appliesTo = options.fastexport_resize_appliesTo; params.resize.appliesTo = options.fastexport_resize_appliesTo;
@ -2522,7 +2522,7 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event)
void FileCatalog::showToolBar() void FileCatalog::showToolBar()
{ {
if (!options.FileBrowserToolbarSingleRow) { if (hbToolBar1STB) {
hbToolBar1STB->show(); hbToolBar1STB->show();
} }
@ -2531,7 +2531,7 @@ void FileCatalog::showToolBar()
void FileCatalog::hideToolBar() void FileCatalog::hideToolBar()
{ {
if (!options.FileBrowserToolbarSingleRow) { if (hbToolBar1STB) {
hbToolBar1STB->hide(); hbToolBar1STB->hide();
} }

View File

@ -588,7 +588,7 @@ int main (int argc, char **argv)
bool Console = true; bool Console = true;
for (int i = 1; i < argc; i++) for (int i = 1; i < argc; i++)
if (!strcmp (argv[i], "-w")) { if (!strcmp (argv[i], "-w") || !strcmp (argv[i], "-R")) {
Console = false; Console = false;
break; break;
} }

View File

@ -775,7 +775,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event)
case GDK_MOTION_NOTIFY: case GDK_MOTION_NOTIFY:
snapToElmt = -100; snapToElmt = -100;
if (curve.type == DCT_Linear || curve.type == DCT_Spline || curve.type == DCT_NURBS) { if (curve.type == DCT_Linear || curve.type == DCT_Spline || curve.type == DCT_NURBS || curve.type == DCT_CatumullRom) {
snapToMinDistY = snapToMinDistX = 10.; snapToMinDistY = snapToMinDistX = 10.;
snapToValY = snapToValX = 0.; snapToValY = snapToValX = 0.;
@ -1026,7 +1026,7 @@ void MyDiagonalCurve::pipetteMouseOver (CurveEditor *ce, EditDataProvider *provi
double minDistanceX = double(MIN_DISTANCE) / double(graphW - 1); double minDistanceX = double(MIN_DISTANCE) / double(graphW - 1);
if (curve.type == DCT_Linear || curve.type == DCT_Spline || curve.type == DCT_NURBS) { if (curve.type == DCT_Linear || curve.type == DCT_Spline || curve.type == DCT_NURBS || curve.type == DCT_CatumullRom) {
// get the pointer position // get the pointer position
getCursorPositionFromCurve(pipetteVal); getCursorPositionFromCurve(pipetteVal);
@ -1415,6 +1415,8 @@ std::vector<double> MyDiagonalCurve::getPoints ()
result.push_back (double(DCT_Spline)); result.push_back (double(DCT_Spline));
} else if (curve.type == DCT_NURBS) { } else if (curve.type == DCT_NURBS) {
result.push_back (double(DCT_NURBS)); result.push_back (double(DCT_NURBS));
} else if (curve.type == DCT_CatumullRom) {
result.push_back (double(DCT_CatumullRom));
} }
// then we push all the points coordinate // then we push all the points coordinate
@ -1552,6 +1554,7 @@ void MyDiagonalCurve::reset(const std::vector<double> &resetCurve, double identi
switch (curve.type) { switch (curve.type) {
case DCT_Spline : case DCT_Spline :
case DCT_NURBS : case DCT_NURBS :
case DCT_CatumullRom:
curve.x.resize(2); curve.x.resize(2);
curve.y.resize(2); curve.y.resize(2);
curve.x.at(0) = 0.; curve.x.at(0) = 0.;

View File

@ -34,6 +34,7 @@ enum DiagonalCurveType {
DCT_Spline, // 1 DCT_Spline, // 1
DCT_Parametric, // 2 DCT_Parametric, // 2
DCT_NURBS, // 3 DCT_NURBS, // 3
DCT_CatumullRom, // 4
// Insert new curve type above this line // Insert new curve type above this line
DCT_Unchanged // Must remain the last of the enum DCT_Unchanged // Must remain the last of the enum
}; };

View File

@ -103,17 +103,18 @@ bool PopUpCommon::addEntry (const Glib::ustring& fileName, const Glib::ustring&
void PopUpCommon::entrySelected (int i) void PopUpCommon::entrySelected (int i)
{ {
// Emit a signal if the selected item has changed // Emit a signal if the selected item has changed
if (setSelected (i)) if (setSelected (posToIndex(i)))
messageChanged (selected); messageChanged (posToIndex(selected));
// Emit a signal in all case (i.e. propagate the signal_activate event) // Emit a signal in all case (i.e. propagate the signal_activate event)
messageItemSelected (selected); messageItemSelected (posToIndex(selected));
} }
void PopUpCommon::setItemSensitivity (int index, bool isSensitive) { void PopUpCommon::setItemSensitivity (int index, bool isSensitive) {
const auto items = menu->get_children (); const auto items = menu->get_children ();
if (size_t(index) < items.size ()) { size_t pos = indexToPos(index);
items[size_t(index)]->set_sensitive (isSensitive); if (pos < items.size ()) {
items[pos]->set_sensitive (isSensitive);
} }
} }
@ -123,6 +124,8 @@ void PopUpCommon::setItemSensitivity (int index, bool isSensitive) {
*/ */
bool PopUpCommon::setSelected (int entryNum) bool PopUpCommon::setSelected (int entryNum)
{ {
entryNum = indexToPos(entryNum);
if (entryNum < 0 || entryNum > ((int)images.size() - 1) || (int)entryNum == selected) { if (entryNum < 0 || entryNum > ((int)images.size() - 1) || (int)entryNum == selected) {
return false; return false;
} else { } else {

View File

@ -75,6 +75,9 @@ private:
void showMenu(GdkEventButton* event); void showMenu(GdkEventButton* event);
protected: protected:
virtual int posToIndex(int p) const { return p; }
virtual int indexToPos(int i) const { return i; }
void entrySelected (int i); void entrySelected (int i);
}; };
@ -96,7 +99,7 @@ inline int PopUpCommon::getEntryCount () const
inline int PopUpCommon::getSelected () const inline int PopUpCommon::getSelected () const
{ {
return selected; return posToIndex(selected);
} }
#endif #endif

View File

@ -307,8 +307,6 @@ void ProfilePanel::save_clicked (GdkEventButton* event)
do { do {
if (dialog.run() == Gtk::RESPONSE_OK) { if (dialog.run() == Gtk::RESPONSE_OK) {
dialog.hide();
std::string fname = dialog.get_filename(); std::string fname = dialog.get_filename();
Glib::ustring ext = getExtension (fname); Glib::ustring ext = getExtension (fname);

View File

@ -322,7 +322,6 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB
temp = Gtk::manage (new Adjuster (M("TP_WBALANCE_TEMPERATURE"), MINTEMP, MAXTEMP, 5, CENTERTEMP, itempL, itempR, &wbSlider2Temp, &wbTemp2Slider)); temp = Gtk::manage (new Adjuster (M("TP_WBALANCE_TEMPERATURE"), MINTEMP, MAXTEMP, 5, CENTERTEMP, itempL, itempR, &wbSlider2Temp, &wbTemp2Slider));
green = Gtk::manage (new Adjuster (M("TP_WBALANCE_GREEN"), MINGREEN, MAXGREEN, 0.001, 1.0, igreenL, igreenR)); green = Gtk::manage (new Adjuster (M("TP_WBALANCE_GREEN"), MINGREEN, MAXGREEN, 0.001, 1.0, igreenL, igreenR));
green->setLogScale(10, 1, true);
equal = Gtk::manage (new Adjuster (M("TP_WBALANCE_EQBLUERED"), MINEQUAL, MAXEQUAL, 0.001, 1.0, iblueredL, iblueredR)); equal = Gtk::manage (new Adjuster (M("TP_WBALANCE_EQBLUERED"), MINEQUAL, MAXEQUAL, 0.001, 1.0, iblueredL, iblueredR));
tempBias = Gtk::manage (new Adjuster(M("TP_WBALANCE_TEMPBIAS"), -0.5, 0.5, 0.01, 0.0, itempbiasL, itempbiasR)); tempBias = Gtk::manage (new Adjuster(M("TP_WBALANCE_TEMPBIAS"), -0.5, 0.5, 0.01, 0.0, itempbiasL, itempbiasR));
cache_customTemp (0); cache_customTemp (0);
@ -701,7 +700,6 @@ void WhiteBalance::read (const ProcParams* pp, const ParamsEdited* pedited)
set_inconsistent(multiImage && !pedited->wb.enabled); set_inconsistent(multiImage && !pedited->wb.enabled);
} }
green->setLogScale(10, green->getValue(), true);
methconn.block (false); methconn.block (false);
enableListener (); enableListener ();
@ -809,7 +807,6 @@ void WhiteBalance::setWB (int vtemp, double vgreen)
listener->panelChanged (EvWBTemp, Glib::ustring::compose("%1, %2", (int)temp->getValue(), Glib::ustring::format (std::setw(4), std::fixed, std::setprecision(3), green->getValue()))); listener->panelChanged (EvWBTemp, Glib::ustring::compose("%1, %2", (int)temp->getValue(), Glib::ustring::format (std::setw(4), std::fixed, std::setprecision(3), green->getValue())));
} }
green->setLogScale(10, vgreen, true);
} }
void WhiteBalance::setAdjusterBehavior (bool tempadd, bool greenadd, bool equaladd, bool tempbiasadd) void WhiteBalance::setAdjusterBehavior (bool tempadd, bool greenadd, bool equaladd, bool tempbiasadd)