diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-03-26 15:26:59 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-03-26 15:26:59 +0200 |
| commit | 3a6dea9cf60040d6c0a267cbb1cdc9396a074f0c (patch) | |
| tree | b0ca98f6a75c014a1d5ceccc67094bc5ee4982fa /Software/Visual_Studio | |
| parent | 87a45ce1a43f5373e40ce441ea790ff31ba9f27a (diff) | |
| download | Tango-3a6dea9cf60040d6c0a267cbb1cdc9396a074f0c.tar.gz Tango-3a6dea9cf60040d6c0a267cbb1cdc9396a074f0c.zip | |
Fixed color conversion crash on partial light inks.
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. |
