aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-01-28 19:40:35 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-01-28 19:40:35 +0200
commit7e8ff4c3ca798d426eb6f381c5312a747f1bb800 (patch)
treecf9702617f9771412c78294ad742c308007ebce1 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters
parent10eec8df1dfce197b31d51cfa49746b0ce07a5e5 (diff)
downloadTango-7e8ff4c3ca798d426eb6f381c5312a747f1bb800.tar.gz
Tango-7e8ff4c3ca798d426eb6f381c5312a747f1bb800.zip
Implemented all color spaces on segment brushes (simple conversion).
Embedded ColorMine library as a SideChain.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopCMYKToColorConverter.cs53
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopLabToColorConverter.cs52
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopToColorConverter.cs44
3 files changed, 149 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopCMYKToColorConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopCMYKToColorConverter.cs
new file mode 100644
index 000000000..e21da8fbc
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopCMYKToColorConverter.cs
@@ -0,0 +1,53 @@
+using ColorMine.ColorSpaces;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using System.Windows.Media;
+using Tango.DAL.Observables;
+
+namespace Tango.MachineStudio.Developer.Converters
+{
+ public class BrushStopCMYKToColorConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ Cmyk cmyk = new Cmyk();
+
+ cmyk.C = System.Convert.ToDouble(values[0]) / 100d;
+ cmyk.M = System.Convert.ToDouble(values[1]) / 100d;
+ cmyk.Y = System.Convert.ToDouble(values[2]) / 100d;
+ cmyk.K = System.Convert.ToDouble(values[3]) / 100d;
+
+ IRgb rgb = cmyk.ToRgb();
+
+ return Color.FromRgb((byte)rgb.R, (byte)rgb.G, (byte)rgb.B);
+ }
+ catch
+ {
+ return null;
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ Color color = (Color)value;
+ Rgb rgb = new Rgb(color.R, color.G, color.B);
+ Cmyk cmyk = rgb.To<Cmyk>();
+
+ return new object[] { cmyk.C * 100, cmyk.M * 100, cmyk.Y * 100, cmyk.K * 100 };
+ }
+ catch
+ {
+ return null;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopLabToColorConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopLabToColorConverter.cs
new file mode 100644
index 000000000..6c6d7959e
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopLabToColorConverter.cs
@@ -0,0 +1,52 @@
+using ColorMine.ColorSpaces;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using System.Windows.Media;
+using Tango.DAL.Observables;
+
+namespace Tango.MachineStudio.Developer.Converters
+{
+ public class BrushStopLabToColorConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ Lab lab = new Lab();
+
+ lab.L = System.Convert.ToDouble(values[0]);
+ lab.A = System.Convert.ToDouble(values[1]);
+ lab.B = System.Convert.ToDouble(values[2]);
+
+ IRgb rgb = lab.ToRgb();
+
+ return Color.FromRgb((byte)rgb.R, (byte)rgb.G, (byte)rgb.B);
+ }
+ catch
+ {
+ return null;
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ Color color = (Color)value;
+ Rgb rgb = new Rgb(color.R, color.G, color.B);
+ Lab cmyk = rgb.To<Lab>();
+
+ return new object[] { cmyk.L, cmyk.A, cmyk.B };
+ }
+ catch
+ {
+ return null;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopToColorConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopToColorConverter.cs
new file mode 100644
index 000000000..5db8d03c0
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/BrushStopToColorConverter.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using System.Windows.Media;
+using Tango.DAL.Observables;
+
+namespace Tango.MachineStudio.Developer.Converters
+{
+ public class BrushStopToColorConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ double r = System.Convert.ToDouble(values[0]);
+ double g = System.Convert.ToDouble(values[1]);
+ double b = System.Convert.ToDouble(values[2]);
+
+ return Color.FromRgb((byte)r, (byte)g, (byte)b);
+ }
+ catch
+ {
+ return null;
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ Color color = (Color)value;
+ return new object[] { color.R, color.G, color.B };
+ }
+ catch
+ {
+ return null;
+ }
+ }
+ }
+}