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")
|
||||
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)
|
||||
find_package(OpenMP)
|
||||
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_OUT;O:
|
||||
!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.
|
||||
!DONT_SHOW_AGAIN;Don't show this message again.
|
||||
!DYNPROFILEEDITOR_DELETE;Delete
|
||||
@ -1577,7 +1578,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation.
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
|
||||
!PREFERENCES_TAB_PERFORMANCE;Performance
|
||||
!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_VERTICAL;Vertical
|
||||
!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_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
|
||||
|
@ -980,6 +980,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!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.
|
||||
!DYNPROFILEEDITOR_IMGTYPE_ANY;Any
|
||||
!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_VERTICAL;Vertical
|
||||
!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_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
|
||||
|
@ -432,9 +432,10 @@ TP_WBALANCE_TEMPERATURE;色溫
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SET;Set
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
|
||||
@ -1877,7 +1878,6 @@ TP_WBALANCE_TEMPERATURE;色溫
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -1702,7 +1702,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Vodorovně pouze PDAF řádky
|
||||
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Svisle
|
||||
TP_PREPROCESS_NO_FOUND;Nic nenalezeno
|
||||
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_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
|
||||
@ -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.
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!DYNPROFILEEDITOR_IMGTYPE_ANY;Any
|
||||
!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR
|
||||
!DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift
|
||||
|
@ -424,9 +424,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SET;Set
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
|
||||
@ -1874,7 +1875,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -74,6 +74,7 @@
|
||||
#73 21.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
|
||||
#76 11.12.2018 Erweiterung (TooWaBoo) RT 5.5
|
||||
|
||||
ABOUT_TAB_BUILD;Version
|
||||
ABOUT_TAB_CREDITS;Danksagungen
|
||||
@ -90,9 +91,10 @@ CURVEEDITOR_AXIS_IN;x:
|
||||
CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
CURVEEDITOR_AXIS_OUT;y:
|
||||
CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
CURVEEDITOR_CATMULLROM;Flexibel
|
||||
CURVEEDITOR_CURVE;Kurve
|
||||
CURVEEDITOR_CURVES;Kurven
|
||||
CURVEEDITOR_CUSTOM;Angepasst
|
||||
CURVEEDITOR_CUSTOM;Standard
|
||||
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_HIGHLIGHTS;Spitzlichter
|
||||
@ -1907,7 +1909,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal (nur PDAF-Zeilen)
|
||||
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertikal
|
||||
TP_PREPROCESS_NO_FOUND;Nichts gefunden
|
||||
TP_PREPROCESS_PDAFLINESFILTER;PDAF-Zeilenfilter
|
||||
TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Minimiert Streifenrauschen, das bei Gegenlichtaufnahmen mit\nsichtbaren Flares einiger spiegellosen Sony-Kameras entsteht.
|
||||
TP_PRSHARPENING_LABEL;Nach Skalierung schärfen
|
||||
TP_PRSHARPENING_TOOLTIP;Schärft das Bild nach der Größenänderung.\nFunktioniert nur mit der Methode “Lanczos“.\nDas Ergebnis wird nicht in RawTherapee\nangezeigt.\n\nWeitere Informationen finden Sie auf “RawPedia“.
|
||||
TP_RAWCACORR_AUTO;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_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SHOWDATETIME;Show date and time
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!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_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -18,9 +18,10 @@
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_HIGHLIGHTS;Highlights
|
||||
@ -1210,7 +1211,7 @@
|
||||
!PREFERENCES_SHOWBASICEXIF;Show basic Exif info
|
||||
!PREFERENCES_SHOWDATETIME;Show date and time
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
@ -1824,7 +1825,6 @@
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
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_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SET;Set
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
|
||||
@ -1875,7 +1876,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -1834,7 +1834,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontale seulement sur les lig
|
||||
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Verticale
|
||||
TP_PREPROCESS_NO_FOUND;Aucun trouvé
|
||||
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_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
|
||||
@ -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_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_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SET;Set
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
|
||||
@ -1874,7 +1875,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -425,9 +425,10 @@ TP_WBALANCE_TEMPERATURE;מידת חום
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SET;Set
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
|
||||
@ -1875,7 +1876,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -1291,6 +1291,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!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.
|
||||
!DONT_SHOW_AGAIN;Don't show this message again.
|
||||
!DYNPROFILEEDITOR_DELETE;Delete
|
||||
@ -1776,7 +1777,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation.
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
|
||||
!PREFERENCES_TAB_PERFORMANCE;Performance
|
||||
!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_VERTICAL;Vertical
|
||||
!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_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
|
||||
|
@ -1855,7 +1855,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;PDAFの場合は水平方向だ
|
||||
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;垂直方向
|
||||
TP_PREPROCESS_NO_FOUND;未検出
|
||||
TP_PREPROCESS_PDAFLINESFILTER;PDAFラインフィルタ
|
||||
TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Sonyのミラーレスカメラの一部では、PDAFイメージセンサが原因で、ゴーストが出るバックライトの画像でストライプノイズが発生することがあり、これを軽減します。
|
||||
TP_PRSHARPENING_LABEL;リサイズ後のシャープ化
|
||||
TP_PRSHARPENING_TOOLTIP;リサイズ後の画像をシャープ化します。但し、リサイズの方式がランチョスの場合に限ります。プレビュー画面でこの機能の効果を見ることは出来ません。使用法に関してはRawPediaを参照して下さい。
|
||||
TP_RAWCACORR_AUTO;自動補正
|
||||
@ -2340,4 +2339,5 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: <b>-</b>
|
||||
! Untranslated keys follow; remove the ! prefix after an entry is translated.
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!GENERAL_CURRENT;Current
|
||||
|
@ -425,9 +425,10 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SET;Set
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
|
||||
@ -1875,7 +1876,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -861,6 +861,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!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.
|
||||
!DONT_SHOW_AGAIN;Don't show this message again.
|
||||
!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_LABEL;Serialize reading of TIFF files
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation.
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
|
||||
!PREFERENCES_TAB_PERFORMANCE;Performance
|
||||
!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_VERTICAL;Vertical
|
||||
!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_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
|
||||
|
@ -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.
|
||||
!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.
|
||||
!DYNPROFILEEDITOR_IMGTYPE_ANY;Any
|
||||
!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_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter
|
||||
!TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare.
|
||||
!TP_RAWCACORR_AUTOIT;Iterations
|
||||
!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time.
|
||||
!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift
|
||||
|
@ -424,9 +424,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SET;Set
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
|
||||
@ -1874,7 +1875,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -1413,6 +1413,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!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.
|
||||
!DONT_SHOW_AGAIN;Don't show this message again.
|
||||
!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_LABEL;Serialize reading of TIFF files
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation.
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
|
||||
!PREFERENCES_TAB_PERFORMANCE;Performance
|
||||
!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_VERTICAL;Vertical
|
||||
!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_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
|
||||
|
@ -1413,6 +1413,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!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.
|
||||
!DONT_SHOW_AGAIN;Don't show this message again.
|
||||
!DYNPROFILEEDITOR_DELETE;Delete
|
||||
@ -1852,7 +1853,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation.
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
|
||||
!PREFERENCES_TAB_PERFORMANCE;Performance
|
||||
!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_VERTICAL;Vertical
|
||||
!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_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
|
||||
|
@ -1744,7 +1744,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal apenas em linhas PDAF
|
||||
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
TP_PREPROCESS_NO_FOUND;Nenhum encontrado
|
||||
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_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
|
||||
@ -2219,6 +2218,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
|
||||
! Untranslated keys follow; remove the ! prefix after an entry is translated.
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!DYNPROFILEEDITOR_IMGTYPE_ANY;Any
|
||||
!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR
|
||||
!DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift
|
||||
|
@ -1433,6 +1433,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
|
||||
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!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.
|
||||
!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.
|
||||
@ -1843,7 +1844,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation.
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_TAB_PERFORMANCE;Performance
|
||||
!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview
|
||||
!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_VERTICAL;Vertical
|
||||
!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_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
|
||||
|
@ -1248,6 +1248,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!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.
|
||||
!DIRBROWSER_FOLDERS;Folders
|
||||
!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_LABEL;Serialize reading of TIFF files
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation.
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
|
||||
!PREFERENCES_TAB_PERFORMANCE;Performance
|
||||
!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_VERTICAL;Vertical
|
||||
!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_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
|
||||
|
@ -1248,6 +1248,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!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.
|
||||
!DIRBROWSER_FOLDERS;Folders
|
||||
!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_LABEL;Serialize reading of TIFF files
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation.
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules
|
||||
!PREFERENCES_TAB_PERFORMANCE;Performance
|
||||
!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_VERTICAL;Vertical
|
||||
!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_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
|
||||
|
@ -512,6 +512,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!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.
|
||||
@ -1389,7 +1390,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files
|
||||
!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation.
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!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.
|
||||
@ -1890,7 +1891,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -426,9 +426,10 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SET;Set
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!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_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -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>
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!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.
|
||||
!DONT_SHOW_AGAIN;Don't show this message again.
|
||||
!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_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter
|
||||
!TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare.
|
||||
!TP_RAWCACORR_AUTOIT;Iterations
|
||||
!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time.
|
||||
!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift
|
||||
|
@ -425,9 +425,10 @@ TP_WBALANCE_TEMPERATURE;Isı
|
||||
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
!CURVEEDITOR_AXIS_OUT;O:
|
||||
!CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
!CURVEEDITOR_CATMULLROM;Flexible
|
||||
!CURVEEDITOR_CURVE;Curve
|
||||
!CURVEEDITOR_CURVES;Curves
|
||||
!CURVEEDITOR_CUSTOM;Custom
|
||||
!CURVEEDITOR_CUSTOM;Standard
|
||||
!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_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_SET;Set
|
||||
!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
!PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs
|
||||
!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done
|
||||
@ -1874,7 +1875,6 @@ TP_WBALANCE_TEMPERATURE;Isı
|
||||
!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
|
||||
!TP_PREPROCESS_NO_FOUND;None found
|
||||
!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_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
|
||||
|
@ -17,9 +17,10 @@ CURVEEDITOR_AXIS_IN;I:
|
||||
CURVEEDITOR_AXIS_LEFT_TAN;LT:
|
||||
CURVEEDITOR_AXIS_OUT;O:
|
||||
CURVEEDITOR_AXIS_RIGHT_TAN;RT:
|
||||
CURVEEDITOR_CATMULLROM;Flexible
|
||||
CURVEEDITOR_CURVE;Curve
|
||||
CURVEEDITOR_CURVES;Curves
|
||||
CURVEEDITOR_CUSTOM;Custom
|
||||
CURVEEDITOR_CUSTOM;Standard
|
||||
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_HIGHLIGHTS;Highlights
|
||||
@ -1209,7 +1210,7 @@ PREFERENCES_SET;Set
|
||||
PREFERENCES_SHOWBASICEXIF;Show basic Exif info
|
||||
PREFERENCES_SHOWDATETIME;Show date and time
|
||||
PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation
|
||||
PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar
|
||||
PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar
|
||||
PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
|
||||
PREFERENCES_SINGLETAB;Single Editor Tab Mode
|
||||
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_NO_FOUND;None found
|
||||
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_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
|
||||
|
@ -2,7 +2,7 @@
|
||||
This file is part of RawTherapee.
|
||||
|
||||
Copyright (c) 2016-2018 TooWaBoo
|
||||
Version 2.98
|
||||
Version 3.00
|
||||
|
||||
RawTherapee is free software: you can redistribute it and/or modify
|
||||
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 ***************************************************************************************/
|
||||
|
||||
/*** Context & popups menus *****************************************************************************/
|
||||
.popup > decoration {
|
||||
.csd.popup > decoration {
|
||||
background-image: none;
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
@ -1245,47 +1245,47 @@ menu image:not(.dummy),
|
||||
}
|
||||
|
||||
/*** Selection popup list (used in filechooser) ***/
|
||||
entry > window > frame {
|
||||
entry > window > frame:not(.dummy) {
|
||||
background-color: @bg-dark-grey;
|
||||
padding: 0;
|
||||
}
|
||||
entry > window > frame > border {
|
||||
entry > window > frame > border:not(.dummy) {
|
||||
background-color: @bg-dark-grey;
|
||||
padding: 0.083333333333333333em;
|
||||
border: 0.083333333333333333em solid @accent-color;
|
||||
}
|
||||
entry > window > frame > border {
|
||||
margin: 0.083333333333333333em;
|
||||
border: 0.083333333333333333em solid @accent-color;
|
||||
}
|
||||
/* end */
|
||||
|
||||
/*** end ***************************************************************************************/
|
||||
|
||||
/*** Popover *** Context menu filechooser ******************************************************/
|
||||
|
||||
popover.background {
|
||||
popover {
|
||||
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;
|
||||
border: 0.083333333333333333em solid @accent-color;
|
||||
border-radius: 0;
|
||||
padding: 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;
|
||||
margin: -9px;
|
||||
}
|
||||
popover.background modelbutton {
|
||||
popover modelbutton {
|
||||
min-height: 2em;
|
||||
padding: 0 0.416666666666666666em;
|
||||
margin: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
popover.background label {
|
||||
popover label {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
popover.background modelbutton:hover label,
|
||||
popover.background modelbutton:hover {
|
||||
popover modelbutton:hover label,
|
||||
popover modelbutton:hover {
|
||||
background-color: @accent-color;
|
||||
color: @text-hl-color;
|
||||
}
|
||||
@ -2042,7 +2042,7 @@ entry:focus > selection {
|
||||
/*** end ***************************************************************************************/
|
||||
|
||||
/*** Window Layout *****************************************************************************/
|
||||
:not(.popup):not(tooltip) > decoration {
|
||||
.csd:not(.popup):not(tooltip) > decoration {
|
||||
background-color: @winHeaderbar;
|
||||
background-image: none;
|
||||
border-radius: 0.416666666666666666em 0.416666666666666666em 0 0;
|
||||
@ -2057,14 +2057,10 @@ headerbar {
|
||||
background-image: linear-gradient(shade(@winHeaderbar,1.14), shade(@winHeaderbar,.86));
|
||||
border-bottom: 0.083333333333333333em solid @bg-dark-grey;
|
||||
border-radius: 0.416666666666666666em 0.416666666666666666em 0 0;
|
||||
min-height: 2.333333333333333333em;
|
||||
min-height: 2em;
|
||||
padding: 0.083333333333333333em 0.416666666666666666em 0;
|
||||
margin: 0;
|
||||
}
|
||||
messagedialog headerbar {
|
||||
min-height: 2em;
|
||||
|
||||
}
|
||||
headerbar .title{
|
||||
color: @winTitle;
|
||||
}
|
||||
@ -2076,7 +2072,7 @@ headerbar .title{
|
||||
/**/
|
||||
|
||||
/* 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;
|
||||
}
|
||||
headerbar:backdrop {
|
||||
|
@ -48,7 +48,7 @@ DiagonalCurve::DiagonalCurve (const std::vector<double>& p, int poly_pn)
|
||||
bool identity = true;
|
||||
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;
|
||||
x = new double[N];
|
||||
y = new double[N];
|
||||
@ -86,11 +86,12 @@ DiagonalCurve::DiagonalCurve (const std::vector<double>& p, int poly_pn)
|
||||
|
||||
if (!identity) {
|
||||
if (kind == DCT_Spline && N > 2) {
|
||||
//spline_cubic_set ();
|
||||
catmull_rom_set();
|
||||
spline_cubic_set ();
|
||||
} else if (kind == DCT_NURBS && N > 2) {
|
||||
NURBS_set ();
|
||||
fillHash();
|
||||
} else if (kind == DCT_CatumullRom && N > 2) {
|
||||
catmull_rom_set();
|
||||
} else {
|
||||
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)) {
|
||||
for (i = 1; i < n_points-1; ++i) {
|
||||
t = p1_x + space * i;
|
||||
if (t >= p2_x) {
|
||||
break;
|
||||
}
|
||||
res_x.push_back(t);
|
||||
res_y.push_back(p1_y);
|
||||
}
|
||||
@ -459,7 +463,7 @@ double DiagonalCurve::getVal (double t) const
|
||||
}
|
||||
|
||||
case DCT_Linear :
|
||||
// case DCT_Spline :
|
||||
case DCT_Spline :
|
||||
{
|
||||
// values under and over the first and last point
|
||||
if (t > x[N - 1]) {
|
||||
@ -484,21 +488,21 @@ double DiagonalCurve::getVal (double t) const
|
||||
double h = x[k_hi] - x[k_lo];
|
||||
|
||||
// linear
|
||||
// if (kind == DCT_Linear) {
|
||||
if (kind == DCT_Linear) {
|
||||
return y[k_lo] + (t - x[k_lo]) * ( y[k_hi] - y[k_lo] ) / h;
|
||||
// }
|
||||
// // spline curve
|
||||
// else { // if (kind==Spline) {
|
||||
// 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 CLIPD(r);
|
||||
// }
|
||||
}
|
||||
// spline curve
|
||||
else { // if (kind==Spline) {
|
||||
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 CLIPD(r);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case DCT_Spline: {
|
||||
case DCT_CatumullRom: {
|
||||
auto it = std::lower_bound(poly_x.begin(), poly_x.end(), t);
|
||||
if (it == poly_x.end()) {
|
||||
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)
|
||||
{
|
||||
curve.clear();
|
||||
@ -259,10 +210,11 @@ void mappingToCurve(const std::vector<int> &mapping, std::vector<double> &curve)
|
||||
if (curve.size() < 4) {
|
||||
curve = { DCT_Linear }; // not enough points, fall back to linear
|
||||
} else {
|
||||
CubicSplineCurve c(curve);
|
||||
curve.insert(curve.begin(), DCT_Spline);
|
||||
DiagonalCurve c(curve);
|
||||
double gap = 0.05;
|
||||
double x = 0.0;
|
||||
curve = { DCT_Spline };
|
||||
curve = { DCT_CatumullRom };
|
||||
while (x < 1.0) {
|
||||
curve.push_back(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.shcompr, "Exposure", "ShadowCompr", toneCurve.shcompr, 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);
|
||||
|
||||
// Highlight recovery
|
||||
@ -3683,7 +3683,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
pedited->toneCurve.fromHistMatching = true;
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
|
@ -4833,20 +4833,27 @@ void RawImageSource::getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LU
|
||||
} // end of critical 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++) {
|
||||
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];
|
||||
|
||||
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];
|
||||
|
||||
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];
|
||||
}
|
||||
|
||||
idx = std::min(255.f, mult[2] * std::max(0.f, i - cblacksom[2]));
|
||||
idx = getidx(2, i);
|
||||
histBlueRaw[idx] += hist[2][i];
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
#ifdef _OPENMP
|
||||
@ -31,7 +32,6 @@
|
||||
#include "rt_algo.h"
|
||||
#include "rt_math.h"
|
||||
#include "sleef.c"
|
||||
#include "jaggedarray.h"
|
||||
|
||||
namespace {
|
||||
float calcBlendFactor(float val, float threshold) {
|
||||
@ -51,6 +51,113 @@ vfloat calcBlendFactor(vfloat valv, vfloat thresholdv) {
|
||||
return onev / (onev + xexpf(c16v - c16v * valv / thresholdv));
|
||||
}
|
||||
#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
|
||||
@ -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) {
|
||||
|
||||
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 i = 0; i < W; ++i) {
|
||||
blend[j][i] = amount;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (autoContrast) {
|
||||
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));
|
||||
|
||||
constexpr float scale = 0.0625f / 327.68f;
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for schedule(dynamic)
|
||||
#pragma omp parallel
|
||||
#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__
|
||||
vfloat avgv = ZEROV;
|
||||
for (int y = tileY; y < tileY + tilesize; ++y) {
|
||||
for (int x = tileX; x < tileX + tilesize; x += 4) {
|
||||
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];
|
||||
}
|
||||
}
|
||||
const vfloat contrastThresholdv = F2V(contrastThreshold);
|
||||
const vfloat scalev = F2V(scale);
|
||||
const vfloat amountv = F2V(amount);
|
||||
#endif
|
||||
avg /= SQR(tilesize);
|
||||
if (avg < 2000.f || avg > 20000.f) {
|
||||
// too dark or too bright => skip the tile
|
||||
variances[i][j] = RT_INFINITY_F;
|
||||
continue;
|
||||
}
|
||||
#ifdef _OPENMP
|
||||
#pragma omp for schedule(dynamic,16)
|
||||
#endif
|
||||
|
||||
for(int j = 2; j < H - 2; ++j) {
|
||||
int i = 2;
|
||||
#ifdef __SSE2__
|
||||
vfloat varv = ZEROV;
|
||||
avgv = F2V(avg);
|
||||
for (int y = tileY; y < tileY + tilesize; ++y) {
|
||||
for (int x = tileX; x < tileX + tilesize; x +=4) {
|
||||
varv += SQRV(LVFU(luminance[y][x]) - avgv);
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
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
|
||||
var /= (SQR(tilesize) * avg);
|
||||
variances[i][j] = var;
|
||||
}
|
||||
}
|
||||
for(; i < W - 2; ++i) {
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
|
||||
const int minY = skip * minI;
|
||||
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;
|
||||
blend[j][i] = amount * calcBlendFactor(contrast, contrastThreshold);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
#pragma omp parallel
|
||||
#pragma omp single
|
||||
#endif
|
||||
{
|
||||
#ifdef __SSE2__
|
||||
const vfloat contrastThresholdv = F2V(contrastThreshold);
|
||||
const vfloat scalev = F2V(scale);
|
||||
const vfloat amountv = F2V(amount);
|
||||
#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);
|
||||
// upper border
|
||||
for(int j = 0; j < 2; ++j) {
|
||||
for(int i = 2; i < W - 2; ++i) {
|
||||
blend[j][i] = blend[2][i];
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _OPENMP
|
||||
#pragma omp single
|
||||
#endif
|
||||
{
|
||||
// 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];
|
||||
// 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];
|
||||
}
|
||||
}
|
||||
|
||||
// blur blend mask to smooth transitions
|
||||
gaussianBlur(blend, blend, W, H, 2.0);
|
||||
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];
|
||||
}
|
||||
}
|
||||
|
||||
// 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 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::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();
|
||||
EvLineDenoiseDirection = m->newEvent(DARKFRAME, "HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION");
|
||||
EvPDAFLinesFilter = m->newEvent(DARKFRAME, "HISTORY_MSG_PREPROCESS_PDAFLINESFILTER");
|
||||
|
||||
lineDenoise = Gtk::manage(new Adjuster (M("TP_PREPROCESS_LINEDENOISE"), 0, 1000, 1, 0));
|
||||
lineDenoise->setAdjusterListener (this);
|
||||
lineDenoise = Gtk::manage(new Adjuster(M("TP_PREPROCESS_LINEDENOISE"), 0, 1000, 1, 0));
|
||||
lineDenoise->setAdjusterListener(this);
|
||||
|
||||
if (lineDenoise->delay < options.adjusterMaxDelay) {
|
||||
lineDenoise->delay = options.adjusterMaxDelay;
|
||||
@ -39,8 +39,8 @@ BayerPreProcess::BayerPreProcess () : FoldableToolPanel(this, "bayerpreprocess",
|
||||
|
||||
lineDenoise->show();
|
||||
|
||||
greenEqThreshold = Gtk::manage(new Adjuster (M("TP_PREPROCESS_GREENEQUIL"), 0, 100, 1, 0));
|
||||
greenEqThreshold->setAdjusterListener (this);
|
||||
greenEqThreshold = Gtk::manage(new Adjuster(M("TP_PREPROCESS_GREENEQUIL"), 0, 100, 1, 0));
|
||||
greenEqThreshold->setAdjusterListener(this);
|
||||
|
||||
if (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->show();
|
||||
lineDenoiseDirection->signal_changed().connect(sigc::mem_fun(*this, &BayerPreProcess::lineDenoiseDirectionChanged));
|
||||
|
||||
|
||||
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( *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->set_tooltip_markup(M("TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP"));
|
||||
pdafLinesFilter->show();
|
||||
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)
|
||||
{
|
||||
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) {
|
||||
lineDenoiseDirection->set_active(3);
|
||||
}
|
||||
|
||||
pdafLinesFilter->set_inconsistent(!pedited->raw.bayersensor.pdafLinesFilter);
|
||||
}
|
||||
|
||||
lineDenoise->setValue (pp->raw.bayersensor.linenoise);
|
||||
int d = int(pp->raw.bayersensor.linenoiseDirection)-1;
|
||||
lineDenoise->setValue(pp->raw.bayersensor.linenoise);
|
||||
int d = int(pp->raw.bayersensor.linenoiseDirection) - 1;
|
||||
|
||||
if (d == 4) {
|
||||
--d;
|
||||
}
|
||||
|
||||
lineDenoiseDirection->set_active(d);
|
||||
greenEqThreshold->setValue (pp->raw.bayersensor.greenthresh);
|
||||
greenEqThreshold->setValue(pp->raw.bayersensor.greenthresh);
|
||||
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();
|
||||
int d = lineDenoiseDirection->get_active_row_number() + 1;
|
||||
|
||||
if (d == 4) {
|
||||
++d;
|
||||
}
|
||||
|
||||
pp->raw.bayersensor.linenoiseDirection = RAWParams::BayerSensor::LineNoiseDirection(d);
|
||||
pp->raw.bayersensor.greenthresh = greenEqThreshold->getIntValue();
|
||||
pp->raw.bayersensor.pdafLinesFilter = pdafLinesFilter->get_active();
|
||||
|
||||
if (pedited) {
|
||||
pedited->raw.bayersensor.linenoise = lineDenoise->getEditedState ();
|
||||
pedited->raw.bayersensor.greenEq = greenEqThreshold->getEditedState ();
|
||||
pedited->raw.bayersensor.linenoise = lineDenoise->getEditedState();
|
||||
pedited->raw.bayersensor.greenEq = greenEqThreshold->getEditedState();
|
||||
pedited->raw.bayersensor.linenoise = lineDenoiseDirection->get_active_row_number() != 3;
|
||||
pedited->raw.bayersensor.pdafLinesFilter = !pdafLinesFilter->get_inconsistent();
|
||||
}
|
||||
}
|
||||
|
||||
void BayerPreProcess::adjusterChanged (Adjuster* a, double newval)
|
||||
void BayerPreProcess::adjusterChanged(Adjuster* a, double newval)
|
||||
{
|
||||
if (listener) {
|
||||
|
||||
Glib::ustring value = a->getTextValue();
|
||||
|
||||
if (a == greenEqThreshold) {
|
||||
listener->panelChanged (EvPreProcessGEquilThresh, value );
|
||||
listener->panelChanged(EvPreProcessGEquilThresh, value);
|
||||
} 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)
|
||||
{
|
||||
ToolPanel::setBatchMode (batchMode);
|
||||
lineDenoise->showEditedCB ();
|
||||
greenEqThreshold->showEditedCB ();
|
||||
ToolPanel::setBatchMode(batchMode);
|
||||
lineDenoise->showEditedCB();
|
||||
greenEqThreshold->showEditedCB();
|
||||
|
||||
if (batchMode) {
|
||||
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)
|
||||
{
|
||||
lineDenoise->setDefault( defParams->raw.bayersensor.linenoise);
|
||||
greenEqThreshold->setDefault (defParams->raw.bayersensor.greenthresh);
|
||||
lineDenoise->setDefault(defParams->raw.bayersensor.linenoise);
|
||||
greenEqThreshold->setDefault(defParams->raw.bayersensor.greenthresh);
|
||||
|
||||
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);
|
||||
} else {
|
||||
lineDenoise->setDefaultEditedState( Irrelevant );
|
||||
greenEqThreshold->setDefaultEditedState(Irrelevant );
|
||||
lineDenoise->setDefaultEditedState(Irrelevant);
|
||||
greenEqThreshold->setDefaultEditedState(Irrelevant);
|
||||
}
|
||||
}
|
||||
|
||||
void BayerPreProcess::setAdjusterBehavior (bool linedenoiseadd, bool greenequiladd)
|
||||
void BayerPreProcess::setAdjusterBehavior(bool linedenoiseadd, bool greenequiladd)
|
||||
{
|
||||
|
||||
lineDenoise->setAddMode(linedenoiseadd);
|
||||
greenEqThreshold->setAddMode(greenequiladd);
|
||||
}
|
||||
|
||||
void BayerPreProcess::trimValues (rtengine::procparams::ProcParams* pp)
|
||||
void BayerPreProcess::trimValues(rtengine::procparams::ProcParams* pp)
|
||||
{
|
||||
|
||||
lineDenoise->trimValue(pp->raw.bayersensor.linenoise);
|
||||
|
@ -339,6 +339,25 @@ Glib::ustring CacheManager::getCacheFileName (const Glib::ustring& subDir,
|
||||
|
||||
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>;
|
||||
std::vector<FNameMTime> files;
|
||||
|
||||
|
@ -25,6 +25,47 @@
|
||||
|
||||
#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()
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
// 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-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-nurbs-small.png", M("CURVEEDITOR_NURBS")); // 3 NURBS
|
||||
static_cast<CurveTypePopUpButton *>(curveType)->setPosIndexMap({ 0, 1, 4, 2, 3 });
|
||||
curveType->setSelected(DCT_Linear);
|
||||
|
||||
curveType->show();
|
||||
|
||||
rangeLabels[0] = M("CURVEEDITOR_SHADOWS");
|
||||
@ -65,6 +108,9 @@ std::vector<double> DiagonalCurveEditor::getCurve ()
|
||||
case (DCT_NURBS):
|
||||
return curve = NURBSCurveEd;
|
||||
|
||||
case (DCT_CatumullRom):
|
||||
return curve = catmullRomCurveEd;
|
||||
|
||||
default:
|
||||
// returning Linear or Unchanged
|
||||
curve.push_back((double)(selected));
|
||||
@ -96,6 +142,13 @@ void DiagonalCurveEditor::setResetCurve(DiagonalCurveType cType, const std::vect
|
||||
|
||||
break;
|
||||
|
||||
case (DCT_CatumullRom):
|
||||
if (resetCurve.size() && DiagonalCurveType(resetCurve.at(0)) == cType) {
|
||||
catmullRomResetCurve = resetCurve;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -209,9 +262,9 @@ CurveEditor::CurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, CurveEd
|
||||
subGroup = ceSubGroup;
|
||||
|
||||
if (group && text.size()) {
|
||||
curveType = new PopUpToggleButton(text + ":");
|
||||
curveType = new CurveTypePopUpButton(text + ":");
|
||||
} else {
|
||||
curveType = new PopUpToggleButton();
|
||||
curveType = new CurveTypePopUpButton();
|
||||
}
|
||||
|
||||
curveType->set_tooltip_text(M("CURVEEDITOR_TYPE"));
|
||||
|
@ -156,6 +156,8 @@ protected:
|
||||
std::vector<double> paramResetCurve;
|
||||
std::vector<double> NURBSCurveEd;
|
||||
std::vector<double> NURBSResetCurve;
|
||||
std::vector<double> catmullRomCurveEd;
|
||||
std::vector<double> catmullRomResetCurve;
|
||||
Glib::ustring rangeLabels[4];
|
||||
double rangeMilestones[3];
|
||||
|
||||
|
@ -393,6 +393,7 @@ DiagonalCurveEditor* DiagonalCurveEditorSubGroup::addCurve(Glib::ustring curveLa
|
||||
storeCurveValues(newCE, getCurveFromGUI(DCT_Spline));
|
||||
storeCurveValues(newCE, getCurveFromGUI(DCT_Parametric));
|
||||
storeCurveValues(newCE, getCurveFromGUI(DCT_NURBS));
|
||||
storeCurveValues(newCE, getCurveFromGUI(DCT_CatumullRom));
|
||||
return newCE;
|
||||
}
|
||||
|
||||
@ -437,6 +438,7 @@ void DiagonalCurveEditorSubGroup::pipetteMouseOver(EditDataProvider *provider, i
|
||||
|
||||
switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) {
|
||||
case (DCT_Spline):
|
||||
case (DCT_CatumullRom):
|
||||
customCurve->pipetteMouseOver(curveEditor, provider, modifierKey);
|
||||
customCurve->setDirty(true);
|
||||
break;
|
||||
@ -511,6 +513,7 @@ bool DiagonalCurveEditorSubGroup::pipetteButton1Pressed(EditDataProvider *provid
|
||||
|
||||
switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) {
|
||||
case (DCT_Spline):
|
||||
case (DCT_CatumullRom):
|
||||
isDragging = customCurve->pipetteButton1Pressed(provider, modifierKey);
|
||||
break;
|
||||
|
||||
@ -539,6 +542,7 @@ void DiagonalCurveEditorSubGroup::pipetteButton1Released(EditDataProvider *provi
|
||||
|
||||
switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) {
|
||||
case (DCT_Spline):
|
||||
case (DCT_CatumullRom):
|
||||
customCurve->pipetteButton1Released(provider);
|
||||
break;
|
||||
|
||||
@ -562,6 +566,7 @@ void DiagonalCurveEditorSubGroup::pipetteDrag(EditDataProvider *provider, int mo
|
||||
|
||||
switch((DiagonalCurveType)(curveEditor->curveType->getSelected())) {
|
||||
case (DCT_Spline):
|
||||
case (DCT_CatumullRom):
|
||||
customCurve->pipetteDrag(provider, modifierKey);
|
||||
break;
|
||||
|
||||
@ -615,6 +620,7 @@ void DiagonalCurveEditorSubGroup::refresh(CurveEditor *curveToRefresh)
|
||||
if (curveToRefresh != nullptr && curveToRefresh == static_cast<DiagonalCurveEditor*>(parent->displayedCurve)) {
|
||||
switch((DiagonalCurveType)(curveToRefresh->curveType->getSelected())) {
|
||||
case (DCT_Spline):
|
||||
case (DCT_CatumullRom):
|
||||
customCurve->refresh();
|
||||
break;
|
||||
|
||||
@ -703,9 +709,10 @@ void DiagonalCurveEditorSubGroup::switchGUI()
|
||||
}
|
||||
}
|
||||
|
||||
switch((DiagonalCurveType)(dCurve->curveType->getSelected())) {
|
||||
switch(auto tp = (DiagonalCurveType)(dCurve->curveType->getSelected())) {
|
||||
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->setColoredBar(leftBar, bottomBar);
|
||||
customCurve->queue_resize_no_redraw();
|
||||
@ -776,6 +783,7 @@ void DiagonalCurveEditorSubGroup::savePressed ()
|
||||
|
||||
switch (parent->displayedCurve->selected) {
|
||||
case DCT_Spline: // custom
|
||||
case DCT_CatumullRom:
|
||||
p = customCurve->getPoints ();
|
||||
break;
|
||||
|
||||
@ -797,6 +805,8 @@ void DiagonalCurveEditorSubGroup::savePressed ()
|
||||
f << "Linear" << std::endl;
|
||||
} else if (p[ix] == (double)(DCT_Spline)) {
|
||||
f << "Spline" << std::endl;
|
||||
} else if (p[ix] == (double)(DCT_CatumullRom)) {
|
||||
f << "CatmullRom" << std::endl;
|
||||
} else if (p[ix] == (double)(DCT_NURBS)) {
|
||||
f << "NURBS" << std::endl;
|
||||
} else if (p[ix] == (double)(DCT_Parametric)) {
|
||||
@ -838,6 +848,8 @@ void DiagonalCurveEditorSubGroup::loadPressed ()
|
||||
p.push_back ((double)(DCT_Linear));
|
||||
} else if (s == "Spline") {
|
||||
p.push_back ((double)(DCT_Spline));
|
||||
} else if (s == "CatmullRom") {
|
||||
p.push_back ((double)(DCT_CatumullRom));
|
||||
} else if (s == "NURBS") {
|
||||
p.push_back ((double)(DCT_NURBS));
|
||||
} else if (s == "Parametric") {
|
||||
@ -858,7 +870,7 @@ void DiagonalCurveEditorSubGroup::loadPressed ()
|
||||
|
||||
rtengine::sanitizeCurve(p);
|
||||
|
||||
if (p[0] == (double)(DCT_Spline)) {
|
||||
if (p[0] == (double)(DCT_Spline) || p[0] == (double)(DCT_CatumullRom)) {
|
||||
customCurve->setPoints (p);
|
||||
customCurve->queue_draw ();
|
||||
customCurve->notifyListener ();
|
||||
@ -903,6 +915,12 @@ void DiagonalCurveEditorSubGroup::copyPressed ()
|
||||
clipboard.setDiagonalCurveData (curve, DCT_NURBS);
|
||||
break;
|
||||
|
||||
case DCT_CatumullRom:
|
||||
curve = customCurve->getPoints ();
|
||||
curve[0] = DCT_CatumullRom;
|
||||
clipboard.setDiagonalCurveData (curve, DCT_CatumullRom);
|
||||
break;
|
||||
|
||||
default: // (DCT_Linear, DCT_Unchanged)
|
||||
// ... do nothing
|
||||
break;
|
||||
@ -923,6 +941,7 @@ void DiagonalCurveEditorSubGroup::pastePressed ()
|
||||
|
||||
switch (type) {
|
||||
case DCT_Spline: // custom
|
||||
case DCT_CatumullRom:
|
||||
customCurve->setPoints (curve);
|
||||
customCurve->queue_draw ();
|
||||
customCurve->notifyListener ();
|
||||
@ -1060,6 +1079,10 @@ void DiagonalCurveEditorSubGroup::storeDisplayedCurve()
|
||||
storeCurveValues(parent->displayedCurve, getCurveFromGUI(DCT_NURBS));
|
||||
break;
|
||||
|
||||
case (DCT_CatumullRom):
|
||||
storeCurveValues(parent->displayedCurve, getCurveFromGUI(DCT_CatumullRom));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -1097,6 +1120,10 @@ void DiagonalCurveEditorSubGroup::storeCurveValues (CurveEditor* ce, const std::
|
||||
(static_cast<DiagonalCurveEditor*>(ce))->NURBSCurveEd = p;
|
||||
break;
|
||||
|
||||
case (DCT_CatumullRom):
|
||||
(static_cast<DiagonalCurveEditor*>(ce))->catmullRomCurveEd = p;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -1126,6 +1153,14 @@ const std::vector<double> DiagonalCurveEditorSubGroup::getCurveFromGUI (int type
|
||||
case (DCT_NURBS):
|
||||
return NURBSCurve->getPoints ();
|
||||
|
||||
case (DCT_CatumullRom): {
|
||||
auto ret = customCurve->getPoints();
|
||||
if (!ret.empty()) {
|
||||
ret[0] = DCT_CatumullRom;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
default: {
|
||||
// linear and other solutions
|
||||
std::vector<double> lcurve (1);
|
||||
@ -1162,6 +1197,10 @@ bool DiagonalCurveEditorSubGroup::curveReset(CurveEditor *ce)
|
||||
customCurve->reset (dce->customResetCurve, dce->getIdentityValue());
|
||||
return true;
|
||||
|
||||
case (DCT_CatumullRom) :
|
||||
customCurve->reset (dce->catmullRomResetCurve, dce->getIdentityValue());
|
||||
return true;
|
||||
|
||||
case (DCT_Parametric) : {
|
||||
DiagonalCurveEditor* dCurve = static_cast<DiagonalCurveEditor*>(parent->displayedCurve);
|
||||
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.height = options.fastexport_resize_height;
|
||||
}
|
||||
|
||||
|
||||
params.resize.enabled = options.fastexport_resize_enabled;
|
||||
params.resize.scale = options.fastexport_resize_scale;
|
||||
params.resize.appliesTo = options.fastexport_resize_appliesTo;
|
||||
@ -2522,7 +2522,7 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event)
|
||||
|
||||
void FileCatalog::showToolBar()
|
||||
{
|
||||
if (!options.FileBrowserToolbarSingleRow) {
|
||||
if (hbToolBar1STB) {
|
||||
hbToolBar1STB->show();
|
||||
}
|
||||
|
||||
@ -2531,7 +2531,7 @@ void FileCatalog::showToolBar()
|
||||
|
||||
void FileCatalog::hideToolBar()
|
||||
{
|
||||
if (!options.FileBrowserToolbarSingleRow) {
|
||||
if (hbToolBar1STB) {
|
||||
hbToolBar1STB->hide();
|
||||
}
|
||||
|
||||
|
@ -588,7 +588,7 @@ int main (int argc, char **argv)
|
||||
bool Console = true;
|
||||
|
||||
for (int i = 1; i < argc; i++)
|
||||
if (!strcmp (argv[i], "-w")) {
|
||||
if (!strcmp (argv[i], "-w") || !strcmp (argv[i], "-R")) {
|
||||
Console = false;
|
||||
break;
|
||||
}
|
||||
|
@ -775,7 +775,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event)
|
||||
case GDK_MOTION_NOTIFY:
|
||||
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.;
|
||||
snapToValY = snapToValX = 0.;
|
||||
@ -1026,7 +1026,7 @@ void MyDiagonalCurve::pipetteMouseOver (CurveEditor *ce, EditDataProvider *provi
|
||||
|
||||
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
|
||||
getCursorPositionFromCurve(pipetteVal);
|
||||
|
||||
@ -1415,6 +1415,8 @@ std::vector<double> MyDiagonalCurve::getPoints ()
|
||||
result.push_back (double(DCT_Spline));
|
||||
} else if (curve.type == 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
|
||||
@ -1552,6 +1554,7 @@ void MyDiagonalCurve::reset(const std::vector<double> &resetCurve, double identi
|
||||
switch (curve.type) {
|
||||
case DCT_Spline :
|
||||
case DCT_NURBS :
|
||||
case DCT_CatumullRom:
|
||||
curve.x.resize(2);
|
||||
curve.y.resize(2);
|
||||
curve.x.at(0) = 0.;
|
||||
|
@ -34,6 +34,7 @@ enum DiagonalCurveType {
|
||||
DCT_Spline, // 1
|
||||
DCT_Parametric, // 2
|
||||
DCT_NURBS, // 3
|
||||
DCT_CatumullRom, // 4
|
||||
// Insert new curve type above this line
|
||||
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)
|
||||
{
|
||||
// Emit a signal if the selected item has changed
|
||||
if (setSelected (i))
|
||||
messageChanged (selected);
|
||||
if (setSelected (posToIndex(i)))
|
||||
messageChanged (posToIndex(selected));
|
||||
|
||||
// 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) {
|
||||
const auto items = menu->get_children ();
|
||||
if (size_t(index) < items.size ()) {
|
||||
items[size_t(index)]->set_sensitive (isSensitive);
|
||||
size_t pos = indexToPos(index);
|
||||
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)
|
||||
{
|
||||
entryNum = indexToPos(entryNum);
|
||||
|
||||
if (entryNum < 0 || entryNum > ((int)images.size() - 1) || (int)entryNum == selected) {
|
||||
return false;
|
||||
} else {
|
||||
|
@ -75,6 +75,9 @@ private:
|
||||
void showMenu(GdkEventButton* event);
|
||||
|
||||
protected:
|
||||
virtual int posToIndex(int p) const { return p; }
|
||||
virtual int indexToPos(int i) const { return i; }
|
||||
|
||||
void entrySelected (int i);
|
||||
|
||||
};
|
||||
@ -96,7 +99,7 @@ inline int PopUpCommon::getEntryCount () const
|
||||
|
||||
inline int PopUpCommon::getSelected () const
|
||||
{
|
||||
return selected;
|
||||
return posToIndex(selected);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -307,8 +307,6 @@ void ProfilePanel::save_clicked (GdkEventButton* event)
|
||||
do {
|
||||
if (dialog.run() == Gtk::RESPONSE_OK) {
|
||||
|
||||
dialog.hide();
|
||||
|
||||
std::string fname = dialog.get_filename();
|
||||
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));
|
||||
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));
|
||||
tempBias = Gtk::manage (new Adjuster(M("TP_WBALANCE_TEMPBIAS"), -0.5, 0.5, 0.01, 0.0, itempbiasL, itempbiasR));
|
||||
cache_customTemp (0);
|
||||
@ -701,7 +700,6 @@ void WhiteBalance::read (const ProcParams* pp, const ParamsEdited* pedited)
|
||||
set_inconsistent(multiImage && !pedited->wb.enabled);
|
||||
}
|
||||
|
||||
green->setLogScale(10, green->getValue(), true);
|
||||
|
||||
methconn.block (false);
|
||||
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())));
|
||||
}
|
||||
|
||||
green->setLogScale(10, vgreen, true);
|
||||
}
|
||||
|
||||
void WhiteBalance::setAdjusterBehavior (bool tempadd, bool greenadd, bool equaladd, bool tempbiasadd)
|
||||
|
Loading…
x
Reference in New Issue
Block a user