aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2025-03-26 15:26:59 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2025-03-26 15:26:59 +0200
commit3a6dea9cf60040d6c0a267cbb1cdc9396a074f0c (patch)
treeb0ca98f6a75c014a1d5ceccc67094bc5ee4982fa /Software/Visual_Studio
parent87a45ce1a43f5373e40ce441ea790ff31ba9f27a (diff)
downloadTango-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.cs28
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.