Merge branch 'dev' into hidpi-icons
This commit is contained in:
commit
8728142b64
@ -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)
|
||||||
|
BIN
rtdata/images/themed/png/dark/curve-catmullrom-small.png
Normal file
BIN
rtdata/images/themed/png/dark/curve-catmullrom-small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 430 B |
BIN
rtdata/images/themed/png/dark/curve-catmullrom.png
Normal file
BIN
rtdata/images/themed/png/dark/curve-catmullrom.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 463 B |
BIN
rtdata/images/themed/png/light/curve-catmullrom-small.png
Normal file
BIN
rtdata/images/themed/png/light/curve-catmullrom-small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 437 B |
BIN
rtdata/images/themed/png/light/curve-catmullrom.png
Normal file
BIN
rtdata/images/themed/png/light/curve-catmullrom.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 490 B |
159
rtdata/images/themed/svg/curve-catmullrom-small.svg
Normal file
159
rtdata/images/themed/svg/curve-catmullrom-small.svg
Normal 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 |
131
rtdata/images/themed/svg/curve-catmullrom.svg
Normal file
131
rtdata/images/themed/svg/curve-catmullrom.svg
Normal 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 |
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 {
|
||||||
|
@ -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();
|
||||||
|
@ -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));
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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"));
|
||||||
|
@ -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];
|
||||||
|
|
||||||
|
@ -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];
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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.;
|
||||||
|
@ -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
|
||||||
};
|
};
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user