Merge branch 'dev' into metadata-exiv2

This commit is contained in:
Lawrence Lee
2023-02-05 12:29:58 -08:00
278 changed files with 74278 additions and 13534 deletions

View File

@@ -27,6 +27,7 @@
#include <glibmm/ustring.h>
#include <lcms2.h>
#include "coord.h"
#include "noncopyable.h"
struct ParamsEdited;
@@ -375,7 +376,7 @@ struct LCurveParams {
int brightness;
int contrast;
int chromaticity;
bool avoidcolorshift;
Glib::ustring gamutmunselmethod;
double rstprotection;
bool lcredsk;
@@ -708,7 +709,6 @@ struct ColorAppearanceParams {
double greenout;
int tempsc;
double greensc;
bool presetcat02;
ColorAppearanceParams();
@@ -830,15 +830,28 @@ struct SHParams {
* Parameters of the cropping
*/
struct CropParams {
bool enabled;
int x;
int y;
int w;
int h;
bool fixratio;
Glib::ustring ratio;
Glib::ustring orientation;
Glib::ustring guide;
enum class Guide {
NONE,
FRAME,
RULE_OF_THIRDS,
RULE_OF_DIAGONALS,
HARMONIC_MEANS,
GRID,
GOLDEN_TRIANGLE_1,
GOLDEN_TRIANGLE_2,
EPASSPORT,
CENTERED_SQUARE
};
bool enabled;
int x;
int y;
int w;
int h;
bool fixratio;
Glib::ustring ratio;
Glib::ustring orientation;
Guide guide;
CropParams();
@@ -935,11 +948,22 @@ struct LensProfParams {
* Parameters of the perspective correction
*/
struct PerspectiveParams {
static constexpr double DEFAULT_CAMERA_CROP_FACTOR = 1;
static constexpr double DEFAULT_CAMERA_FOCAL_LENGTH = 24;
Glib::ustring method;
bool render;
double horizontal;
double vertical;
/**
* Negative and zero values indicate an unspecified crop factor and should
* be interpreted with {@link #DEFAULT_CAMERA_CROP_FACTOR}.
*/
double camera_crop_factor;
/**
* Negative and zero values indicate an unspecified focal length and should
* be interpreted with {@link #DEFAULT_CAMERA_FOCAL_LENGTH}.
*/
double camera_focal_length;
double camera_pitch;
double camera_roll;
@@ -995,6 +1019,8 @@ struct LocallabParams {
int structexclu;
double struc;
Glib::ustring shapeMethod; // IND, SYM, INDSL, SYMSL
Glib::ustring avoidgamutMethod; // NONE, LAB, XYZ
std::vector<int> loc; // For ellipse/rectangle: {locX, locXL, locY, locYT}
int centerX;
int centerY;
@@ -1014,8 +1040,6 @@ struct LocallabParams {
double transitgrad;
bool hishow;
bool activ;
bool avoid;
bool avoidmun;
bool blwh;
bool recurs;
bool laplac;
@@ -1023,6 +1047,7 @@ struct LocallabParams {
bool shortc;
bool savrest;
int scopemask;
double denoichmask;
int lumask;
// Color & Light
bool visicolor;
@@ -1030,6 +1055,8 @@ struct LocallabParams {
int complexcolor;
bool curvactiv;
int lightness;
double reparcol;
double gamc;
int contrast;
int chroma;
double labgridALow;
@@ -1106,6 +1133,7 @@ struct LocallabParams {
int sensiex;
int structexp;
int blurexpde;
double gamex;
double strexp;
double angexp;
std::vector<double> excurve;
@@ -1129,6 +1157,7 @@ struct LocallabParams {
Glib::ustring expMethod; // std, pde
Glib::ustring exnoiseMethod; // none, med, medhi
double laplacexp;
double reparexp;
double balanexp;
double linear;
double gamm;
@@ -1167,6 +1196,7 @@ struct LocallabParams {
double slomaskSH;
double lapmaskSH;
int detailSH;
double reparsh;
std::vector<double> LmaskSHcurve;
double fatamountSH;
double fatanchorSH;
@@ -1182,6 +1212,7 @@ struct LocallabParams {
int complexvibrance;
int saturated;
int pastels;
double vibgam;
int warm;
Threshold<int> psthreshold;
bool protectskins;
@@ -1258,6 +1289,7 @@ struct LocallabParams {
double noiselumc;
double noiselumdetail;
int noiselequal;
double noisegam;
double noisechrof;
double noisechroc;
double noisechrodetail;
@@ -1269,6 +1301,7 @@ struct LocallabParams {
int nlrad;
double nlgam;
int sensiden;
double reparden;
int detailthr;
std::vector<double> locwavcurveden;
std::vector<double> locwavcurvehue;
@@ -1300,6 +1333,7 @@ struct LocallabParams {
double gamma;
double estop;
double scaltm;
double repartm;
int rewei;
double satur;
int sensitm;
@@ -1374,6 +1408,7 @@ struct LocallabParams {
int shardamping;
int shariter;
double sharblur;
double shargam;
int sensisha;
bool inverssha;
// Local Contrast
@@ -1391,6 +1426,9 @@ struct LocallabParams {
double residshathr;
double residhi;
double residhithr;
double gamlc;
double residgam;
double residslop;
double residblur;
double levelblur;
double sigmabl;
@@ -1421,6 +1459,7 @@ struct LocallabParams {
double edgw;
double basew;
int sensilc;
double reparw;
bool fftwlc;
bool blurlc;
bool wavblur;
@@ -1490,6 +1529,7 @@ struct LocallabParams {
double targetGray;
double catad;
double saturl;
double chroml;
double lightl;
double lightq;
double contl;
@@ -1552,6 +1592,110 @@ struct LocallabParams {
std::vector<double> Lmask_curve;
std::vector<double> LLmask_curvewav;
Threshold<int> csthresholdmask;
//ciecam
bool visicie;
bool expcie;
int complexcie;
double reparcie;
int sensicie;
bool Autograycie;
bool forcejz;
bool forcebw;
bool qtoj;
bool jabcie;
bool sigmoidqjcie;
bool logcie;
bool logjz;
bool sigjz;
bool sigq;
bool chjzcie;
double sourceGraycie;
double sourceabscie;
Glib::ustring sursourcie;
Glib::ustring modecie;
Glib::ustring modecam;
double saturlcie;
double rstprotectcie;
double chromlcie;
double huecie;
Glib::ustring toneMethodcie;
std::vector<double> ciecurve;
Glib::ustring toneMethodcie2;
std::vector<double> ciecurve2;
double chromjzcie;
double saturjzcie;
double huejzcie;
double softjzcie;
double strsoftjzcie;
double thrhjzcie;
std::vector<double> jzcurve;
std::vector<double> czcurve;
std::vector<double> czjzcurve;
std::vector<double> HHcurvejz;
std::vector<double> CHcurvejz;
std::vector<double> LHcurvejz;
double lightlcie;
double lightjzcie;
double lightqcie;
double contlcie;
double contjzcie;
double adapjzcie;
double jz100;
double pqremap;
double pqremapcam16;
double hljzcie;
double hlthjzcie;
double shjzcie;
double shthjzcie;
double radjzcie;
double sigmalcjz;
double clarilresjz;
double claricresjz;
double clarisoftjz;
std::vector<double> locwavcurvejz;
Threshold<int> csthresholdjz;
double contthrescie;
double blackEvjz;
double whiteEvjz;
double targetjz;
double sigmoidldacie;
double sigmoidthcie;
double sigmoidblcie;
double sigmoidldajzcie;
double sigmoidthjzcie;
double sigmoidbljzcie;
double contqcie;
double colorflcie;
/*
double lightlzcam;
double lightqzcam;
double contlzcam;
double contqzcam;
double contthreszcam;
double colorflzcam;
double saturzcam;
double chromzcam;
*/
double targabscie;
double targetGraycie;
double catadcie;
double detailcie;
Glib::ustring surroundcie;
bool enacieMask;
std::vector<double> CCmaskciecurve;
std::vector<double> LLmaskciecurve;
std::vector<double> HHmaskciecurve;
int blendmaskcie;
double radmaskcie;
double chromaskcie;
double lapmaskcie;
double gammaskcie;
double slomaskcie;
std::vector<double> Lmaskciecurve;
double recothrescie;
double lowthrescie;
double higthrescie;
double decaycie;
LocallabSpot();
@@ -1682,6 +1826,8 @@ struct ResizeParams {
int dataspec;
int width;
int height;
int longedge;
int shortedge;
bool allowUpscaling;
ResizeParams();
@@ -1690,10 +1836,85 @@ struct ResizeParams {
bool operator !=(const ResizeParams& other) const;
};
/**
* Parameters entry
*/
struct SpotEntry {
Coord sourcePos;
Coord targetPos;
int radius;
float feather;
float opacity;
SpotEntry();
float getFeatherRadius() const;
bool operator ==(const SpotEntry& other) const;
bool operator !=(const SpotEntry& other) const;
};
/**
* Parameters of the dust removal tool
*/
struct SpotParams {
bool enabled;
std::vector<SpotEntry> entries;
// the following constant can be used for experimentation before the final merge
static const short minRadius;
static const short maxRadius;
SpotParams();
bool operator ==(const SpotParams& other) const;
bool operator !=(const SpotParams& other) const;
};
/**
* Parameters of the color spaces used during the processing
*/
struct ColorManagementParams {
enum class WorkingTrc {
NONE,
CUSTOM,
BT709,
SRGB,
GAMMA_2_2,
GAMMA_1_8,
LINEAR
};
enum class Illuminant {
DEFAULT,
D41,
D50,
D55,
D60,
D65,
D80,
D120,
STDA,
TUNGSTEN_2000K,
TUNGSTEN_1500K
};
enum class Primaries {
DEFAULT,
SRGB,
ADOBE_RGB,
PRO_PHOTO,
REC2020,
ACES_P1,
WIDE_GAMUT,
ACES_P0,
BRUCE_RGB,
BETA_RGB,
BEST_RGB,
CUSTOM,
CUSTOM_GRID
};
Glib::ustring inputProfile;
bool toneCurve;
bool applyLookTable;
@@ -1702,15 +1923,36 @@ struct ColorManagementParams {
int dcpIlluminant;
Glib::ustring workingProfile;
Glib::ustring workingTRC;
WorkingTrc workingTRC;
Illuminant will;
Primaries wprim;
double workingTRCGamma;
double workingTRCSlope;
double redx;
double redy;
double grex;
double grey;
double blux;
double bluy;
double preser;
bool fbw;
bool gamut;
double labgridcieALow;
double labgridcieBLow;
double labgridcieAHigh;
double labgridcieBHigh;
double labgridcieGx;
double labgridcieGy;
double labgridcieWx;
double labgridcieWy;
RenderingIntent aRendIntent;
Glib::ustring outputProfile;
RenderingIntent outputIntent;
bool outputBPC;
static const Glib::ustring NoICMString;
static const Glib::ustring NoProfileString;
ColorManagementParams();
@@ -1857,7 +2099,7 @@ struct WaveletParams {
std::vector<double> blcurve;
std::vector<double> levelshc;
std::vector<double> opacityCurveRG;
std::vector<double> opacityCurveSH;
//std::vector<double> opacityCurveSH;
std::vector<double> opacityCurveBY;
std::vector<double> opacityCurveW;
std::vector<double> opacityCurveWL;
@@ -1930,7 +2172,7 @@ struct WaveletParams {
Glib::ustring Backmethod;
Glib::ustring Tilesmethod;
Glib::ustring complexmethod;
Glib::ustring denmethod;
//Glib::ustring denmethod;
Glib::ustring mixmethod;
Glib::ustring slimethod;
Glib::ustring quamethod;
@@ -2046,7 +2288,7 @@ struct HSVEqualizerParams {
};
/**
* Film simualtion params
* Film simulation params
*/
struct FilmSimulationParams {
bool enabled;
@@ -2155,6 +2397,7 @@ struct RAWParams {
bool pixelShiftShowMotionMaskOnly;
bool pixelShiftHoleFill;
bool pixelShiftMedian;
bool pixelShiftAverage;
bool pixelShiftGreen;
bool pixelShiftBlur;
double pixelShiftSmoothFactor;
@@ -2226,6 +2469,7 @@ struct RAWParams {
Glib::ustring ff_file;
bool ff_AutoSelect;
bool ff_FromMetaData;
int ff_BlurRadius;
Glib::ustring ff_BlurType;
bool ff_AutoClipControl;
@@ -2348,6 +2592,7 @@ public:
ChannelMixerParams chmixer; ///< Channel mixer parameters
BlackWhiteParams blackwhite; ///< Black& White parameters
ResizeParams resize; ///< Resize parameters
SpotParams spot; ///< Spot removal tool
ColorManagementParams icm; ///< profiles/color spaces used during the image processing
RAWParams raw; ///< RAW parameters before demosaicing
WaveletParams wavelet; ///< Wavelet parameters