diff --git a/rtengine/iccmatrices.h b/rtengine/iccmatrices.h index d20cb70c3..29426c62d 100644 --- a/rtengine/iccmatrices.h +++ b/rtengine/iccmatrices.h @@ -80,15 +80,15 @@ constexpr double xyz_sRGB[3][3] = { }; constexpr double xyz_ACESp0[3][3] = { - {0.9525523959, 0.0, 0.0000936786}, - {0.3439664498, 0.7281660966 , -0.0721325464}, - {0.0, -0.0, 1.0088251844} + {0.9908526, 0.0122334, -0.0388654}, + {0.3618807, 0.72255045 , -0.0843859}, + {-0.0027093, 0.0082323, 0.8196880} }; constexpr double ACESp0_xyz[3][3] = { - {1.0498110175, 0.0, -0.0000974845}, - {-0.4959030231, 1.3733130458 , 0.0982400361}, - {0.0, 0.0, 0.9912520182} + {1.01583320, -0.01772807, 0.04634052}, + {-0.50781231, 1.39131494 , 0.11915641}, + {0.00845768, -0.01403193, 1.21893277} }; constexpr double xyz_ACESp1[3][3] = { diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index cab77c8ab..c4707f16f 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -602,6 +602,10 @@ Imagefloat* ImProcFunctions::workingtrc(Imagefloat* working, int cw, int ch, int // 7 parameters for smoother curves cmsWhitePointFromTemp(&xyD, (double)temp); + if (profile == "ACESp0") { + xyD = {0.32168, 0.33767, 1.0};//refine white point to avoid differences + } + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(NULL, five, gammaParams);//5 = more smoother than 4 oprofdef = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); cmsFreeToneCurve(GammaTRC[0]); diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index a61f0e80d..8ae8d4ab9 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -117,7 +117,7 @@ ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) setExpandAlignProperties(aPrimariesGreenY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); aPrimariesBlueX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUX"), 0.0001, 0.1600, 0.0001, 0.1500/*, gamutl4, gamuts4*/)); setExpandAlignProperties(aPrimariesBlueX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - aPrimariesBlueY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUY"), -0.0700, 0.0700, 0.0001, 0.060/*, gamutl5, gamuts5*/)); + aPrimariesBlueY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUY"), -0.0800, 0.0700, 0.0001, 0.060/*, gamutl5, gamuts5*/)); setExpandAlignProperties(aPrimariesBlueY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); primariesGrid->attach(*aPrimariesRedX, 0, 0, 1, 1);