Commit Graph

5162 Commits

Author SHA1 Message Date
xiota
fe68e913be Conditional compilation for old/new API
Debian/Ubuntu package libjxl 0.7.0,
but Arch/MSYS2 package 0.10.2
2024-04-11 15:44:55 +00:00
xiota
7715d15615 Update to current libjxl API 2024-04-10 12:58:01 +00:00
xiota
dd01cc110b Add error code to returns
Fix conditional libjxl compilation
2024-04-10 11:32:42 +00:00
xiota
dfc82c403c Add ability to import JXL images 2024-04-10 10:17:42 +00:00
Simone Gotti
1098966a8b Add optional image rank/color load/save from/to xmp sidecar
Add optional ability to load/save image rank property from/to xmp
sidecar "xmp.Rating" and color property from xmp "xmp.Label" ignoring
the ones provided in the processing params file.

This behavior is disabled by default and an option under settings ->
file browser has been added to enable it.

When enabled:

* On load:
  * rank and color are not read from processing params.
  * rank is mapped from xmp sidecar file rating entry.
  * color is mapped from xmp sidecar file label entry.

* On save:
  * rank and color are saved to the xmp sidecar
  * rank and color are also saved to the processing param (pp3) files to
    keep them in sync

Rating mapping:

Since rating can be also -1 but rank only goes from 0 to 5, the -1 value
is ignored like already done when importing from embedded xmp data.

Color mapping:

XMP has no color concept, usually programs like digikam uses the label
field to write a color name ("Red", "Orange"). The problem is that this
isn't standardized and label can be any string. Additionally Rawtherapee
has 5 specific colors while other programs can have different colors
with different name so they won't be shown if they don't map to the 5
color names supported by rawtherapee. On save only the 5 color supported
by rawtherapee wil be saved.

Trash is kept only in the profile files for multiple reasons:

* There's no trash concept in xmp, there's the rejected concept assigned
  to a rating == -1.
* We could map rejected to trash but in rawtherapee rank and trash are two different values and
  an image can have both rank >= 0 and trashed set to true.
  Using an unique value like rating for rank and trash (when -1) will
  require changing the current rawtherapee logic.
* Also digikam only handles ratings from 0 to 5 (no -1) and handles
  trash in its own internal way without reflecting it in the xmp
  sidecar.
2024-04-03 20:06:14 +02:00
Lawrence Lee
4e57202bf6 Improve Lensfun auto lens matching
Handle lens names with spaces surrounding dashes.
2024-03-31 17:43:04 -07:00
Alexander Brock
ebb0f8ebdd Merge branch 'dev' of https://github.com/Beep6581/RawTherapee into defish 2024-03-30 17:07:31 +01:00
Simone Gotti
52e88e8954 imageio: fix issues/crash on png with transparency
If a png has a transparency chunk (tRNS), after converting the
transparency to alpha we should also strip alpha (color_type is not
updated with PNG_COLOR_MASK_ALPHA flag set) or the row parsing will
return also the alpha channel causing a memory overflow.
2024-03-29 15:16:55 +01:00
Simone Gotti
65c68364a9 dcraw: add support for Fujifilm GFX 100 II 2024-03-29 10:05:51 +01:00
Simone Gotti
13eddbdd94 dcraw: handle fujifilm lossy compression
port from libraw handling of fujifilm lossy compression.
2024-03-25 11:13:04 +01:00
Lawrence37
61019d0dc6 Merge pull request #7006 from hfiguiere/iplab2rgb-leak
iplab2rgb: Fix memory leak
2024-03-24 12:20:33 -07:00
Lawrence37
3bab4657d7 Merge pull request #6962 from sgotti/read_raw_embedded_dcp
Read embedded dcp profile from raw files
2024-03-24 12:19:04 -07:00
Lawrence37
0fa0e42ed0 Merge pull request #7003 from Lawrence37/om-digital-solutions-tg-7
Initial support for OM TG-7
2024-03-24 12:18:21 -07:00
Hubert Figuière
b46c22dee6 iplab2rgb: Fix memory leak
Signed-off-by: Hubert Figuière <hub@figuiere.net>
2024-03-23 16:58:45 -04:00
Lawrence Lee
c5967cb4e4 Add initial support for OM TG-7
Read CFA pattern for OM Digital Solutions cameras.
Use Olympus TG-6 camconst for the TG-7, since the dcraw matrix and raw
crop are the same.
2024-03-21 21:45:35 -07:00
Andy Dodd
91dc97eafb Fix regression with demosaiced DNGs caused by 831a9bbd
Uses a new function checkRawDataDimensions as suggested/written by @Lawrence37 to verify that image dimensions are correct.

Fixes #6996
2024-03-18 09:09:07 -04:00
Simone Gotti
2aea26b5f3 Handle flat field images with different black levels than raw image
For bayer images handle flat field images with different black levels
than the raw image.
2024-03-17 21:56:56 +01:00
Alexander Brock
28a5d36e9a Merge branch 'dev' of https://github.com/Beep6581/RawTherapee into defish 2024-03-10 17:22:19 +01:00
Lawrence Lee
c3a1656ac0 Fix WB multipliers for some Canon cameras
Read the correct tag for the as-shot multipliers (index 0x69). The port
from LibRaw incorrectly used the tag at index 0x69 + 0x64, which is the
daylight WB multipliers. This fix affects Canon cameras with color data
versions 34 (EOS R3) and 48 (EOS R6m2, EOS R7, and EOS R10).
2024-03-09 22:17:55 -08:00
Desmis
96a48c6334 Local adjustments - set method Avoid Gamut to Munsell - better processing of highlights and gamut (#6965)
* Avoidgamumethod set to Munsell-only

* Set appimage.yml and windows.yml to la_gamutmunsell

* Remove procparams conversion XYZ absolute tu Munsell only

* Neutralize appimage.yml and windows.yml
2024-03-09 07:36:46 +01:00
Simone Gotti
3e26976403 Read embedded dcp profile from raw files
raw files, usually dng files, can provide a dcp profile by providing the
related tags.

This patch will make the "Use embedded" options in the color management
panel selectable if the source raw file embeds a dcp profile.
In this case the DCP panel will be enabled like when reading an external
dcp profile.

Additional changes:

* Rename "Use embedded, if possible" to just "Use embedded" since the
option is already disabled when no embedded profile is found.
* Update the "Use embedded" options tooltip as it's now not related to
  only non raw images.
2024-03-07 10:37:54 +01:00
Pandagrapher
7e63892628 Merge with 'Beep6581/dev' 2024-03-06 19:10:49 +01:00
Alexander Brock
041472e39b Merge branch 'dev' of https://github.com/Beep6581/RawTherapee into defish 2024-03-03 20:06:08 +01:00
Desmis
484f1a29de Local adjustments - Chromaticity curve C(h) (#6964)
* Chromaticity curve C(h)

* Appimage.yml windows.yml lachroma
2024-03-03 07:28:37 +01:00
Lawrence Lee
51e52d9aba Merge branch 'dev' into libraw-copylib 2024-03-02 21:01:34 -08:00
Lawrence Lee
6daf3f6a23 Fix possible infinite loop in dcraw
Use same type for variable comparison in loop condition. Fixes CodeQL
alert 96.
2024-03-02 20:55:07 -08:00
Lawrence37
9308a830ed Merge pull request #6952 from Lawrence37/sony-ilce-7cr-camconst
Sony ILCE-7CR / ILCE-7RM5 camconst
2024-03-02 16:11:53 -08:00
Lawrence37
8495ba7502 Merge pull request #6837 from Lawrence37/lensfun-match-saved-name
Fix for some Lensfun corrections not available
2024-03-02 15:45:59 -08:00
Alberto Griggio
65a14051fe rawimage: put global black level (as found in DNG converted files) for xtrans files where the code expects to find it 2024-02-22 22:22:41 -08:00
Alexander Brock
5b2d290805 Merge branch 'dev' of https://github.com/Beep6581/RawTherapee into defish 2024-02-18 23:39:48 +01:00
Lawrence Lee
7945f93e8f Merge branch 'releases' into dev 2024-02-15 23:15:50 -08:00
Lawrence Lee
10050fd9b1 Add ILCE-7CR raw crop, PDAF pattern, dcraw matrix
Also use the same values for the Sony ILCE-7RM5 which should have the
same sensor. Copy the PDAF pattern to the ILCE-7RM4, which has the same
size sensor.
2024-02-11 23:24:36 -08:00
Lawrence Lee
6d2022b5d5 Fix compiler warnings 2024-02-08 22:08:44 -08:00
Desmis
8ad4ebf482 Change default behavior Local Adjustments settings Avoid Color Shift to XYZ Absolute (#6948)
* Change default settings avoidcolorshift to XYZ absolute

* Same change in controlspotpanel.cc
2024-02-08 21:53:07 -08:00
Lawrence37
f65e428e7f Merge pull request #6833 from LoKolbasz/segfault_with_fuji_cropped_raw_issue#6312
Segfault fixed when opening Fuji cropped raw. Fixes #6312
2024-02-04 15:47:28 -08:00
Lawrence37
e438e0e604 Some more cherry-picking for 5.10 (#6937)
* Local adjustments - Show additional settings - link with complexity  (#6899)

* Change hishow -additional seeting - with complexity

* Modify windows.yml and appimage.yml

* Fixed bug in duplicate spot

* Remove pre-dev builds

* Update camconst.json white levels for 1DxII

* Fix warnings: conversion to double/float, unused variables, register keyword

* Fix crash when opening image in editor

Do not access uninitialized raw image data. The raw data is requested
when the demosaic mode is set to None and the cursor is moved over the
image in the editor. It can occur before the raw data is loaded.

* Fix sRGB working profile crash

The sRGB working profile cannot be found under some conditions because
the profile name is stored as a Glib::ustring and the same strings may
not be equal when using different locales. Use std::string whenever
comparing profile names.

---------

Co-authored-by: Desmis <jdesmis@gmail.com>
Co-authored-by: CarVac <airplaniac2002@gmail.com>
Co-authored-by: Alexander Gruzintsev <0v3rt1r3d@gmail.com>
2024-02-04 15:43:33 -08:00
Lawrence37
42817bffa4 Defringe tool banding & desaturation fix (#6934)
* Fix defringe banding & desaturation race condition

Use a copy of the image instead of the image itself for the source data.
Affects Defringe, Color Appearance & Lighting Hot/bad pixel filter, and
Contrast by Detail Levels Reduce artifacts.

* Fix CodeQL warning

Fix multiplication overflow.
2024-02-04 15:41:32 -08:00
Lawrence37
2f7c2e973c Fix rotation of images with odd number of rows (#6926)
* Fix line in middle of 180 degree rotated image

For images with an odd number of rows, a 180 degree rotation resulted in
one row of un-rotated pixels because it was effectively rotated twice.

* Replace verbose swap with std::swap
2024-02-04 15:40:38 -08:00
Lawrence37
0d0834cbe7 Dynamic Range Compression Improvement (5.10) (#6943)
* Improve Dynamic Range Compression - for some images with very high DR

* Clean code

* Improve TM fattal with saturation control in LA

* Saturation control fattal in LA

* Re-order paramsedit

* Change history_msg_tmo_satur with saturation

---------

Co-authored-by: U-PCSPECIALIST01\jdesm <jdesmis@gmail.com>
2024-02-04 15:38:04 -08:00
Alexander Brock
e9bdda8727 Merge branch 'dev' of https://github.com/Beep6581/RawTherapee into defish 2024-02-04 18:01:33 +01:00
Desmis
5349f7a860 Improve Dynamic Range Compression - for some images with very high DR - Main and LA (#6931)
* Improve Dynamic Range Compression - for some images with very high DR

* Clean code

* Improve TM fattal with saturation control in LA

* Saturation control fattal in LA

* Re-order paramsedit

* Change history_msg_tmo_satur with saturation
2024-02-02 07:42:34 +01:00
Lawrence37
f06e756c20 AWB non-raw file fixes (for 5.10) (#6940)
* Improve Itcwb with non-raw files

* Change pre-dev builds wbrefinement

* Change template in pre-dev

* Improvment improccordinator.cc

* Forgotten observer convert

* Reenable wbauto autogrey as 5.8

* Remove wrong code

* Missing getrgbloc references

* Fixed bug due to bias in queu with temperaure correlation issue 6911

* Simpleprocess queue compatibility tif-jpg

* Preserve AWB edits from 5.9

In 5.9 for non-raw files,
   1. RGB grey uses the unit multipliers with temperature bias applied.
   2. Temperature correlation uses the equivalent of temperature 5000,
      green 1, and red/blue equalizer 1.

* Refactor temperature correlation AWB code

* Fix inaccurate RGB grey WB preview after using ITC

The RGB grey automatic white balance algorithm caches the multipliers.
Temperature correlation automatic white balance also caches results to
the same location, but never uses it. This causes the RGB grey method to
produce incorrect results in the editor. Removing the temperature
correlation cache fixes the issue and does not have side-effects.

---------

Co-authored-by: U-PCSPECIALIST01\jdesm <jdesmis@gmail.com>
2024-02-01 22:41:56 -08:00
Desmis
e4087e2fa2 White balance auto temperature correlation - improve behavior with non raw files (#6903)
* Improve Itcwb with non-raw files

* Change pre-dev builds wbrefinement

* Change template in pre-dev

* Improvment improccordinator.cc

* Forgotten observer convert

* Reenable wbauto autogrey as 5.8

* Remove wrong code

* Missing getrgbloc references

* Fixed bug due to bias in queu with temperaure correlation issue 6911

* Simpleprocess queue compatibility tif-jpg

* Preserve AWB edits from 5.9

In 5.9 for non-raw files,
   1. RGB grey uses the unit multipliers with temperature bias applied.
   2. Temperature correlation uses the equivalent of temperature 5000,
      green 1, and red/blue equalizer 1.

* Refactor temperature correlation AWB code

* Fix inaccurate RGB grey WB preview after using ITC

The RGB grey automatic white balance algorithm caches the multipliers.
Temperature correlation automatic white balance also caches results to
the same location, but never uses it. This causes the RGB grey method to
produce incorrect results in the editor. Removing the temperature
correlation cache fixes the issue and does not have side-effects.

---------

Co-authored-by: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com>
2024-02-01 07:48:07 +01:00
Lawrence37
2c51b822a3 Merge pull request #6889 from Lawrence37/wprof-crash-fix
Fix for segfault due to wprof being null
2024-01-27 21:47:55 -08:00
Lawrence37
8f1f532fe6 Merge pull request #6878 from Lawrence37/switch-image-fix
Fix for crash when moving cursor over loading raw image
2024-01-27 21:47:15 -08:00
Lawrence37
4dd7517a55 Merge pull request #6873 from 0v3rt1r3d/0v3rt1r3d/fix-a-couple-of-warnings
Fix a couple of warnings
2024-01-27 21:46:14 -08:00
Lawrence37
9b7aef5d58 Merge pull request #6865 from CarVac/dev
Fix camconst.json white levels for 1DxII
2024-01-27 21:45:40 -08:00
Lawrence37
13bf7a1f0a Merge pull request #6857 from Lawrence37/camconst-from-art
Update camconst.json from ART
2024-01-27 15:52:54 -08:00
Lawrence37
7eb2aedbc1 Merge pull request #6927 from Lawrence37/panasonic-dc-g100-white-levels
Panasonic DC-G100 white levels
2024-01-25 21:04:19 -08:00
Lawrence37
5ffa0632f2 Merge pull request #6885 from Lawrence37/asan-mem-leak
Fixes for memory leaks and memcpy overlap found by AddressSanitizer
2024-01-25 21:02:50 -08:00