From ceb4f5fe57f32ea785b99d943f463caae2f4ee67 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Tue, 1 Jun 2021 09:16:19 +0300 Subject: Mirta: Color conversion Fix. --- .../ColorLib/Tango.ColorLib_v4/ColorConverter.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'Software/Visual_Studio') diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp index 4aa691c78..ff71443fe 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp @@ -4655,7 +4655,7 @@ void Tango::ColorLib::ColorConverter::SplitVolume(VectorXd Volume, VectorXd &Vol { if ((VolumeNoLI(i) >= low) & (VolumeNoLI(i) <= high)) { - VolumeLI(i + m_nInks) = DilutionFactor * VolumeNoLI(i); + VolumeLI(i + m_nInks) = DilutionFactor * VolumeNoLI(i); VolumeLI(i) = 0.0; } else @@ -4877,6 +4877,7 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t VectorXd LabOut(3); VectorXd NLInkOut(m_nInks); VectorXd Volume(m_nInks); + VectorXd Volume_nlcm(m_nInks); VectorXd VolumeLi(m_TotalNumberofInks); VectorXd VolumeOut(m_nInks); //set maxNlPerCM @@ -4932,7 +4933,7 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t colorspace = Input->stops[istops]->colorspace; if (Input->stops[istops]->colorspace == COLOR_SPACE__Volume) { - //Assumption: Input is given without light iks + //Assumption: Input is given without light inks //The volumes are given in Thread units in % m_currentMaxNLPerCM = m_maxNlPerCM; for (int iP = 0; iP < m_nProcessRanges; ++iP) @@ -4941,15 +4942,19 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t m_CurrentProcessRangesMin[iP] = m_ProcessRangesMinP[iP]; } for (int jV = 0; jV < m_nInks; ++jV) + { Volume(jV) = inputcoordinates[istops]->inputliquids[jV]->volume; //volumes are in [%] - + Volume_nlcm(jV) = m_maxNlPerCM(jV)*Volume(jV) / 100.0; //Volume_nlcm is in [nl/cm] + } if (Input->uselightinks) { //Convert to light inks + GamutRegion[istops] = GetGamutRegion(Volume_nlcm, m_CurrentProcessRangesMax);//Volume is in [nl/cm] SplitVolume(Volume, VolumeLi, GamutRegion[istops]); //VolumeLi is in [%] } else { - GamutRegion[istops] = GetGamutRegion(Volume, m_CurrentProcessRangesMax);//Volume is in [%] + + GamutRegion[istops] = GetGamutRegion(Volume_nlcm, m_CurrentProcessRangesMax);//Volume is in [nl/cm] } } else if (Input->stops[istops]->colorspace == COLOR_SPACE__Catalog) @@ -4977,7 +4982,11 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t IC->inputliquids[3]->has_volume = IC->has_key; for (int jV = 0; jV < m_nInks; ++jV) + { Volume(jV) =IC->inputliquids[jV]->volume; + Volume_nlcm(jV) = m_maxNlPerCM(jV)*Volume(jV) / 100.0; //Volume_nlcm is in [nl/cm] + } + m_currentMaxNLPerCM = m_CTmaxNlPerCM; for (int iP = 0; iP < m_nProcessRanges; ++iP) { @@ -4986,11 +4995,12 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t } if (Input->uselightinks) { //Convert to light inks + GamutRegion[istops] = GetGamutRegion(Volume_nlcm, m_CurrentProcessRangesMax);//Volume_nlcm is in [nl/cm] SplitVolume(Volume, VolumeLi, GamutRegion[istops]); //VolumeLi is in [%] } else { - GamutRegion[istops] = GetGamutRegion(Volume, m_GamutRegionMaxLim); //Volume is in [%] + GamutRegion[istops] = GetGamutRegion(Volume_nlcm, m_GamutRegionMaxLim); //Volume_nlcm is in [nl/cm] } } else -- cgit v1.3.1