Fixed bug in XYZ V2 AcesP1 profile

This commit is contained in:
Desmis
2018-04-13 10:51:49 +02:00
parent a872bd9e2d
commit c2db569823
5 changed files with 23 additions and 14 deletions

Binary file not shown.

View File

@@ -92,15 +92,15 @@ constexpr double ACESp0_xyz[3][3] = {
};
constexpr double xyz_ACESp1[3][3] = {
{0.68970, 0.14995, 0.12456},
{0.28445, 0.67175 , 0.04379},
{-0.00604, 0.00999, 0.82094}
{0.689697, 0.149944, 0.124559},
{0.284448, 0.671758 , 0.043794},
{-0.006043, 0.009998, 0.820945}
};
constexpr double ACESp1_xyz[3][3] = {
{1.593266, -0.352338, -0.222949},
{-0.675963, 1.639314 , 0.0151197},
{0.0199481, -0.022541, 1.216291}
{1.5932624, -0.352316, -0.222945},
{-0.6759496, 1.639286 , 0.01511026},
{0.0199602, -0.0225577, 1.2162833}
};

View File

@@ -693,7 +693,6 @@ private:
m[2][0] = red->Z;
m[2][1] = green->Z;
m[2][2] = blue->Z;
out.set(m);
cmsCloseProfile(prof);
@@ -1497,11 +1496,11 @@ cmsHPROFILE rtengine::ICCStore::createCustomGammaOutputProfile(const procparams:
outProfile = options.rtSettings.rec2020;
outPr = "RT_rec2020";
} else if (icm.wprimari == "acesp0" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESc)) {
outProfile = options.rtSettings.ACESc;
} else if (icm.wprimari == "acesp0" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESp0)) {
outProfile = options.rtSettings.ACESp0;
outPr = "RT_acesp0";
} else if (icm.wprimari == "acesp1" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESc)) {
outProfile = options.rtSettings.ACESc;
} else if (icm.wprimari == "acesp1" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESp1)) {
outProfile = options.rtSettings.ACESp1;
outPr = "RT_acesp1";
} else {
@@ -1784,6 +1783,8 @@ cmsHPROFILE rtengine::ICCStore::createCustomGammaOutputProfile(const procparams:
cmsMLUsetASCII(copyright, "en", "US", "No copyright Rawtherapee");
cmsWriteTag(outputProfile, cmsSigCopyrightTag, copyright);
cmsMLUfree(copyright);
}
cmsMLU *descrip = cmsMLUalloc(NULL, 1);
@@ -1802,8 +1803,14 @@ cmsHPROFILE rtengine::ICCStore::createCustomGammaOutputProfile(const procparams:
cmsMLUsetASCII(MfgDesc, "en", "US", manufacturer.c_str());
cmsWriteTag(outputProfile, cmsSigDeviceMfgDescTag, MfgDesc);
cmsMLUfree(MfgDesc);
/*
cmsCIEXYZ *red = static_cast<cmsCIEXYZ *>(cmsReadTag(outputProfile, cmsSigRedMatrixColumnTag));
cmsCIEXYZ *green = static_cast<cmsCIEXYZ *>(cmsReadTag(outputProfile, cmsSigGreenMatrixColumnTag));
cmsCIEXYZ *blue = static_cast<cmsCIEXYZ *>(cmsReadTag(outputProfile, cmsSigBlueMatrixColumnTag));
printf("rx=%f gx=%f bx=%f ry=%f gy=%f by=%f rz=%f gz=%f bz=%f\n", red->X, green->X, blue->X, red->Y, green->Y, blue->Y, red->Z, green->Z, blue->Z);
*/
if (icm.wprofile == "v2" || icm.wprofile == "v4") {
cmsSaveProfileToFile(outputProfile, outPro.c_str());

View File

@@ -61,7 +61,8 @@ public:
Glib::ustring srgb; // default name of SRGB space profile
Glib::ustring srgb10; // default name of SRGB space profile
Glib::ustring rec2020; // default name of rec2020
Glib::ustring ACESc; // default name of ACESc
Glib::ustring ACESp0; // default name of ACES P0
Glib::ustring ACESp1; // default name of ACES P1
bool gamutICC; // no longer used
bool gamutLch;

View File

@@ -541,7 +541,8 @@ void Options::setDefaults()
rtSettings.beta = "BetaRGB";
rtSettings.best = "BestRGB";
rtSettings.rec2020 = "RT_Rec2020-V2-srgbtrc";
rtSettings.ACESc = "RT_ACES-V2-srgbtrc";
rtSettings.ACESp0 = "RT_ACES-V2-srgbtrc";
rtSettings.ACESp1 = "RT_acesp1_V4";
rtSettings.verbose = false;
rtSettings.gamutICC = true;
rtSettings.gamutLch = true;