Merge branch 'dev' into hidpi-icons

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

View File

@ -374,7 +374,7 @@ if(WITH_PROF)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")
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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

View File

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

After

Width:  |  Height:  |  Size: 11 KiB

View File

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

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -940,6 +940,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -138,9 +138,10 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!CURVEEDITOR_AXIS_LEFT_TAN;LT:
!CURVEEDITOR_AXIS_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

View File

@ -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

View File

@ -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

View File

@ -1834,7 +1834,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontale seulement sur les lig
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Verticale
TP_PREPROCESS_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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -2049,6 +2049,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!ADJUSTER_RESET_TO_DEFAULT;<b>Click</b> - reset to default value.\n<b>Ctrl</b>+<b>click</b> - reset to initial value.
!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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1744,7 +1744,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal apenas em linhas PDAF
TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical
TP_PREPROCESS_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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1801,6 +1801,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: <b>Ctrl</b>+<b>s</b>
!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

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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();

View File

@ -97,55 +97,6 @@ int findMatch(int val, const std::vector<int> &cdf, int j)
}
class CubicSplineCurve: public DiagonalCurve {
public:
CubicSplineCurve(const std::vector<double> &points):
DiagonalCurve({DCT_Linear})
{
N = points.size() / 2;
x = new double[N];
y = new double[N];
for (int i = 0; i < N; ++i) {
x[i] = points[2*i];
y[i] = points[2*i+1];
}
kind = DCT_Spline;
spline_cubic_set();
}
double getVal(double t) const override
{
// values under and over the first and last point
if (t > x[N - 1]) {
return y[N - 1];
} else if (t < x[0]) {
return y[0];
}
// do a binary search for the right interval:
unsigned int k_lo = 0, k_hi = N - 1;
while (k_hi > 1 + k_lo) {
unsigned int k = (k_hi + k_lo) / 2;
if (x[k] > t) {
k_hi = k;
} else {
k_lo = k;
}
}
double h = x[k_hi] - x[k_lo];
double a = (x[k_hi] - t) / h;
double b = (t - x[k_lo]) / h;
double r = a * y[k_lo] + b * y[k_hi] + ((a * a * a - a) * ypp[k_lo] + (b * b * b - b) * ypp[k_hi]) * (h * h) * 0.1666666666666666666666666666666;
return LIM01(r);
}
};
void mappingToCurve(const std::vector<int> &mapping, std::vector<double> &curve)
{
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));

View File

@ -2868,7 +2868,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
saveToKeyfile(!pedited || pedited->toneCurve.hlcomprthresh, "Exposure", "HighlightComprThreshold", toneCurve.hlcomprthresh, keyFile);
saveToKeyfile(!pedited || pedited->toneCurve.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);
}

View File

@ -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];
}
}

View File

@ -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;
}
}

View File

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

View File

@ -24,14 +24,14 @@
using namespace rtengine;
using namespace rtengine::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);

View File

@ -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;

View File

@ -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"));

View File

@ -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];

View File

@ -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];

View File

@ -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();
}

View File

@ -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;
}

View File

@ -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.;

View File

@ -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
};

View File

@ -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 {

View File

@ -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

View File

@ -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);

View File

@ -322,7 +322,6 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB
temp = Gtk::manage (new Adjuster (M("TP_WBALANCE_TEMPERATURE"), MINTEMP, MAXTEMP, 5, CENTERTEMP, itempL, itempR, &wbSlider2Temp, &wbTemp2Slider));
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)