Merge with dev

This commit is contained in:
Desmis 2019-09-11 08:35:25 +02:00
commit 0711373021
505 changed files with 1685 additions and 645 deletions

View File

@ -13,7 +13,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
along with this program. If not, see <https://www.gnu.org/licenses/>.
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

View File

@ -1,41 +1,41 @@
![RawTherapee logo](http://rawtherapee.com/images/logos/rawtherapee_logo_discuss.png)
![RawTherapee logo](https://www.rawtherapee.com/images/logos/rawtherapee_logo_discuss.png)
RawTherapee is a powerful, cross-platform raw photo processing program, released as [libre software](https://en.wikipedia.org/wiki/Free_software) under the [GNU General Public License Version 3](https://opensource.org/licenses/gpl-3.0.html). It is written mostly in C++ using a [GTK+](http://www.gtk.org/) front-end. It uses a patched version of [dcraw](http://www.cybercom.net/~dcoffin/dcraw/) for reading raw files, with an in-house solution which adds the highest quality support for certain camera models unsupported by dcraw and enhances the accuracy of certain raw files already supported by dcraw. It is notable for the advanced control it gives the user over the demosaicing and development process.
RawTherapee is a powerful, cross-platform raw photo processing program, released as [libre software](https://en.wikipedia.org/wiki/Free_software) under the [GNU General Public License Version 3](https://opensource.org/licenses/gpl-3.0.html). It is written mostly in C++ using a [GTK+](https://www.gtk.org) front-end. It uses a patched version of [dcraw](https://www.dechifro.org/dcraw/) for reading raw files, with an in-house solution which adds the highest quality support for certain camera models unsupported by dcraw and enhances the accuracy of certain raw files already supported by dcraw. It is notable for the advanced control it gives the user over the demosaicing and development process.
## Target audience
## Target Audience
RawTherapee is designed for developing raw files from a broad range of digital cameras, as well as [HDR DNG](https://helpx.adobe.com/photoshop/digital-negative.html) files and non-raw image formats ([JPEG](https://en.wikipedia.org/wiki/JPEG), [TIFF](https://en.wikipedia.org/wiki/Tagged_Image_File_Format) and [PNG](https://en.wikipedia.org/wiki/Portable_Network_Graphics)). The target audience ranges from enthusiast newcomers who wish to broaden their understanding of how digital imaging works to semi-professional photographers. Knowledge in color science is not compulsory, but it is recommended that you are eager to learn and ready to read our documentation ([RawPedia](http://rawpedia.rawtherapee.com/)) as well as look up basic concepts which lie outside the scope of RawPedia, such as [color balance](https://en.wikipedia.org/wiki/Color_balance), elsewhere.
RawTherapee is designed for developing raw files from a broad range of digital cameras, as well as [HDR DNG](https://helpx.adobe.com/photoshop/digital-negative.html) files and non-raw image formats ([JPEG](https://en.wikipedia.org/wiki/JPEG), [TIFF](https://en.wikipedia.org/wiki/Tagged_Image_File_Format) and [PNG](https://en.wikipedia.org/wiki/Portable_Network_Graphics)). The target audience ranges from enthusiast newcomers who wish to broaden their understanding of how digital imaging works to semi-professional photographers. Knowledge in color science is not compulsory, but it is recommended that you are eager to learn and ready to read our documentation ([RawPedia](https://rawpedia.rawtherapee.com/)) as well as look up basic concepts which lie outside the scope of RawPedia, such as [color balance](https://en.wikipedia.org/wiki/Color_balance), elsewhere.
Of course, professionals may use RawTherapee too while enjoying complete freedom, but will probably lack some peripheral features such as [Digital Asset Management](https://en.wikipedia.org/wiki/Digital_asset_management), printing, uploading, etc. RawTherapee is not aimed at being an inclusive all-in-one program, and the [open-source community](https://en.wikipedia.org/wiki/Open-source_movement) is sufficiently developed by now to offer all those peripheral features in other specialized software.
Professionals may use RawTherapee as well while enjoying complete freedom, but will probably lack some peripheral features such as [Digital Asset Management](https://en.wikipedia.org/wiki/Digital_asset_management), printing, uploading, etc. RawTherapee is not aimed at being an inclusive all-in-one program, and the [open-source community](https://en.wikipedia.org/wiki/Open-source_movement) is sufficiently developed by now to offer all those peripheral features in other specialized software.
## Links
Website:
http://rawtherapee.com/
https://www.rawtherapee.com/
Forum:
https://discuss.pixls.us/c/software/rawtherapee
Features:
http://rawpedia.rawtherapee.com/Features
https://rawpedia.rawtherapee.com/Features
Official documentation:
http://rawpedia.rawtherapee.com/
Documentation:
https://rawpedia.rawtherapee.com/
Download RawTherapee:
http://rawtherapee.com/downloads
https://www.rawtherapee.com/downloads
Download source code tarballs:
http://rawtherapee.com/shared/source/
https://www.rawtherapee.com/shared/source/
## Compilation, branches and Git
## Compilation, Branches and Git
Refer to RawPedia for a detailed explanation of how to get the necessary dependencies and how to compile RawTherapee.
Linux:
http://rawpedia.rawtherapee.com/Linux
https://rawpedia.rawtherapee.com/Linux
Windows:
http://rawpedia.rawtherapee.com/Windows
https://rawpedia.rawtherapee.com/Windows
macOS:
http://rawpedia.rawtherapee.com/macOS
https://rawpedia.rawtherapee.com/macOS

View File

@ -1,9 +1,9 @@
RAWTHERAPEE 5.6-dev RELEASE NOTES
RAWTHERAPEE 5.7-dev RELEASE NOTES
This is a development version of RawTherapee. We update the code almost daily. Every few months, once enough changes have accumulated and the code is stabilized, we make a new official release. Every code change between these releases is known as a "development" version, and this is one of them.
Start by reading the "Getting Started" article on RawPedia:
http://rawpedia.rawtherapee.com/
https://rawpedia.rawtherapee.com/
While we only commit tested and relatively stable code and so the development versions should be fairly stable, you should be aware that:
- Development versions only had limited testing, so there may be bugs unknown to us.
@ -26,16 +26,20 @@ In order to use RawTherapee efficiently you should know that:
- All curves support the Shift and Ctrl keys while dragging a point. Shift+drag makes the point snap to a meaningful axis (top, bottom, diagonal, other), while Ctrl+drag makes your mouse movement super-fine for precise point positioning.
- There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page!
New features since 5.6:
TODO.
New features since 5.7:
- TODO
NEWS RELEVANT TO PACKAGE MAINTAINERS
New since 5.7:
- TODO
In general:
- To get the source code, either clone from git or use the tarball from http://rawtherapee.com/shared/source/ . Do not use the auto-generated GitHub release tarballs.
- Requires GTK+ version >=3.16, though >=3.22.24 is recommended. GTK+ versions 3.24.2 - 3.24.6 have an issue with missing combobox menu arrows and are to be avoided.
- To get the source code, either clone from git or use the tarball from https://rawtherapee.com/shared/source/ . Do not use the auto-generated GitHub release tarballs.
- Requires GTK+ version >=3.16, though >=3.22.24 is recommended.
- GTK+ versions 3.24.2 - 3.24.6 have an issue where combobox menu scroll-arrows are missing when the combobox list does not fit vertically on the screen. As a result, users would not be able to scroll in the following comboboxes: Processing Profiles, Film Simulation, and the camera and lens profiles in Profiled Lens Correction.
- RawTherapee 5 requires GCC-4.9 or higher, or Clang.
- Do not use -ffast-math, it will not make RawTherapee faster but will introduce artifacts.
- Use -O3, it will make RawTherapee faster with no known side-effects.
@ -52,15 +56,14 @@ See CONTRIBUTING.md
DOCUMENTATION
http://rawpedia.rawtherapee.com/
http://rawtherapee.com/blog/documentation
https://rawpedia.rawtherapee.com/
REPORTING BUGS
If you found a problem, don't keep it to yourself. Read the "How to write useful bug reports" article to get the problem fixed:
http://rawpedia.rawtherapee.com/How_to_write_useful_bug_reports
https://rawpedia.rawtherapee.com/How_to_write_useful_bug_reports
@ -78,8 +81,8 @@ Server: chat.freenode.net
Channel: #rawtherapee
You can use freenode webchat to communicate without installing anything:
http://webchat.freenode.net/?randomnick=1&channels=rawtherapee&prompt=1
More information here: http://rawpedia.rawtherapee.com/IRC
https://webchat.freenode.net/?randomnick=1&channels=rawtherapee&prompt=1
More information here: https://rawpedia.rawtherapee.com/IRC

View File

@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
# along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
include(CheckCXXSourceCompiles)

View File

@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
# along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
include(CheckCXXSourceCompiles)

View File

@ -31,11 +31,12 @@
<project_license>GPL-3.0+</project_license>
<url type="bugtracker">https://github.com/Beep6581/RawTherapee/issues/new</url>
<url type="donation">https://www.paypal.me/rawtherapee</url>
<url type="help">http://rawpedia.rawtherapee.com/</url>
<url type="homepage">http://rawtherapee.com/</url>
<url type="help">https://rawpedia.rawtherapee.com/</url>
<url type="homepage">https://www.rawtherapee.com/</url>
<url type="translate">https://discuss.pixls.us/t/localization-how-to-translate-rawtherapee-and-rawpedia/2594</url>
<launchable type="desktop-id">rawtherapee.desktop</launchable>
<releases>
<release version="5.7" date="2019-09-10" type="stable"></release>
<release version="5.6" date="2019-04-20" type="stable"></release>
<release version="5.6~rc2" date="2019-04-17" type="development"></release>
<release version="5.6~rc1" date="2019-04-10" type="development"></release>
@ -47,16 +48,20 @@
</provides>
<screenshots>
<screenshot type="default">
<caption>Color-correcting a drosera rotundifolia in RawTherapee 5.7.</caption>
<image width="1920" height="1080">https://rawtherapee.com/images/screenshots/rt570_1.jpg</image>
</screenshot>
<screenshot>
<caption>HDR DNG of a misty morning in the countryside</caption>
<image width="1920" height="1080">http://rawtherapee.com/images/screenshots/rt540_1.jpg</image>
<image width="1920" height="1080">https://rawtherapee.com/images/screenshots/rt540_1.jpg</image>
</screenshot>
<screenshot>
<caption>Straight-out-of-camera vs RawTherapee</caption>
<image width="1920" height="1080">http://rawtherapee.com/images/screenshots/rt540_2.jpg</image>
<image width="1920" height="1080">https://rawtherapee.com/images/screenshots/rt540_2.jpg</image>
</screenshot>
<screenshot>
<caption>RawTherapee using the Auto-Matched Tone Curve tool</caption>
<image width="1920" height="1080">http://rawtherapee.com/images/screenshots/rt540_3.jpg</image>
<image width="1920" height="1080">https://rawtherapee.com/images/screenshots/rt540_3.jpg</image>
</screenshot>
</screenshots>
<update_contact>contactus@rawtherapee.com</update_contact>

2
header
View File

@ -14,5 +14,5 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/

View File

@ -15,7 +15,7 @@
viewBox="0 0 146.05 91.545836"
version="1.1"
id="svg783"
inkscape:version="0.92.2 2405546, 2018-03-11"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="splash.svg"
inkscape:export-filename="/tmp/splash.png"
inkscape:export-xdpi="96"
@ -479,8 +479,8 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.93979686"
inkscape:cx="-66.836581"
inkscape:zoom="0.90075514"
inkscape:cx="-60.984253"
inkscape:cy="136.82017"
inkscape:document-units="px"
inkscape:current-layer="layer1"
@ -574,7 +574,7 @@
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>RawTherapee splash screen</dc:title>
<dc:date>2019-02-27</dc:date>
<dc:date />
<dc:creator>
<cc:Agent>
<dc:title>Maciej Dworak</dc:title>
@ -996,7 +996,7 @@
id="tspan595"
x="283.85016"
y="2.2370076"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:49.34799576px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px">. 6</tspan></text>
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:49.34799576px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px">. 8</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Eras Medium ITC';-inkscape-font-specification:'Eras Medium ITC';letter-spacing:1px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.07075834px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter155);enable-background:new"
@ -1048,73 +1048,88 @@
id="tspan611"
sodipodi:role="line">Raw</tspan></text>
<g
aria-label=". 6"
transform="matrix(0.24127119,0,0.01264448,0.24127122,4.1926296,267.35338)"
aria-label=". 7"
transform="matrix(0.24127119,0,0.01264448,0.24127122,4.1926291,267.35338)"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4749);enable-background:new"
id="text1152">
id="text191">
<path
d="m 286.21154,2.2370076 q 0.19276,-3.22882392 0.33734,-8.7226438 l 4.96371,0.072287 q 0.79516,0 4.19265,-0.072287 -0.19276,2.6264315 -0.43372,8.7226438 l -4.19265,-0.048191 q -0.45782,0 -4.86733,0.048191 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:49.34799576px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px"
id="path1154" />
id="path193" />
<path
d="m 315.05617,-18.750348 q 1.25297,-0.216861 2.38547,-0.216861 2.77101,0 4.96372,1.084306 2.2168,1.084307 3.3493,3.373398 1.1325,2.264996 1.1325,5.0600976 0,1.855369 -0.53011,3.5902595 -0.50601,1.7107947 -1.46984,3.1806325 -0.96382,1.4457421 -2.40957,2.60233572 -1.42164,1.13249798 -3.06015,1.73489048 -1.61441,0.6023925 -3.44569,0.8915409 -1.83127,0.3132441 -3.71073,0.3132441 -4.36133,0 -7.59015,-1.445742 -3.20473,-1.46983778 -4.67457,-3.9998864 -1.44574,-2.5541443 -1.44574,-5.6142983 0,-1.7589862 0.38553,-3.8553121 0.40963,-2.096326 1.75899,-4.98781 1.37345,-2.91558 3.73483,-6.698605 2.38548,-3.783025 4.84324,-6.915466 h 12.337 q -3.66255,4.216747 -4.86733,5.710681 -1.7108,2.144517 -3.22883,4.433609 -1.49393,2.264996 -2.50595,4.216748 -0.98792,1.951751 -1.6867,3.831216 -0.40963,1.108402 -0.60239,2.07223 -0.16867,0.9638283 -0.16867,1.8071778 0,1.132498 0.45782,2.1686131 0.45781,1.0361152 1.37345,1.6385077 0.91564,0.6023925 2.19271,0.6023925 1.20478,0 2.12042,-0.5542011 0.93973,-0.5782968 1.39755,-1.5662206 0.45782,-1.0120194 0.45782,-2.1204216 0,-1.9517518 -1.42165,-2.8432928 -1.39755,-0.891541 -2.7951,-0.891541 -0.43372,0 -1.30116,0.120479 0.5542,-0.891541 2.07223,-3.445686 z"
d="m 300.45417,2.2370076 q 1.42165,-2.7228142 2.77101,-5.15648 1.34936,-2.4336658 5.18057,-9.6623766 l 4.26494,-8.096155 q 0.43373,-0.84335 1.44574,-2.867389 -2.12042,-0.02409 -3.25291,-0.02409 -5.03601,0 -10.93945,0.313244 0.24095,-3.204728 0.33734,-7.39738 h 25.90288 l -0.36144,7.614241 -5.75887,11.059927 -3.66255,7.252806 q -1.46984,3.0360583 -3.27701,6.9636576 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:49.34799576px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px"
id="path1156" />
id="path195" />
</g>
<g
style="fill:#ffffff;enable-background:new"
transform="matrix(0.24804687,0,0,0.2480469,-16.632728,273.1232)"
id="g188">
id="g180">
<g
aria-label="Development"
transform="skewX(3)"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;text-align:end;letter-spacing:-1.06666672px;word-spacing:0px;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.06666672px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text186">
id="text178">
<path
d="m 491.97892,49.720543 q 0.18333,-1.9 0.25,-3.041667 0.1,-1.699999 0.2,-4.399999 0.075,-2.066667 0.075,-2.958333 v -0.975 q 0.975,0.025 1.68333,0.025 0.68333,0 1.79167,-0.03333 1.10833,-0.04167 2.08333,-0.04167 1.11667,0 1.95833,0.133333 0.84167,0.133333 1.56667,0.55 0.73333,0.416667 1.225,1.091666 0.49167,0.675 0.75,1.583334 0.25833,0.9 0.25833,1.858333 0,0.941667 -0.2,1.816667 -0.2,0.866666 -0.55833,1.566666 -0.35833,0.7 -0.84167,1.208333 -0.475,0.5 -1.09166,0.858334 -0.45834,0.266666 -0.925,0.416666 -0.46667,0.15 -1.275,0.241667 -0.9,0.1 -2.04167,0.1 l -3.36667,-0.025 q -0.475,0 -1.54166,0.025 z m 3.6,-2.508333 q 0.45833,0.04167 0.95833,0.04167 0.85,0 1.51667,-0.15 0.66666,-0.15 1.16666,-0.641666 0.50834,-0.491667 0.75,-1.258333 0.24167,-0.775 0.24167,-1.583334 0,-0.991666 -0.35833,-1.666666 -0.35834,-0.683334 -0.95834,-0.95 -0.59166,-0.266667 -1.61666,-0.266667 -0.6,0 -1.41667,0.05 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path190" />
d="m 491.97892,49.720543 c 0.35766,-3.779712 0.50216,-7.579331 0.525,-11.374999 3.49046,0.443312 8.13144,-1.363048 10.53958,2.077082 2.06476,3.531904 -0.001,9.387903 -4.57968,9.241667 -2.15889,0.129374 -4.32419,-0.02526 -6.4849,0.05625 z m 3.6,-2.508333 c 5.08666,1.944261 6.57694,-7.524029 1.04583,-6.462496 -1.51765,0.07086 -0.55297,2.611495 -0.92921,3.817997 -0.0389,0.881499 -0.0777,1.762999 -0.11662,2.644499 z"
id="path182"
inkscape:connector-curvature="0" />
<path
d="m 512.24558,47.203876 q -0.10833,0.5 -0.41666,2.416667 -0.96667,0.191667 -1.625,0.25 -0.65834,0.06667 -1.33334,0.06667 -0.99166,0 -1.825,-0.141667 -0.83333,-0.133333 -1.44166,-0.483333 -0.6,-0.35 -1.00834,-0.866667 -0.40833,-0.525 -0.625,-1.241667 -0.20833,-0.716666 -0.20833,-1.475 0,-1.066666 0.425,-2.083333 0.425,-1.025 1.09167,-1.6 0.675,-0.575 1.55,-0.816666 0.875,-0.241667 1.79166,-0.241667 0.95,0 1.80834,0.225 0.86666,0.216667 1.46666,0.766667 0.6,0.55 0.85,1.241666 0.25834,0.691667 0.25834,1.491667 0,0.475 -0.10834,1.058333 l -5.84166,0.0083 q -0.008,0.133334 -0.008,0.241667 0,0.9 0.64167,1.325 0.64167,0.425 1.56667,0.425 0.55,0 1.25,-0.125 0.70833,-0.133333 1.74166,-0.441667 z m -5.125,-2.699999 h 2.75 q 0.008,-0.141667 0.008,-0.241667 0,-0.433333 -0.15834,-0.741667 -0.15,-0.308333 -0.44166,-0.45 -0.28334,-0.141666 -0.64167,-0.141666 -0.25,0 -0.48333,0.08333 -0.23334,0.075 -0.425,0.233333 -0.18334,0.15 -0.30834,0.35 -0.125,0.2 -0.18333,0.391667 -0.0583,0.183333 -0.11667,0.516667 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path192" />
d="m 512.24558,47.203876 c 0.52141,4.243467 -6.54348,3.268808 -8.01041,0.668753 -1.60517,-3.045601 0.78554,-7.314219 4.38541,-6.885416 2.83009,-1.160482 6.54312,4.736022 3.01361,4.785125 -1.52676,0.0022 -3.05351,0.0043 -4.58027,0.0065 -0.10363,2.874436 3.58483,1.929793 5.19166,1.42503 z m -5.125,-2.699999 c 1.63658,0.459668 4.34329,-0.405987 1.51633,-1.575 -0.87243,-0.02294 -1.46212,0.769347 -1.51633,1.575 z"
id="path184"
inkscape:connector-curvature="0" />
<path
d="m 515.32058,49.720543 -0.88333,-2.733333 -1.99167,-5.775 q 0.95,0.01667 1.76667,0.01667 0.85,0 1.6,-0.01667 0.14167,0.575 0.55833,2.016667 0.41667,1.433333 0.91667,3.416666 l 0.21666,-0.691667 q 0.05,-0.125 0.39167,-1.066666 l 1.325,-3.675 q 0.9,0.01667 1.7,0.01667 0.825,0 1.71667,-0.01667 l -1.15,2.475 -2.14167,4.916666 -0.45833,1.116667 q -0.98334,-0.01667 -1.73334,-0.01667 -0.81666,0 -1.83333,0.01667 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path194" />
d="m 515.32058,49.720543 c -0.89608,-2.856903 -1.90527,-5.67603 -2.875,-8.508333 4.00292,-1.488552 4.10167,3.245809 4.90451,5.232714 0.59217,-1.75459 1.25338,-3.486278 1.87049,-5.232714 2.56625,-0.335933 4.13116,-0.124958 2.35362,2.287869 -0.9018,2.070641 -1.83023,4.13055 -2.68695,6.220464 -1.18878,-0.02218 -2.37788,-0.02114 -3.56667,0 z"
id="path186"
inkscape:connector-curvature="0" />
<path
d="m 530.27891,47.203876 q -0.10833,0.5 -0.41666,2.416667 -0.96667,0.191667 -1.625,0.25 -0.65834,0.06667 -1.33334,0.06667 -0.99166,0 -1.82499,-0.141667 -0.83334,-0.133333 -1.44167,-0.483333 -0.6,-0.35 -1.00833,-0.866667 -0.40834,-0.525 -0.625,-1.241667 -0.20834,-0.716666 -0.20834,-1.475 0,-1.066666 0.425,-2.083333 0.425,-1.025 1.09167,-1.6 0.675,-0.575 1.55,-0.816666 0.875,-0.241667 1.79166,-0.241667 0.95,0 1.80834,0.225 0.86666,0.216667 1.46666,0.766667 0.6,0.55 0.85,1.241666 0.25834,0.691667 0.25834,1.491667 0,0.475 -0.10834,1.058333 l -5.84166,0.0083 q -0.008,0.133334 -0.008,0.241667 0,0.9 0.64166,1.325 0.64167,0.425 1.56667,0.425 0.55,0 1.25,-0.125 0.70833,-0.133333 1.74166,-0.441667 z m -5.12499,-2.699999 h 2.74999 q 0.008,-0.141667 0.008,-0.241667 0,-0.433333 -0.15834,-0.741667 -0.15,-0.308333 -0.44166,-0.45 -0.28334,-0.141666 -0.64167,-0.141666 -0.25,0 -0.48333,0.08333 -0.23334,0.075 -0.425,0.233333 -0.18334,0.15 -0.30834,0.35 -0.125,0.2 -0.18333,0.391667 -0.0583,0.183333 -0.11666,0.516667 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path196" />
d="m 530.27891,47.203876 c 0.52141,4.243466 -6.54347,3.268809 -8.01041,0.668753 -1.60517,-3.045602 0.78554,-7.314218 4.38541,-6.885416 2.83009,-1.160482 6.54312,4.736022 3.01361,4.785125 -1.52676,0.0022 -3.05351,0.0043 -4.58027,0.0065 -0.10363,2.874436 3.58479,1.929795 5.19166,1.42503 z m -5.12499,-2.699999 c 1.63658,0.45967 4.34327,-0.405989 1.51632,-1.575 -0.87243,-0.02294 -1.46213,0.769344 -1.51632,1.575 z"
id="path188"
inkscape:connector-curvature="0" />
<path
d="m 531.04558,49.71221 0.15,-1.791667 0.325,-6.225 0.0917,-3.349999 q 1.15833,0.01667 1.74166,0.01667 0.75834,0 1.675,-0.01667 l -0.19166,2.558333 -0.30834,6.299999 -0.0667,2.516667 q -0.89167,-0.01667 -1.60834,-0.01667 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path198" />
d="m 531.04558,49.71221 c 0.30065,-3.781668 0.47414,-7.574189 0.5667,-11.366666 2.51426,-0.447643 4.06213,-0.083 3.225,2.558333 -0.13223,2.938617 -0.32432,5.874975 -0.37504,8.816666 -1.13879,-0.02585 -2.27775,-0.0128 -3.41666,-0.0083 z"
id="path190"
inkscape:connector-curvature="0" />
<path
d="m 540.25391,40.995543 q 1.03334,0 1.98334,0.316667 0.95833,0.316667 1.61666,0.916667 0.65834,0.591666 0.96667,1.391666 0.31667,0.791667 0.31667,1.708334 0,0.891666 -0.28334,1.699999 -0.275,0.8 -0.94166,1.508334 -0.66667,0.7 -1.7,1.05 -1.025,0.35 -2.175,0.35 -1.05834,0 -2.03334,-0.308334 -0.975,-0.308333 -1.63333,-0.9 -0.65,-0.591666 -0.98333,-1.416666 -0.325,-0.825 -0.325,-1.733334 0,-0.908333 0.31666,-1.733333 0.325,-0.825 1.01667,-1.483333 0.7,-0.658333 1.725,-1.008333 1.025,-0.358334 2.13333,-0.358334 z m -0.0583,2.45 q -0.53333,0 -0.95,0.275 -0.41667,0.275 -0.63333,0.808334 -0.20834,0.525 -0.20834,1.149999 0,0.916667 0.45834,1.408334 0.45833,0.483333 1.15,0.483333 0.525,0 0.94166,-0.275 0.41667,-0.283333 0.625,-0.825 0.21667,-0.55 0.21667,-1.175 0,-0.516666 -0.16667,-0.933333 -0.16666,-0.416667 -0.55,-0.666667 -0.375,-0.25 -0.88333,-0.25 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path200" />
d="m 540.25391,40.995543 c 3.01725,-0.298693 5.7229,2.653473 4.72396,5.623958 -1.09074,4.689975 -9.56531,4.40163 -9.89531,-0.591666 -0.42534,-2.962386 2.38271,-5.18724 5.17135,-5.032292 z m -0.0583,2.45 c -4.24412,0.537467 0.25374,7.084332 1.54583,2.45625 0.26905,-1.066587 -0.2405,-2.522332 -1.54583,-2.45625 z"
id="path192"
inkscape:connector-curvature="0" />
<path
d="m 545.04558,53.620543 q 0.15833,-1.708334 0.26666,-3.408333 0.19167,-2.908334 0.25834,-4.875 0.075,-1.975 0.075,-3.908333 1.69166,-0.258334 2.65,-0.341667 0.95833,-0.09167 1.91666,-0.09167 1.2,0 2.20834,0.25 1.00833,0.25 1.61666,0.883334 0.61667,0.633333 0.925,1.508333 0.30834,0.875 0.30834,1.833333 0,0.875 -0.25,1.7 -0.25,0.816667 -0.76667,1.475 -0.51667,0.658333 -1.19167,0.975 -0.66666,0.316667 -1.49166,0.316667 -0.40834,0 -0.85,-0.08333 -0.43334,-0.075 -0.825,-0.225 -0.39167,-0.15 -0.65834,-0.3 -0.25833,-0.158333 -0.65,-0.45 l -0.0917,2.325 q -0.0583,1.6 -0.0583,2.416667 -0.96666,-0.01667 -1.65833,-0.01667 -0.6,0 -1.73333,0.01667 z m 3.84166,-10.066666 q -0.0667,0.375 -0.0917,0.616666 -0.025,0.233334 -0.05,0.641667 -0.025,0.4 -0.025,0.641666 0,0.683334 0.20833,1.15 0.21667,0.458334 0.59167,0.716667 0.38333,0.25 0.81666,0.25 0.45834,0 0.84167,-0.258333 0.38333,-0.266667 0.60833,-0.791667 0.225,-0.525 0.225,-1.183333 0,-0.891667 -0.475,-1.433333 -0.46666,-0.541667 -1.36666,-0.541667 -0.56667,0 -1.28334,0.191667 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path202" />
d="m 545.04558,53.620543 c 0.35496,-4.053817 0.59136,-8.121391 0.6,-12.191666 2.97411,-0.291852 7.40962,-1.515461 9.14322,1.785934 1.76018,3.142194 -1.08502,8.159132 -4.89322,6.414066 -2.7439,-2.317277 -0.35353,3.728125 -1.92448,3.984374 -0.97516,-0.01651 -1.95042,-0.0079 -2.92552,0.0073 z m 3.84166,-10.066666 c -1.84548,2.987641 2.95745,6.020885 3.12496,1.783333 0.15011,-1.803962 -1.73874,-2.3203 -3.12496,-1.783333 z"
id="path194"
inkscape:connector-curvature="0" />
<path
d="m 555.45391,49.720543 0.23334,-4.016667 0.13333,-3.141666 0.0167,-1.35 q 0.91666,0.01667 1.61666,0.01667 0.79167,0 1.54167,-0.01667 l -0.0583,1.108333 q 0.25833,-0.333333 0.43333,-0.508333 0.18333,-0.183333 0.44167,-0.341667 0.25833,-0.166666 0.53333,-0.258333 0.275,-0.1 0.61667,-0.158333 0.34166,-0.05833 0.71666,-0.05833 0.425,0 0.78334,0.075 0.35833,0.06667 0.61666,0.175 0.25834,0.108334 0.45,0.25 0.19167,0.141667 0.33334,0.325 0.15,0.175 0.34166,0.516667 0.36667,-0.533333 0.775,-0.808333 0.40834,-0.275 0.925,-0.4 0.525,-0.133334 1.075,-0.133334 0.725,0 1.36667,0.208334 0.64167,0.208333 1.05,0.725 0.41667,0.508333 0.41667,1.325 0,0.383333 -0.0583,1.158333 -0.05,0.775 -0.15,2.666666 -0.0917,1.883334 -0.1,2.641667 -0.76666,-0.01667 -1.48333,-0.01667 -0.875,0 -1.83333,0.01667 0.0833,-1.058333 0.16666,-2.65 0.0917,-1.6 0.0917,-2.216666 0,-0.533334 -0.125,-0.791667 -0.125,-0.266667 -0.325,-0.358333 -0.19167,-0.1 -0.425,-0.1 -0.25,0 -0.43333,0.09167 -0.2,0.1 -0.35,0.308334 -0.2,0.275 -0.325,0.691666 -0.1,0.325 -0.15834,0.991667 -0.0583,0.683333 -0.0917,1.8 l -0.0667,2.233333 q -0.89167,-0.01667 -1.60833,-0.01667 -0.73334,0 -1.725,0.01667 0.075,-0.741667 0.175,-2.491667 0.1,-1.75 0.1,-2.341666 0,-0.5 -0.1,-0.75 -0.1,-0.25 -0.28334,-0.4 -0.175,-0.15 -0.475,-0.15 -0.325,0 -0.56666,0.191667 -0.24167,0.191666 -0.41667,0.55 -0.16667,0.358333 -0.24167,0.991666 -0.0667,0.625 -0.125,1.916667 -0.0583,1.291666 -0.075,2.483333 -1.00833,-0.01667 -1.63333,-0.01667 -0.69167,0 -1.71667,0.01667 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path204" />
d="m 555.45391,49.720543 c 0.16034,-2.834333 0.35688,-5.66874 0.38337,-8.508333 1.15151,0.2957 3.7136,-0.830715 3.10003,1.108333 1.30955,-2.529937 4.72122,-0.53374 5.64375,-0.452079 3.42124,-2.856178 6.52957,1.306413 5.04717,4.754947 1.14945,2.896676 -2.16476,4.132344 -3.39923,2.534636 0.3676,-1.51179 0.62085,-7.734534 -1.76662,-4.462496 -0.99613,1.534445 1.11226,5.830528 -1.92507,5.00833 -4.04278,1.499834 0.86,-8.028853 -3.29167,-5.374996 -1.40096,2.809083 1.91426,6.388064 -3.79173,5.391658 z"
id="path196"
inkscape:connector-curvature="0" />
<path
d="m 578.51224,47.203876 q -0.10833,0.5 -0.41666,2.416667 -0.96667,0.191667 -1.625,0.25 -0.65834,0.06667 -1.33334,0.06667 -0.99166,0 -1.825,-0.141667 -0.83333,-0.133333 -1.44166,-0.483333 -0.6,-0.35 -1.00834,-0.866667 -0.40833,-0.525 -0.625,-1.241667 -0.20833,-0.716666 -0.20833,-1.475 0,-1.066666 0.425,-2.083333 0.425,-1.025 1.09167,-1.6 0.675,-0.575 1.55,-0.816666 0.875,-0.241667 1.79166,-0.241667 0.95,0 1.80834,0.225 0.86666,0.216667 1.46666,0.766667 0.6,0.55 0.85,1.241666 0.25834,0.691667 0.25834,1.491667 0,0.475 -0.10834,1.058333 l -5.84166,0.0083 q -0.008,0.133334 -0.008,0.241667 0,0.9 0.64167,1.325 0.64167,0.425 1.56667,0.425 0.55,0 1.25,-0.125 0.70833,-0.133333 1.74166,-0.441667 z m -5.125,-2.699999 h 2.75 q 0.008,-0.141667 0.008,-0.241667 0,-0.433333 -0.15834,-0.741667 -0.15,-0.308333 -0.44166,-0.45 -0.28334,-0.141666 -0.64167,-0.141666 -0.25,0 -0.48333,0.08333 -0.23334,0.075 -0.425,0.233333 -0.18334,0.15 -0.30834,0.35 -0.125,0.2 -0.18333,0.391667 -0.0583,0.183333 -0.11667,0.516667 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path206" />
d="m 578.51224,47.203876 c 0.52141,4.243467 -6.54348,3.268808 -8.01041,0.668753 -1.60517,-3.045601 0.78554,-7.314219 4.38541,-6.885416 2.83009,-1.160482 6.54312,4.736022 3.01361,4.785125 -1.52676,0.0022 -3.05351,0.0043 -4.58027,0.0065 -0.10363,2.874436 3.58483,1.929793 5.19166,1.42503 z m -5.125,-2.699999 c 1.63658,0.459668 4.34329,-0.405987 1.51633,-1.575 -0.87243,-0.02294 -1.46212,0.769347 -1.51633,1.575 z"
id="path198"
inkscape:connector-curvature="0" />
<path
d="m 579.21224,49.720543 q 0.24167,-1.891667 0.36667,-4.175 0.13333,-2.291666 0.15833,-4.333333 1,0.01667 1.725,0.01667 0.84167,0 1.61667,-0.01667 l -0.0833,1.133333 q 0.275,-0.308333 0.475,-0.483333 0.2,-0.183333 0.49166,-0.35 0.3,-0.175 0.63334,-0.283333 0.33333,-0.108334 0.725,-0.166667 0.4,-0.06667 0.83333,-0.06667 0.6,0 1.16667,0.133334 0.575,0.125 0.95833,0.366666 0.38333,0.233334 0.64167,0.591667 0.25833,0.35 0.34166,0.758333 0.0833,0.408334 0.0833,0.841667 0,0.316667 -0.0667,1.366667 l -0.14167,3.016666 q -0.0417,0.891667 -0.0417,1.65 -0.84167,-0.01667 -1.575,-0.01667 -0.99167,0 -1.80834,0.01667 0.075,-0.758333 0.15834,-2.25 0.0833,-1.5 0.0833,-2.108333 0,-0.941667 -0.36667,-1.308333 -0.35833,-0.375 -0.90833,-0.375 -0.48333,0 -0.91667,0.316666 -0.425,0.316667 -0.65833,0.925 -0.23333,0.6 -0.33333,1.983333 -0.0917,1.383334 -0.125,2.816667 -0.83334,-0.01667 -1.625,-0.01667 -0.83334,0 -1.80834,0.01667 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path208" />
d="m 579.21224,49.720543 c 0.93465,-2.56639 -0.64881,-7.469587 1.45625,-8.49583 1.0983,0.09576 2.93645,-0.553409 2.32712,1.12083 2.39227,-3.020404 7.77608,-0.814174 6.26354,3.128332 -0.35525,1.853997 0.77815,5.186306 -2.22355,4.231037 -2.77419,0.701084 0.4362,-9.35128 -3.9318,-4.784372 -1.3168,3.048475 1.7868,5.470432 -3.89156,4.800003 z"
id="path200"
inkscape:connector-curvature="0" />
<path
d="m 596.02891,47.270543 q -0.15,0.7 -0.25833,1.366667 l -0.18334,1.016666 q -0.825,0.183334 -1.29166,0.233334 -0.45834,0.05 -0.89167,0.05 -0.70833,0 -1.25833,-0.125 -0.55,-0.116667 -0.91667,-0.433334 -0.36667,-0.325 -0.5,-0.741666 -0.13333,-0.416667 -0.13333,-0.883334 0,-0.08333 0.008,-0.291666 0.008,-0.216667 0.0583,-0.95 l 0.18334,-2.883333 h -1.3 q 0.0417,-0.575 0.075,-1.516667 l 0.025,-0.775 h 1.38333 q 0.05,-0.383333 0.125,-1.675 l 1.425,-0.291666 q 0.39167,-0.075 1.66667,-0.383334 -0.0583,1.091667 -0.0833,2.35 h 1.9 q -0.0667,1.733333 -0.0667,2.291667 h -1.91667 l -0.1,2.083333 q -0.0167,0.466666 -0.0167,0.6 0,0.4 0.0833,0.666666 0.0917,0.266667 0.30833,0.383334 0.225,0.116666 0.49167,0.116666 0.2,0 0.41666,-0.025 0.21667,-0.03333 0.76667,-0.183333 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px"
id="path210" />
d="m 596.02891,47.270543 c 0.87876,3.579834 -5.40876,3.65248 -5.43333,0.483333 -0.27646,-1.191085 0.79838,-3.603899 -0.17082,-4.124999 -1.63908,0.457718 -1.14045,-3.314326 0.60379,-2.291667 -0.78331,-2.571711 4.86457,-3.264417 3.13337,0 2.1881,-1.157251 2.856,2.651389 0.78214,2.291667 -1.64157,-0.379018 -1.16187,3.704272 -0.0989,3.849999 l 0.41666,-0.025 0.76667,-0.183333 z"
id="path202"
inkscape:connector-curvature="0" />
</g>
</g>
<g
style="fill:#ffffff;enable-background:new"
transform="matrix(0.24804687,0,0,0.2480469,-127.75775,273.1232)"
id="g220" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

@ -13,6 +13,6 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
# along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
#

View File

@ -742,7 +742,7 @@ HISTORY_MSG_490;DRC - Amount
HISTORY_MSG_491;White Balance
HISTORY_MSG_492;RGB Curves
HISTORY_MSG_493;Local Adjustments
HISTORY_MSG_495;Local Spot created
HISTORY_MSG_494;Capture Sharpening
HISTORY_MSG_496;Local Spot deleted
HISTORY_MSG_497;Local Spot selected
HISTORY_MSG_498;Local Spot name
@ -983,6 +983,7 @@ HISTORY_MSG_743;Local - Exp Fattal Amount
HISTORY_MSG_744;Local - Exp Fattal Detail
HISTORY_MSG_745;Local - Exp Fattal Anchor
HISTORY_MSG_746;Local - Exp Fattal levels
HISTORY_MSG_747;Local Spot created
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
@ -1020,6 +1021,11 @@ HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;Local Contrast - Lightness
HISTORY_MSG_LOCALCONTRAST_RADIUS;Local Contrast - Radius
HISTORY_MSG_METADATA_MODE;Metadata copy mode
HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontrast - Contrast threshold
HISTORY_MSG_PDSHARPEN_CONTRAST;CAS - Contrast threshold
HISTORY_MSG_PDSHARPEN_AUTO_CONTRAST;CAS - Auto threshold
HISTORY_MSG_PDSHARPEN_GAMMA;CAS - Gamma
HISTORY_MSG_PDSHARPEN_ITERATIONS;CAS - Iterations
HISTORY_MSG_PDSHARPEN_RADIUS;CAS - Radius
HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion
HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction
HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter
@ -1030,6 +1036,7 @@ HISTORY_MSG_RAW_BORDER;Raw border
HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling
HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
HISTORY_MSG_SHARPENING_GAMMA;Sharpening - Gamma
HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
@ -2296,6 +2303,7 @@ TP_PCVIGNETTE_ROUNDNESS;Roundness
TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle.
TP_PCVIGNETTE_STRENGTH;Strength
TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners).
TP_PDSHARPENING_LABEL;Capture Sharpening
TP_PERSPECTIVE_HORIZONTAL;Horizontal
TP_PERSPECTIVE_LABEL;Perspective
TP_PERSPECTIVE_VERTICAL;Vertical
@ -2524,6 +2532,7 @@ TP_SHARPENING_BLUR;Blur radius
TP_SHARPENING_CONTRAST;Contrast threshold
TP_SHARPENING_EDRADIUS;Radius
TP_SHARPENING_EDTOLERANCE;Edge tolerance
TP_SHARPENING_GAMMA;Gamma
TP_SHARPENING_HALOCONTROL;Halo control
TP_SHARPENING_HCAMOUNT;Amount
TP_SHARPENING_LABEL;Sharpening

View File

@ -16,7 +16,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
/***************************/

View File

@ -15,7 +15,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
* {

View File

@ -15,7 +15,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/

View File

@ -15,7 +15,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/

View File

@ -15,7 +15,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
/*** Change me *** rgb(red,green,blue) *** allowed values from 0 to 255 for each color ***/

View File

@ -15,7 +15,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
/*** Change me *** rgb(red,green,blue) *** allowed values from 0 to 255 for each color ***/

View File

@ -15,7 +15,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/

View File

@ -15,7 +15,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/

View File

@ -15,7 +15,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/

View File

@ -15,7 +15,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/

View File

@ -18,7 +18,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////

View File

@ -32,6 +32,7 @@ set(CAMCONSTSFILE "camconst.json")
set(RTENGINESOURCEFILES
badpixels.cc
CA_correct_RT.cc
capturesharpening.cc
EdgePreservingDecomposition.cc
FTblockDN.cc
PF_correct_RT.cc

View File

@ -18,7 +18,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////

View File

@ -15,7 +15,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
/*

View File

@ -23,7 +23,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*
* Author: reine
*/

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
//

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _ALIGNEDBUFFER_
#define _ALIGNEDBUFFER_

View File

@ -22,7 +22,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
/*

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "array2D.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _BILATERAL2_
#define _BILATERAL2_

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _BOXBLUR_H_
#define _BOXBLUR_H_

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

View File

@ -0,0 +1,218 @@
/*
* This file is part of RawTherapee.
*
* Copyright (c) 2019 Ingo Weyrich (heckflosse67@gmx.de)
*
* RawTherapee is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* RawTherapee is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#include <cmath>
#include <iostream>
#include "jaggedarray.h"
#include "rtengine.h"
#include "rawimagesource.h"
#include "rt_math.h"
#include "improcfun.h"
#include "procparams.h"
#include "color.h"
#include "gauss.h"
#include "rt_algo.h"
#define BENCHMARK
#include "StopWatch.h"
#ifdef _OPENMP
#include <omp.h>
#endif
#include "opthelper.h"
#include "../rtgui/multilangmgr.h"
namespace {
void CaptureDeconvSharpening (float** luminance, float** tmp, const float * const * blend, int W, int H, double sigma, int iterations, rtengine::ProgressListener* plistener, double start, double step)
{
rtengine::JaggedArray<float> tmpI(W, H);
#ifdef _OPENMP
#pragma omp parallel
#endif
{
#ifdef _OPENMP
#pragma omp for
#endif
for (int i = 0; i < H; i++) {
for(int j = 0; j < W; j++) {
tmpI[i][j] = max(luminance[i][j], 0.f);
}
}
for (int k = 0; k < iterations; k++) {
// apply gaussian blur and divide luminance by result of gaussian blur
gaussianBlur(tmpI, tmp, W, H, sigma, nullptr, GAUSS_DIV, luminance);
gaussianBlur(tmp, tmpI, W, H, sigma, nullptr, GAUSS_MULT);
if (plistener) {
#ifdef _OPENMP
#pragma omp single
#endif
start += step;
plistener->setProgress(start);
}
} // end for
#ifdef _OPENMP
#pragma omp for
#endif
for (int i = 0; i < H; ++i) {
for (int j = 0; j < W; ++j) {
luminance[i][j] = rtengine::intp(blend[i][j], max(tmpI[i][j], 0.0f), luminance[i][j]);
}
}
} // end parallel
}
}
namespace rtengine
{
void RawImageSource::captureSharpening(const procparams::CaptureSharpeningParams &sharpeningParams, bool showMask, double &conrastThreshold) {
BENCHFUN
if (plistener) {
plistener->setProgressStr(M("TP_PDSHARPENING_LABEL"));
plistener->setProgress(0.0);
}
const float xyz_rgb[3][3] = { // XYZ from RGB
{ 0.412453, 0.357580, 0.180423 },
{ 0.212671, 0.715160, 0.072169 },
{ 0.019334, 0.119193, 0.950227 }
};
float contrast = conrastThreshold / 100.f;
array2D<float>& redVals = redCache ? *redCache : red;
array2D<float>& greenVals = greenCache ? *greenCache : green;
array2D<float>& blueVals = blueCache ? *blueCache : blue;
if (showMask) {
StopWatch Stop1("Show mask");
array2D<float>& L = blue; // blue will be overridden anyway => we can use its buffer to store L
#ifdef _OPENMP
#pragma omp parallel for
#endif
for (int i = 0; i < H; ++i) {
Color::RGB2L(redVals[i], greenVals[i], blueVals[i], L[i], xyz_rgb, W);
}
if (plistener) {
plistener->setProgress(0.1);
}
array2D<float>& blend = red; // red will be overridden anyway => we can use its buffer to store the blend mask
buildBlendMask(L, blend, W, H, contrast, 1.f, sharpeningParams.autoContrast);
if (plistener) {
plistener->setProgress(0.2);
}
conrastThreshold = contrast * 100.f;
#ifdef _OPENMP
#pragma omp parallel for
#endif
for (int i = 0; i < H; ++i) {
for (int j = 0; j < W; ++j) {
red[i][j] = green[i][j] = blue[i][j] = blend[i][j] * 16384.f;
}
}
if (plistener) {
plistener->setProgress(1.0);
}
return;
}
array2D<float>* Lbuffer = nullptr;
if (!redCache) {
Lbuffer = new array2D<float>(W, H);
}
array2D<float>* YOldbuffer = nullptr;
if (!greenCache) {
YOldbuffer = new array2D<float>(W, H);
}
array2D<float>* YNewbuffer = nullptr;
if (!blueCache) {
YNewbuffer = new array2D<float>(W, H);
}
array2D<float>& L = Lbuffer ? *Lbuffer : red;
array2D<float>& YOld = YOldbuffer ? * YOldbuffer : green;
array2D<float>& YNew = YNewbuffer ? * YNewbuffer : blue;
StopWatch Stop1("rgb2YL");
#ifdef _OPENMP
#pragma omp parallel for schedule(dynamic, 16)
#endif
for (int i = 0; i < H; ++i) {
Color::RGB2L(redVals[i], greenVals[i], blueVals[i], L[i], xyz_rgb, W);
Color::RGB2Y(redVals[i], greenVals[i], blueVals[i], YOld[i], YNew[i], sharpeningParams.gamma, W);
}
if (plistener) {
plistener->setProgress(0.1);
}
// calculate contrast based blend factors to reduce sharpening in regions with low contrast
JaggedArray<float> blend(W, H);
buildBlendMask(L, blend, W, H, contrast, 1.f, sharpeningParams.autoContrast);
if (plistener) {
plistener->setProgress(0.2);
}
conrastThreshold = contrast * 100.f;
Stop1.stop();
array2D<float>& tmp = L; // L is not used anymore now => we can use its buffer as the needed temporary buffer
CaptureDeconvSharpening(YNew, tmp, blend, W, H, sharpeningParams.deconvradius, sharpeningParams.deconviter, plistener, 0.2, (0.9 - 0.2) / sharpeningParams.deconviter);
if (plistener) {
plistener->setProgress(0.9);
}
StopWatch Stop2("Y2RGB");
const float gamma = sharpeningParams.gamma;
#ifdef _OPENMP
#pragma omp parallel for schedule(dynamic, 16)
#endif
for (int i = 0; i < H; ++i) {
int j = 0;
#ifdef __SSE2__
const vfloat gammav = F2V(gamma);
for (; j < W - 3; j += 4) {
const vfloat factor = pow_F(vmaxf(LVFU(YNew[i][j]), ZEROV) / vmaxf(LVFU(YOld[i][j]), F2V(0.00001f)), gammav);
STVFU(red[i][j], LVFU(redVals[i][j]) * factor);
STVFU(green[i][j], LVFU(greenVals[i][j]) * factor);
STVFU(blue[i][j], LVFU(blueVals[i][j]) * factor);
}
#endif
for (; j < W; ++j) {
const float factor = pow_F(std::max(YNew[i][j], 0.f) / std::max(YOld[i][j], 0.00001f), gamma);
red[i][j] = redVals[i][j] * factor;
green[i][j] = greenVals[i][j] * factor;
blue[i][j] = blueVals[i][j] * factor;
}
}
Stop2.stop();
delete Lbuffer;
delete YOldbuffer;
delete YNewbuffer;
if (plistener) {
plistener->setProgress(1.0);
}
}
} /* namespace */

View File

@ -18,7 +18,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "ciecam02.h"
#include "rtengine.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _CIECAM02_
#define _CIECAM02_

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _CIEIMAGE_H_
#define _CIEIMAGE_H_

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "rtengine.h"
@ -1876,21 +1876,21 @@ void Color::RGB2L(float *R, float *G, float *B, float *L, const float wp[3][3],
{
#ifdef __SSE2__
vfloat minvalfv = F2V(0.f);
vfloat maxvalfv = F2V(MAXVALF);
const vfloat maxvalfv = F2V(MAXVALF);
const vfloat rmv = F2V(wp[1][0]);
const vfloat gmv = F2V(wp[1][1]);
const vfloat bmv = F2V(wp[1][2]);
#endif
int i = 0;
#ifdef __SSE2__
for(;i < width - 3; i+=4) {
for(; i < width - 3; i+=4) {
const vfloat rv = LVFU(R[i]);
const vfloat gv = LVFU(G[i]);
const vfloat bv = LVFU(B[i]);
const vfloat yv = F2V(wp[1][0]) * rv + F2V(wp[1][1]) * gv + F2V(wp[1][2]) * bv;
const vfloat yv = rmv * rv + gmv * gv + bmv * bv;
vmask maxMask = vmaskf_gt(yv, maxvalfv);
vmask minMask = vmaskf_lt(yv, minvalfv);
if (_mm_movemask_ps((vfloat)vorm(maxMask, minMask))) {
if (_mm_movemask_ps((vfloat)vorm(vmaskf_gt(yv, maxvalfv), vmaskf_lt(yv, ZEROV)))) {
// take slower code path for all 4 pixels if one of the values is > MAXVALF. Still faster than non SSE2 version
for(int k = 0; k < 4; ++k) {
float y = yv[k];
@ -1901,7 +1901,7 @@ void Color::RGB2L(float *R, float *G, float *B, float *L, const float wp[3][3],
}
}
#endif
for(;i < width; ++i) {
for(; i < width; ++i) {
const float rv = R[i];
const float gv = G[i];
const float bv = B[i];

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once
@ -1863,6 +1863,31 @@ public:
return (hr);
}
static inline void RGB2Y(const float* R, const float* G, const float* B, float* Y1, float * Y2, float gamma, int W) {
gamma = 1.f / gamma;
int i = 0;
#ifdef __SSE2__
const vfloat gammav = F2V(gamma);
const vfloat c1v = F2V(0.2627f);
const vfloat c2v = F2V(0.6780f);
const vfloat c3v = F2V(0.0593f);
for (; i < W - 3; i += 4) {
const vfloat Rv = vmaxf(LVFU(R[i]), ZEROV);
const vfloat Gv = vmaxf(LVFU(G[i]), ZEROV);
const vfloat Bv = vmaxf(LVFU(B[i]), ZEROV);
vfloat yv = pow_F(c1v * Rv + c2v * Gv + c3v * Bv, gammav);
STVFU(Y1[i], yv);
STVFU(Y2[i], yv);
}
#endif
for (; i < W; ++i) {
const float r = std::max(R[i], 0.f);
const float g = std::max(G[i], 0.f);
const float b = std::max(B[i], 0.f);
Y1[i] = Y2[i] = pow_F(0.2627f * r + 0.6780f * g + 0.0593f * b, gamma);
}
}
};
}

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "colortemp.h"
#include "rtengine.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _COLORTEMP_
#define _COLORTEMP_

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "coord.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef __COORD__

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef __COORD2D__
#define __COORD2D__

View File

@ -12,7 +12,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*
* 2010 Ilya Popov <ilia_popov@rambler.ru>
* 2012 Emil Martinec <ejmartin@uchicago.edu>

View File

@ -12,7 +12,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*
* 2010 Ilya Popov <ilia_popov@rambler.ru>
* 2012 Emil Martinec <ejmartin@uchicago.edu>

View File

@ -12,7 +12,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*
* 2012 Emil Martinec <ejmartin@uchicago.edu>
* 2014 Jacques Desmis <jdesmis@gmail.com>

View File

@ -12,7 +12,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*
* 2010 Ilya Popov <ilia_popov@rambler.ru>
* 2012 Emil Martinec <ejmartin@uchicago.edu>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <vector>
#include <algorithm>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef __CURVES_H__
#define __CURVES_H__

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <iostream>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef DCRAW_H

View File

@ -15,7 +15,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "curves.h"
#include "dcrop.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <cmath>
#include <cassert>
@ -1121,7 +1121,7 @@ void RawImageSource::lmmse_interpolate_omp(int winw, int winh, array2D<float> &r
* Contact info: luis.sanz.rodriguez@gmail.com
*
* This code is distributed under a GNU General Public License, version 3.
* Visit <http://www.gnu.org/licenses/> for more information.
* Visit <https://www.gnu.org/licenses/> for more information.
*
***/
// Adapted to RawTherapee by Jacques Desmis 3/2013

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "dfmanager.h"
#include "../rtgui/options.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <glib.h>
#include <glib/gstdio.h>

View File

@ -12,7 +12,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*
* (C) 2010 Emil Martinec <ejmartin@uchicago.edu>
*

View File

@ -19,7 +19,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "../rtengine/dynamicprofile.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _DYNAMICPROFILE_H_
#define _DYNAMICPROFILE_H_

View File

@ -15,7 +15,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <cmath>

View File

@ -18,7 +18,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "ffmanager.h"
#include "../rtgui/options.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <cmath>
#include <iostream>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <cmath>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "curves.h"
#include <cmath>

View File

@ -15,7 +15,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
/**

View File

@ -15,7 +15,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
/**

View File

@ -14,17 +14,59 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "gauss.h"
#include "rt_math.h"
#include <cmath>
#include <cstdlib>
#include "opthelper.h"
#include "boxblur.h"
namespace
{
void compute7x7kernel(float sigma, float kernel[7][7]) {
const double temp = -2.f * rtengine::SQR(sigma);
float sum = 0.f;
for (int i = -3; i <= 3; ++i) {
for (int j = -3; j <= 3; ++j) {
if((rtengine::SQR(i) + rtengine::SQR(j)) <= rtengine::SQR(3.0 * 1.15)) {
kernel[i + 3][j + 3] = std::exp((rtengine::SQR(i) + rtengine::SQR(j)) / temp);
sum += kernel[i + 3][j + 3];
} else {
kernel[i + 3][j + 3] = 0.f;
}
}
}
for (int i = 0; i < 7; ++i) {
for (int j = 0; j < 7; ++j) {
kernel[i][j] /= sum;
}
}
}
void compute5x5kernel(float sigma, float kernel[5][5]) {
const double temp = -2.f * rtengine::SQR(sigma);
float sum = 0.f;
for (int i = -2; i <= 2; ++i) {
for (int j = -2; j <= 2; ++j) {
if((rtengine::SQR(i) + rtengine::SQR(j)) <= rtengine::SQR(3.0 * 0.84)) {
kernel[i + 2][j + 2] = std::exp((rtengine::SQR(i) + rtengine::SQR(j)) / temp);
sum += kernel[i + 2][j + 2];
} else {
kernel[i + 2][j + 2] = 0.f;
}
}
}
for (int i = 0; i < 5; ++i) {
for (int j = 0; j < 5; ++j) {
kernel[i][j] /= sum;
}
}
}
template<class T> void calculateYvVFactors( const T sigma, T &b1, T &b2, T &b3, T &B, T M[3][3])
{
// coefficient calculation
@ -207,6 +249,174 @@ template<class T> void gauss3x3div (T** RESTRICT src, T** RESTRICT dst, T** REST
}
}
template<class T> void gauss7x7div (T** RESTRICT src, T** RESTRICT dst, T** RESTRICT divBuffer, const int W, const int H, float sigma)
{
float kernel[7][7];
compute7x7kernel(sigma, kernel);
const float c31 = kernel[0][2];
const float c30 = kernel[0][3];
const float c22 = kernel[1][1];
const float c21 = kernel[1][2];
const float c20 = kernel[1][3];
const float c11 = kernel[2][2];
const float c10 = kernel[2][3];
const float c00 = kernel[3][3];
#ifdef _OPENMP
#pragma omp for schedule(dynamic, 16) nowait
#endif
for (int i = 3; i < H - 3; ++i) {
dst[i][0] = dst[i][1] = dst[i][2] = 1.f;
// I tried hand written SSE code but gcc vectorizes better
for (int j = 3; j < W - 3; ++j) {
const float val = c31 * (src[i - 3][j - 1] + src[i - 3][j + 1] + src[i - 1][j - 3] + src[i - 1][j + 3] + src[i + 1][j - 3] + src[i + 1][j + 3] + src[i + 3][j - 1] + src[i + 3][j + 1]) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] * c21 + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] = divBuffer[i][j] / std::max(val, 0.00001f);
}
dst[i][W - 3] = dst[i][W - 2] = dst[i][W - 1] = 1.f;
}
// first and last rows
#ifdef _OPENMP
#pragma omp single
#endif
{
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < W; ++j) {
dst[i][j] = 1.f;
}
}
for (int i = H - 3 ; i < H; ++i) {
for (int j = 0; j < W; ++j) {
dst[i][j] = 1.f;
}
}
}
}
template<class T> void gauss5x5div (T** RESTRICT src, T** RESTRICT dst, T** RESTRICT divBuffer, const int W, const int H, float sigma)
{
float kernel[5][5];
compute5x5kernel(sigma, kernel);
const float c21 = kernel[0][1];
const float c20 = kernel[0][2];
const float c11 = kernel[1][1];
const float c10 = kernel[1][2];
const float c00 = kernel[2][2];
#ifdef _OPENMP
#pragma omp for schedule(dynamic, 16) nowait
#endif
for (int i = 2; i < H - 2; ++i) {
dst[i][0] = dst[i][1] = 1.f;
// I tried hand written SSE code but gcc vectorizes better
for (int j = 2; j < W - 2; ++j) {
const float val = c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] = divBuffer[i][j] / std::max(val, 0.00001f);
}
dst[i][W - 2] = dst[i][W - 1] = 1.f;
}
// first and last rows
#ifdef _OPENMP
#pragma omp single
#endif
{
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < W; ++j) {
dst[i][j] = 1.f;
}
}
for (int i = H - 2 ; i < H; ++i) {
for (int j = 0; j < W; ++j) {
dst[i][j] = 1.f;
}
}
}
}
template<class T> void gauss7x7mult (T** RESTRICT src, T** RESTRICT dst, const int W, const int H, float sigma)
{
float kernel[7][7];
compute7x7kernel(sigma, kernel);
const float c31 = kernel[0][2];
const float c30 = kernel[0][3];
const float c22 = kernel[1][1];
const float c21 = kernel[1][2];
const float c20 = kernel[1][3];
const float c11 = kernel[2][2];
const float c10 = kernel[2][3];
const float c00 = kernel[3][3];
#ifdef _OPENMP
#pragma omp for schedule(dynamic, 16)
#endif
for (int i = 3; i < H - 3; ++i) {
// I tried hand written SSE code but gcc vectorizes better
for (int j = 3; j < W - 3; ++j) {
const float val = c31 * (src[i - 3][j - 1] + src[i - 3][j + 1] + src[i - 1][j - 3] + src[i - 1][j + 3] + src[i + 1][j - 3] + src[i + 1][j + 3] + src[i + 3][j - 1] + src[i + 3][j + 1]) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] * c21 + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] *= val;
}
}
}
template<class T> void gauss5x5mult (T** RESTRICT src, T** RESTRICT dst, const int W, const int H, float sigma)
{
float kernel[5][5];
compute5x5kernel(sigma, kernel);
const float c21 = kernel[0][1];
const float c20 = kernel[0][2];
const float c11 = kernel[1][1];
const float c10 = kernel[1][2];
const float c00 = kernel[2][2];
#ifdef _OPENMP
#pragma omp for schedule(dynamic, 16)
#endif
for (int i = 2; i < H - 2; ++i) {
// I tried hand written SSE code but gcc vectorizes better
for (int j = 2; j < W - 2; ++j) {
const float val = c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] *= val;
}
}
}
// use separated filter if the support window is small and src == dst
template<class T> void gaussHorizontal3 (T** src, T** dst, int W, int H, const float c0, const float c1)
@ -1142,6 +1352,8 @@ template<class T> void gaussVerticalmult (T** src, T** dst, const int W, const i
template<class T> void gaussianBlurImpl(T** src, T** dst, const int W, const int H, const double sigma, T *buffer = nullptr, eGaussType gausstype = GAUSS_STANDARD, T** buffer2 = nullptr)
{
static constexpr auto GAUSS_3X3_LIMIT = 0.6;
static constexpr auto GAUSS_5X5_LIMIT = 0.84;
static constexpr auto GAUSS_7X7_LIMIT = 1.15;
static constexpr auto GAUSS_DOUBLE = 25.0;
if(buffer) {
@ -1243,14 +1455,26 @@ template<class T> void gaussianBlurImpl(T** src, T** dst, const int W, const int
if (sigma < GAUSS_DOUBLE) {
switch (gausstype) {
case GAUSS_MULT : {
gaussHorizontalSse<T> (src, src, W, H, sigma);
gaussVerticalSsemult<T> (src, dst, W, H, sigma);
if (sigma <= GAUSS_5X5_LIMIT && src != dst) {
gauss5x5mult(src, dst, W, H, sigma);
} else if (sigma <= GAUSS_7X7_LIMIT && src != dst) {
gauss7x7mult(src, dst, W, H, sigma);
} else {
gaussHorizontalSse<T> (src, src, W, H, sigma);
gaussVerticalSsemult<T> (src, dst, W, H, sigma);
}
break;
}
case GAUSS_DIV : {
gaussHorizontalSse<T> (src, dst, W, H, sigma);
gaussVerticalSsediv<T> (dst, dst, buffer2, W, H, sigma);
if (sigma <= GAUSS_5X5_LIMIT && src != dst) {
gauss5x5div (src, dst, buffer2, W, H, sigma);
} else if (sigma <= GAUSS_7X7_LIMIT && src != dst) {
gauss7x7div (src, dst, buffer2, W, H, sigma);
} else {
gaussHorizontalSse<T> (src, dst, W, H, sigma);
gaussVerticalSsediv<T> (dst, dst, buffer2, W, H, sigma);
}
break;
}
@ -1270,14 +1494,26 @@ template<class T> void gaussianBlurImpl(T** src, T** dst, const int W, const int
if (sigma < GAUSS_DOUBLE) {
switch (gausstype) {
case GAUSS_MULT : {
gaussHorizontal<T> (src, src, W, H, sigma);
gaussVerticalmult<T> (src, dst, W, H, sigma);
if (sigma <= GAUSS_5X5_LIMIT && src != dst) {
gauss5x5mult(src, dst, W, H, sigma);
} else if (sigma <= GAUSS_7X7_LIMIT && src != dst) {
gauss7x7mult(src, dst, W, H, sigma);
} else {
gaussHorizontal<T> (src, src, W, H, sigma);
gaussVerticalmult<T> (src, dst, W, H, sigma);
}
break;
}
case GAUSS_DIV : {
gaussHorizontal<T> (src, dst, W, H, sigma);
gaussVerticaldiv<T> (dst, dst, buffer2, W, H, sigma);
if (sigma <= GAUSS_5X5_LIMIT && src != dst) {
gauss5x5div (src, dst, buffer2, W, H, sigma);
} else if (sigma <= GAUSS_7X7_LIMIT && src != dst) {
gauss7x7div (src, dst, buffer2, W, H, sigma);
} else {
gaussHorizontal<T> (src, dst, W, H, sigma);
gaussVerticaldiv<T> (dst, dst, buffer2, W, H, sigma);
}
break;
}

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _GAUSS_H_
#define _GAUSS_H_

View File

@ -19,7 +19,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////

View File

@ -15,7 +15,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
/**

View File

@ -15,7 +15,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

View File

@ -20,7 +20,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////

View File

@ -15,7 +15,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "rawimagesource.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <cmath>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _ICCMATRICES_
#define _ICCMATRICES_

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <cstring>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "procparams.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _IIMAGE_
#define _IIMAGE_

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "image16.h"
#include "imagefloat.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
//
// A class representing a 16 bit rgb image with separate planes and 16 byte aligned data

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <cstring>
#include <cstdio>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
//
// A class representing a 8 bit rgb image without alpha channel

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <functional>
#include <strings.h>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef __IMAGEDATA_H__
#define __IMAGEDATA_H__

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include "imagedimensions.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <tiffio.h>
#include "imagefloat.h"

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
//
// A class representing a 16 bit rgb image with separate planes and 16 byte aligned data

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _IMAGEFORMAT_
#define _IMAGEFORMAT_

View File

@ -15,7 +15,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <png.h>
#include <glib/gstdio.h>

View File

@ -14,7 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _IMAGEIO_
#define _IMAGEIO_

Some files were not shown because too many files have changed in this diff Show More