diff options
Diffstat (limited to 'Software/Visual_Studio')
| -rw-r--r-- | Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs index c8ca242e7..c801d51fc 100644 --- a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs +++ b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs @@ -18,6 +18,7 @@ using Tango.Core.Helpers; using Tango.Settings; using Tango.ColorConversion.ColorBlending; using Tango.BL.Dispensing; +using Tango.Core.ExtensionMethods; namespace Tango.ColorConversion { @@ -51,6 +52,7 @@ namespace Tango.ColorConversion ConversionOutput output = new ConversionOutput(); TransformConversionInput(input); + var normalizedInput = PerformLightInksSafety(input); IntPtr pDll = NativeMethods.LoadLibrary(fileName); IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "Convert"); @@ -59,7 +61,8 @@ namespace Tango.ColorConversion typeof(NativeMethodDelegate)); NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(convert); - output = nativePMR.Invoke(input); + + output = nativePMR.Invoke(normalizedInput); bool result = NativeMethods.FreeLibrary(pDll); @@ -75,6 +78,29 @@ namespace Tango.ColorConversion #region Convert Transform + private ConversionInput PerformLightInksSafety(ConversionInput input) + { + if (!input.UseLightInks) + { + var easyInput = input.Clone(); + + foreach (var inputLiquid in easyInput.InputCoordinates.InputLiquids.ToList()) + { + if (inputLiquid.LiquidType != PMR.ColorLab.LiquidType.Cyan && + inputLiquid.LiquidType != PMR.ColorLab.LiquidType.Magenta && + inputLiquid.LiquidType != PMR.ColorLab.LiquidType.Yellow && + inputLiquid.LiquidType != PMR.ColorLab.LiquidType.Black) + { + easyInput.InputCoordinates.InputLiquids.Remove(inputLiquid); + } + } + + return easyInput; + } + + return input; + } + private void TransformConversionInput(ConversionInput input) { //Make sure all liquid types exists in the conversion input before converting so the color engine won't fail. |
