From 120165cf7b7f164d7a4e83dfafb79cecbf2998cb Mon Sep 17 00:00:00 2001 From: Victoria Plitt Date: Sun, 24 Jan 2021 08:11:52 +0200 Subject: Created Test project - OutOfGamutTest.CLI. Implement functions in C# GetRecommendedProcessParameters and IsOutOfGamut Related Work Items: #4376 --- .../ColorLib/Tango.ColorLib_v4/ColorConverter.cpp | 5 +- .../Tango.ColorConversion/DefaultColorConverter.cs | 166 +++++++++++++++++- .../Tango.ColorLib.OutOfGamutTest.CLI/App.config | 14 ++ .../ColorFunctionGenerator.cs | 113 ++++++++++++ .../Tango.ColorLib.OutOfGamutTest.CLI/Program.cs | 191 +++++++++++++++++++++ .../Properties/AssemblyInfo.cs | 36 ++++ .../Sylko_HV_IL350R.cct | Bin 0 -> 1660324 bytes .../Sylko_HV_IL400Bl95R_1.cct | Bin 0 -> 1660328 bytes .../Tango.ColorLib.OutOfGamutTest.CLI.csproj | 86 ++++++++++ .../packages.config | 4 + Software/Visual_Studio/Tango.sln | 35 +++- 11 files changed, 636 insertions(+), 14 deletions(-) create mode 100644 Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/App.config create mode 100644 Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/ColorFunctionGenerator.cs create mode 100644 Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Program.cs create mode 100644 Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Properties/AssemblyInfo.cs create mode 100644 Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL350R.cct create mode 100644 Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL400Bl95R_1.cct create mode 100644 Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Tango.ColorLib.OutOfGamutTest.CLI.csproj create mode 100644 Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/packages.config (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 4da243745..5a8a1dbd2 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp @@ -2332,6 +2332,9 @@ size_t Tango::ColorLib::ColorConverter::P_IsInGamut(uint8_t * input_buffer, size //count number if inks int numofInks = 0; int numLightInks = 0; + if (m_colortable == NULL) + m_colortable = new ColorTable(); + CountNumberofInks(conversionInput, numofInks, numLightInks); readColorTransformations(conversionInput); @@ -2339,7 +2342,7 @@ size_t Tango::ColorLib::ColorConverter::P_IsInGamut(uint8_t * input_buffer, size int n_inputliquids = numofInks - numLightInks; InputLiquid **inputliquid = conversionInput->inputcoordinates->inputliquids; //Read CMYK Calibration Tables only. Light Inks have no calibration tables - + readCalibrationTables(inputliquid, n_inputliquids); //Initialize CIECAM02 transformation diff --git a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs index 91f39c503..182ee9aaf 100644 --- a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs +++ b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs @@ -252,11 +252,90 @@ namespace Tango.ColorConversion public bool IsOutOfGamut(BrushStop stop) { - return Convert(stop, false).OutOfGamut; + //return Convert(stop, false).OutOfGamut; + if (stop == null) + { + throw new ArgumentNullException("Specified brush stop is a null reference."); + } + if (stop.Segment == null || stop.Segment.Job == null) + { + throw new ArgumentNullException("The specified brush stop must be a part of a job segment."); + } + + if (stop.Segment.Job.Machine == null || stop.Segment.Job.Machine.Configuration == null) + { + throw new ArgumentNullException("The specified brush stop is associated with a job that is not a part of any machine or the machine does not have any configuration."); + } OutOfGamutInput input = new OutOfGamutInput(); input.ColorSpace = (PMR.ColorLab.ColorSpace)stop.BrushColorSpace; + var rml = stop.Segment.Job.Rml; + if (rml == null) + { + throw new ArgumentNullException("Specified RML is a null reference."); + } + + if (rml.Cct == null || rml.Cct.Data == null) + { + throw new ArgumentNullException("Specified RML CCT data is null."); + } + + Configuration configuration = stop.Segment.Job.Machine.Configuration; + + input.ThreadL = rml.WhitePointL; + input.ThreadA = rml.WhitePointA; + input.ThreadB = rml.WhitePointB; + + input.InputCoordinates = new InputCoordinates(); + + input.InputCoordinates.Red = Math.Max(stop.Red, 1); + input.InputCoordinates.Green = Math.Max(stop.Green, 1); + input.InputCoordinates.Blue = Math.Max(stop.Blue, 1); + + input.InputCoordinates.L = stop.L; + input.InputCoordinates.A = stop.A; + input.InputCoordinates.B = stop.B; + + input.InputCoordinates.Cyan = stop.Cyan; + input.InputCoordinates.Magenta = stop.Magenta; + input.InputCoordinates.Yellow = stop.Yellow; + input.InputCoordinates.Key = stop.Black; + + + input.ForwardData = ByteString.CopyFrom(rml.Cct.Data); + foreach (var prTable in rml.GetActiveProcessGroup().ProcessParametersTables) + { + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = prTable.MinInkUptake, + MaxInkUptake = prTable.MaxInkUptake, + }); + } + foreach (var ids_pack in configuration.GetSupportedIdsPacks(rml)) + { + CalibrationData calibrationData = Cat.CreateDemoCalibrationData((PMR.ColorLab.LiquidType)ids_pack.LiquidType.Code); + + var rml_cat = rml.LiquidTypesRmls.SingleOrDefault(x => x.LiquidType.Code == ids_pack.LiquidType.Code); + + if (rml_cat != null) + { + calibrationData = rml_cat.GetCalibrationData(); + } + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = (PMR.ColorLab.LiquidType)ids_pack.LiquidType.Code, + MaxNanoliterPerCentimeter = ids_pack.LiquidType.LiquidTypesRmls.Single(x => x.Rml == rml).MaxNlPerCm, + Volume = stop.GetVolume(ids_pack.PackIndex), + CalibrationData = calibrationData, + }); + } + + OutOfGamutOutput outOfGamutOutput = IsOutOfGamut( input, 4); + + return outOfGamutOutput.OutOfGamut; + //TODO: Use IsOutOfGamut(OutOfGamutInput input, 4); } @@ -302,26 +381,99 @@ namespace Tango.ColorConversion RecommendedProcessTableInput input = new RecommendedProcessTableInput(); var stops = job.Segments.SelectMany(x => x.BrushStops).Where(x => x.BrushColorSpace != ColorSpaces.Catalog).ToList(); + if (stops.Count == 0) + { + throw new ArgumentOutOfRangeException("THe number of brush stops cannot be zero."); + } + var rml = job.Rml; + if (rml == null) + { + throw new ArgumentNullException("Specified RML is a null reference."); + } + + if (rml.Cct == null || rml.Cct.Data == null) + { + throw new ArgumentNullException("Specified RML CCT data is null."); + } + var configuration = job.Machine.Configuration; + if (configuration == null) + { + throw new ArgumentNullException("Specified machine configuration is a null reference."); + } foreach (var stop in stops) { - input.Stops.Add(new GradientInputStop() - { + GradientInputStop istop = new GradientInputStop(); + istop.ColorSpace = (PMR.ColorLab.ColorSpace)stop.ColorSpace.Code; + istop.Offset = stop.OffsetPercent / 100d; + istop.L = stop.L; + istop.A = stop.A; + istop.B = stop.B; + istop.Red = stop.Red; + istop.Green = stop.Green; + istop.Blue = stop.Blue; + istop.Cyan = stop.Cyan; + istop.Magenta = stop.Magenta; + istop.Yellow = stop.Yellow; + istop.Key = stop.Black; + foreach (var liquidVolume in stop.LiquidVolumesOrderedPigmented) + { + istop.LiquidVolumes.Add(new PMR.ColorLab.LiquidVolume() + { + LiquidType = (PMR.ColorLab.LiquidType)liquidVolume.LiquidType, + Volume = liquidVolume.Volume + }); + } + input.Stops.Add(istop); + } + input.ThreadL = rml.WhitePointL; + input.ThreadA = rml.WhitePointA; + input.ThreadB = rml.WhitePointB; + input.ForwardData = ByteString.CopyFrom(rml.Cct.Data); + foreach (var prTable in rml.GetActiveProcessGroup().ProcessParametersTables) + { + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = prTable.MinInkUptake, + MaxInkUptake = prTable.MaxInkUptake, }); } - RecommendedProcessTableOutput output = GetRecommendedProcessParameters(input, job.Rml.ColorConversionVersion); + foreach (var ids_pack in configuration.GetSupportedIdsPacks(rml)) + { + CalibrationData calibrationData = Cat.CreateDemoCalibrationData((PMR.ColorLab.LiquidType)ids_pack.LiquidType.Code); + + var rml_cat = rml.LiquidTypesRmls.SingleOrDefault(x => x.LiquidType.Code == ids_pack.LiquidType.Code); - var catalogIndex = job.Segments.SelectMany(x => x.BrushStops).Where(x => x.BrushColorSpace == ColorSpaces.Catalog).Max(x => x.ColorCatalogsItem.ProcessParametersTableIndex); + if (rml_cat != null) + { + calibrationData = rml_cat.GetCalibrationData(); + } + + input.InputLiquids.Add(new InputLiquid() + { + LiquidType = (PMR.ColorLab.LiquidType)ids_pack.LiquidType.Code, + MaxNanoliterPerCentimeter = ids_pack.LiquidType.LiquidTypesRmls.Single(x => x.Rml == rml).MaxNlPerCm, + CalibrationData = calibrationData, + }); + } - var maxIndex = Math.Max(output.ProcessParametersTableIndex, catalogIndex); + RecommendedProcessTableOutput output = GetRecommendedProcessParameters(input, job.Rml.ColorConversionVersion); + var maxIndex = output.ProcessParametersTableIndex; + var catalogBrushStops = job.Segments.SelectMany(x => x.BrushStops).Where(x => x.BrushColorSpace == ColorSpaces.Catalog); + if(catalogBrushStops.Count() > 0) + { + var catalogIndex = catalogBrushStops.Max(x => x.ColorCatalogsItem.ProcessParametersTableIndex); + maxIndex = Math.Max(output.ProcessParametersTableIndex, catalogIndex); + } + var processTable = group.ProcessParametersTables.FirstOrDefault(x => x.TableIndex == maxIndex); if (processTable == null) { - //Handle + processTable = group.ProcessParametersTables.FirstOrDefault(); } return processTable; diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/App.config b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/App.config new file mode 100644 index 000000000..332e7dbda --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/App.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/ColorFunctionGenerator.cs b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/ColorFunctionGenerator.cs new file mode 100644 index 000000000..f6d560652 --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/ColorFunctionGenerator.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.Helpers; +using Tango.PMR; +using Tango.PMR.ColorLab; + +namespace Tango.ColorLib.OutOfGamutTest.CLI +{ + public class ColorFunctionGenerator + { + static class NativeMethods + { + [DllImport("kernel32.dll")] + public static extern IntPtr LoadLibrary(string dllToLoad); + + [DllImport("kernel32.dll")] + public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName); + + [DllImport("kernel32.dll")] + public static extern bool FreeLibrary(IntPtr hModule); + } + + public OutOfGamutOutput CheckOutOfGamut(OutOfGamutInput input) + { + String fileName = $"{AssemblyHelper.GetCurrentAssemblyFolder()}\\Tango.ColorLib_v4.dll"; + + if (!File.Exists(fileName)) + { + throw new FileNotFoundException($"Could not find color conversion library '{fileName}'."); + } + + IntPtr pDll = NativeMethods.LoadLibrary(fileName); + IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "CheckOutOfGamut"); + NativeMethodDelegate generateIsOutOfGamut = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer( + pAddressOfFunctionToCall, + typeof(NativeMethodDelegate)); + + NativePMR nativePMR = new NativePMR(generateIsOutOfGamut); + OutOfGamutOutput output = nativePMR.Invoke(input); + + bool result = NativeMethods.FreeLibrary(pDll); + + if (output.HasError) + { + throw new ExternalException($"Out Of Gamut Check Error: {output.ErrorMessage}!"); + } + + return output; + } + + public ConversionOutput P_IsInGamut(ConversionInput input) + { + String fileName = $"{AssemblyHelper.GetCurrentAssemblyFolder()}\\Tango.ColorLib_v4.dll"; + + if (!File.Exists(fileName)) + { + throw new FileNotFoundException($"Could not find color conversion library '{fileName}'."); + } + + IntPtr pDll = NativeMethods.LoadLibrary(fileName); + IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "P_IsInGamut"); + NativeMethodDelegate generateIsOutOfGamut = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer( + pAddressOfFunctionToCall, + typeof(NativeMethodDelegate)); + + NativePMR nativePMR = new NativePMR(generateIsOutOfGamut); + ConversionOutput output = nativePMR.Invoke(input); + + bool result = NativeMethods.FreeLibrary(pDll); + if (output.HasError) + { + throw new ExternalException($"Out Of Gamut Check Error: {output.ErrorMessage}!"); + } + + return output; + } + + public RecommendedProcessTableOutput GetRecommendedProcessParameters(RecommendedProcessTableInput input, int version) + { + if (version < 4) version = 4; + + String fileName = $"{AssemblyHelper.GetCurrentAssemblyFolder()}\\Tango.ColorLib_v{version}.dll"; + + if (!File.Exists(fileName)) + { + throw new FileNotFoundException($"Could not find color conversion library '{fileName}'."); + } + + IntPtr pDll = NativeMethods.LoadLibrary(fileName); + IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "GetRecommendedProcessParameters"); + NativeMethodDelegate convert = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer( + pAddressOfFunctionToCall, + typeof(NativeMethodDelegate)); + + NativePMR nativePMR = new NativePMR(convert); + RecommendedProcessTableOutput output = nativePMR.Invoke(input); + + bool result = NativeMethods.FreeLibrary(pDll); + + if (output.HasError) + { + throw new ExternalException($"Recommended Process Parameters Calculation Error: {output.ErrorMessage}!"); + } + + return output; + } + } +} diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Program.cs b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Program.cs new file mode 100644 index 000000000..8628f5b4e --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Program.cs @@ -0,0 +1,191 @@ +using Google.Protobuf; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Tango.Core.ExtensionMethods; +using Tango.PMR.ColorLab; + +namespace Tango.ColorLib.OutOfGamutTest.CLI +{ + class Program + { + public static Random _s_random = new Random(); + static void Main(string[] args) + { + ColorFunctionGenerator generator = new ColorFunctionGenerator(); + + Stopwatch watch = new Stopwatch(); + //watch.Start(); + //for (int i = 0; i < 200; i++) + //{ + // bool result = CheckOutOfGamut(generator); + //} + //watch.Stop(); + // Console.WriteLine($"Processing CheckOutOfGamut for 200 brush stops completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds."); + // Console.WriteLine(); + watch.Start(); + for (int i = 0; i < 200; i++) + { + bool result = IsInGamut(generator); + } + watch.Stop(); + Console.WriteLine($"Processing IsInGamut for 200 brush stops completed after: {watch.Elapsed.Milliseconds.ToString()} milliseconds."); + Console.WriteLine(); + + Console.WriteLine("Press return to exit..."); + Console.ReadLine(); + } + + public static bool CheckOutOfGamut(ColorFunctionGenerator generator) + { + OutOfGamutInput input = new OutOfGamutInput(); + + input.ThreadL = 92.7867; + input.ThreadA = -0.2519; + input.ThreadB = 0.6968; + + input.ColorSpace = PMR.ColorLab.ColorSpace.Rgb; + input.InputCoordinates = new InputCoordinates(); + + input.InputCoordinates.Red = _s_random.Next(0, 255); + input.InputCoordinates.Green = _s_random.Next(0, 255); + input.InputCoordinates.Blue = _s_random.Next(0, 255); + + //input.InputCoordinates.L = stop.L; + //input.InputCoordinates.A = stop.A; + //input.InputCoordinates.B = stop.B; + + //input.InputCoordinates.Cyan = stop.Cyan; + //input.InputCoordinates.Magenta = stop.Magenta; + //input.InputCoordinates.Yellow = stop.Yellow; + //input.InputCoordinates.Key = stop.Black; + + //Process Ranges + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = 200, + MaxInkUptake = 200, + }); + + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = 200, + MaxInkUptake = 400, + }); + + input.ForwardData = ByteString.CopyFrom(File.ReadAllBytes(@"Sylko_HV_IL350R.cct")); + + //RML Liquid Factors + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Cyan, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Cyan), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Magenta, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Magenta), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Yellow, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Yellow), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Black, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Black), + MaxNanoliterPerCentimeter = 200, + }); + + OutOfGamutOutput outOfGamutOutput = generator.CheckOutOfGamut(input); + + return outOfGamutOutput.OutOfGamut; + } + + public static bool IsInGamut(ColorFunctionGenerator generator) + { + ConversionInput input = new ConversionInput(); + + input.ThreadL = 92.7867; + input.ThreadA = -0.2519; + input.ThreadB = 0.6968; + + input.ColorSpace = PMR.ColorLab.ColorSpace.Rgb; + input.InputCoordinates = new InputCoordinates(); + + input.InputCoordinates.Red = _s_random.Next(0, 255); + input.InputCoordinates.Green = _s_random.Next(0, 255); + input.InputCoordinates.Blue = _s_random.Next(0, 255); + + //input.InputCoordinates.L = stop.L; + //input.InputCoordinates.A = stop.A; + //input.InputCoordinates.B = stop.B; + + //input.InputCoordinates.Cyan = stop.Cyan; + //input.InputCoordinates.Magenta = stop.Magenta; + //input.InputCoordinates.Yellow = stop.Yellow; + //input.InputCoordinates.Key = stop.Black; + + //Process Ranges + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = 200, + MaxInkUptake = 200, + }); + + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = 200, + MaxInkUptake = 400, + }); + + input.ForwardData = ByteString.CopyFrom(File.ReadAllBytes(@"Sylko_HV_IL350R.cct")); + + //RML Liquid Factors + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Cyan, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Cyan), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Magenta, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Magenta), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Yellow, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Yellow), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Black, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Black), + MaxNanoliterPerCentimeter = 200, + }); + input.GenerateHive = false; + + ConversionOutput outOfGamutOutput = generator.P_IsInGamut(input); + + return outOfGamutOutput.OutOfGamut; + } + } +} diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..eee4cc680 --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango.ColorLib.OutOfGamutTest.CLI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tango.ColorLib.OutOfGamutTest.CLI")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6b13e186-ade2-4d97-9643-8132e00fc207")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL350R.cct b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL350R.cct new file mode 100644 index 000000000..d164d7c84 Binary files /dev/null and b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL350R.cct differ diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL400Bl95R_1.cct b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL400Bl95R_1.cct new file mode 100644 index 000000000..5802a14eb Binary files /dev/null and b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL400Bl95R_1.cct differ diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Tango.ColorLib.OutOfGamutTest.CLI.csproj b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Tango.ColorLib.OutOfGamutTest.CLI.csproj new file mode 100644 index 000000000..0080143e5 --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Tango.ColorLib.OutOfGamutTest.CLI.csproj @@ -0,0 +1,86 @@ + + + + + Debug + AnyCPU + {6B13E186-ADE2-4D97-9643-8132E00FC207} + Exe + Tango.ColorLib.OutOfGamutTest.CLI + Tango.ColorLib.OutOfGamutTest.CLI + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + + + 3.4.1 + + + + + Tango.ColorLib_v4.dll + PreserveNewest + + + + + {f441feee-322a-4943-b566-110e12fd3b72} + Tango.BL + + + {a34ee0f0-649d-41c8-8489-b6f1cc6924ee} + Tango.Core + + + {e4927038-348d-4295-aaf4-861c58cb3943} + Tango.PMR + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/packages.config b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/packages.config new file mode 100644 index 000000000..fa3c0d58d --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index 655c00e56..c318d0e60 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -461,6 +461,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.StubsUtils.ProcedureC EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.CsvToJobTester.CLI", "Utilities\Tango.CsvToJobTester.CLI\Tango.CsvToJobTester.CLI.csproj", "{4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ColorLib.OutOfGamutTest.CLI", "Tango.ColorLib.OutOfGamutTest.CLI\Tango.ColorLib.OutOfGamutTest.CLI.csproj", "{6B13E186-ADE2-4D97-9643-8132E00FC207}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -4376,6 +4378,26 @@ Global {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release|x64.Build.0 = Release|Any CPU {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release|x86.ActiveCfg = Release|Any CPU {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release|x86.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|ARM.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|ARM64.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x64.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x64.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x86.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x86.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|Any CPU.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|ARM.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|ARM.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|ARM64.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|ARM64.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|x64.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|x64.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|x86.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4538,14 +4560,15 @@ Global {5C9A4F46-263D-4C23-B361-F09E14BB109E} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {6B13E186-ADE2-4D97-9643-8132E00FC207} = {8336A702-9C49-4C9E-ADCC-1886A666D3BD} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} - BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear - BuildVersion_UpdateAssemblyVersion = True - BuildVersion_UpdateFileVersion = False - BuildVersion_StartDate = 2000/1/1 - BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs BuildVersion_UseGlobalSettings = False + BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs + BuildVersion_StartDate = 2000/1/1 + BuildVersion_UpdateFileVersion = False + BuildVersion_UpdateAssemblyVersion = True + BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear + SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} EndGlobalSection EndGlobal -- cgit v1.3.1