/// <summary> /// Create a new dye. /// </summary> /// <param name="name"></param> /// <param name="baseColor"></param> /// <param name="clothColor"></param> /// <param name="leatherColor"></param> /// <param name="metalColor"></param> public Dye(DyeSet parent, string name, int code, ColorRGB baseColor, ColorRGB clothColor, ColorRGB leatherColor, ColorRGB metalColor) { this.parent = parent; Name = name; Code = code; BaseColor = baseColor; ClothColor = clothColor; LeatherColor = leatherColor; MetalColor = metalColor; var cc = new ColorConverter(); var lab = cc.ToLab(MetalColor); }
private void Convert_Button_Click(object sender, EventArgs e) { switch (((Button)sender).Name) { case "RGB_Button": try { if (RGBSpace != RGBSpaceName.ICC) ColRGB = new ColorRGB(RGBSpace, RGB[0], RGB[1], RGB[2]); else ColRGB = new ColorRGB(RGB_ICC, RGB[0], RGB[1], RGB[2]); Conversion(ColRGB); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "XYZ_Button": try { ColXYZ = new ColorXYZ(XYZwp, XYZ[0], XYZ[1], XYZ[2]); Conversion(ColXYZ); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "Lab_Button": try { ColLab = new ColorLab(Labwp, Lab[0], Lab[1], Lab[2]); Conversion(ColLab); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "Luv_Button": try { ColLuv = new ColorLuv(Luvwp, Luv[0], Luv[1], Luv[2]); Conversion(ColLuv); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "Yxy_Button": try { ColYxy = new ColorYxy(Yxywp, Yxy[0], Yxy[1], Yxy[2]); Conversion(ColYxy); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "LCHab_Button": try { ColLCHab = new ColorLCHab(LCHabwp, LCHab[0], LCHab[1], LCHab[2]); Conversion(ColLCHab); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "LCHuv_Button": try { ColLCHuv = new ColorLCHuv(LCHuvwp, LCHuv[0], LCHuv[1], LCHuv[2]); Conversion(ColLCHuv); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "LCH99_Button": try { ColLCH99 = new ColorLCH99(LCH99[0], LCH99[1], LCH99[2]); Conversion(ColLCH99); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "LCH99b_Button": try { ColLCH99b = new ColorLCH99b(LCH99b[0], LCH99b[1], LCH99b[2]); Conversion(ColLCH99b); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "LCH99c_Button": try { ColLCH99c = new ColorLCH99c(LCH99c[0], LCH99c[1], LCH99c[2]); Conversion(ColLCH99c); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "LCH99d_Button": try { ColLCH99d = new ColorLCH99d(LCH99d[0], LCH99d[1], LCH99d[2]); Conversion(ColLCH99d); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "HSV_Button": try { if (HSVSpace != RGBSpaceName.ICC) ColHSV = new ColorHSV(HSVSpace, HSV[0], HSV[1], HSV[2]); else ColHSV = new ColorHSV(HSV_ICC, HSV[0], HSV[1], HSV[2]); Conversion(ColHSV); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "HSL_Button": try { if (HSLSpace != RGBSpaceName.ICC) ColHSL = new ColorHSL(HSLSpace, HSL[0], HSL[1], HSL[2]); else ColHSL = new ColorHSL(HSL_ICC, HSL[0], HSL[1], HSL[2]); Conversion(ColHSL); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "CMY_Button": try { ColCMY = new ColorCMY(CMY_ICC, CMY[0], CMY[1], CMY[2]); Conversion(ColCMY); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "CMYK_Button": try { ColCMYK = new ColorCMYK(CMYK_ICC, CMYK[0], CMYK[1], CMYK[2], CMYK[3]); Conversion(ColCMYK); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "Gray_Button": try { if (Gray_ICC != null) ColGray = new ColorGray(Gray_ICC, Gray[0]); else ColGray = new ColorGray(Gray[0]); Conversion(ColGray); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "YCbCr_Button": try { if (YCbCrSpace == YCbCrSpaceName.ICC) ColYCbCr = new ColorYCbCr(YCbCr_ICC, YCbCr[0], YCbCr[1], YCbCr[2]); else ColYCbCr = new ColorYCbCr(YCbCrSpace, YCbCr[0], YCbCr[1], YCbCr[2]); Conversion(ColYCbCr); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "XColor_Button": try { ColX = new ColorX(XColor_ICC, XColor.Take(XColor_Channels).ToArray()); Conversion(ColX); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "DEF_Button": try { ColDEF = new ColorDEF(DEFwp, DEF[0], DEF[1], DEF[2]); Conversion(ColDEF); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "Bef_Button": try { ColBef = new ColorBef(Befwp, Bef[0], Bef[1], Bef[2]); Conversion(ColBef); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; case "BCH_Button": try { ColBCH = new ColorBCH(BCHwp, BCH[0], BCH[1], BCH[2]); Conversion(ColBCH); } catch (FormatException) { MessageBox.Show("Not a number!"); } catch (Exception ex) { MessageBox.Show("Error:" + Environment.NewLine + ex.Message); } break; } }
private void Conversion(Color inColor) { Color inColor2 = inColor; if (inColor.IsICCcolor && !inColor.IsPCScolor) { inColor2 = Converter.ToICC(inColor); } if (inColor.Model != ColorModel.CIEXYZ) ColXYZ = Converter.ToXYZ(inColor2, XYZwp); if (inColor.Model != ColorModel.CIELab) ColLab = Converter.ToLab(inColor2, Labwp); if (inColor.Model != ColorModel.CIELuv) ColLuv = Converter.ToLuv(inColor2, Luvwp); if (inColor.Model != ColorModel.CIELCHab) ColLCHab = Converter.ToLCHab(inColor2, LCHabwp); if (inColor.Model != ColorModel.CIELCHuv) ColLCHuv = Converter.ToLCHuv(inColor2, LCHuvwp); if (inColor.Model != ColorModel.CIEYxy) ColYxy = Converter.ToYxy(inColor2, Yxywp); if (inColor.Model != ColorModel.LCH99) ColLCH99 = Converter.ToLCH99(inColor2); if (inColor.Model != ColorModel.LCH99b) ColLCH99b = Converter.ToLCH99b(inColor2); if (inColor.Model != ColorModel.LCH99c) ColLCH99c = Converter.ToLCH99c(inColor2); if (inColor.Model != ColorModel.LCH99d) ColLCH99d = Converter.ToLCH99d(inColor2); if (inColor.Model != ColorModel.DEF) ColDEF = Converter.ToDEF(inColor2); if (inColor.Model != ColorModel.Bef) ColBef = Converter.ToBef(inColor2); if (inColor.Model != ColorModel.BCH) ColBCH = Converter.ToBCH(inColor2); if (inColor.Model != ColorModel.RGB) { if (RGBSpace != RGBSpaceName.ICC) ColRGB = Converter.ToRGB(inColor2, RGBSpace); else ColRGB = (ColorRGB)Converter.ToICC(Converter.ToICC_PCS(inColor2, RGB_ICC), RGB_ICC); } if (inColor.Model != ColorModel.HSV) { if (HSVSpace != RGBSpaceName.ICC) ColHSV = Converter.ToHSV(inColor2, HSVSpace); else ColHSV = (ColorHSV)Converter.ToICC(Converter.ToICC_PCS(inColor2, HSV_ICC), HSV_ICC); } if (inColor.Model != ColorModel.HSL) { if (HSLSpace != RGBSpaceName.ICC) ColHSL = Converter.ToHSL(inColor2, HSLSpace); else ColHSL = (ColorHSL)Converter.ToICC(Converter.ToICC_PCS(inColor2, HSL_ICC), HSL_ICC); } if (inColor.Model != ColorModel.CMY && CMY_ICC != null) ColCMY = (ColorCMY)Converter.ToICC(Converter.ToICC_PCS(inColor2, CMY_ICC), CMY_ICC); if (inColor.Model != ColorModel.CMYK && CMYK_ICC != null) ColCMYK = (ColorCMYK)Converter.ToICC(Converter.ToICC_PCS(inColor2, CMYK_ICC), CMYK_ICC); if (inColor.Model != ColorModel.YCbCr) { if (YCbCrSpace != YCbCrSpaceName.ICC) ColYCbCr = Converter.ToYCbCr(inColor2, YCbCrSpace); else ColYCbCr = (ColorYCbCr)Converter.ToICC(Converter.ToICC_PCS(inColor2, YCbCr_ICC), YCbCr_ICC); } if (inColor.Model != ColorModel.Gray) { if (CMY_ICC != null) ColGray = (ColorGray)Converter.ToICC(Converter.ToICC_PCS(inColor2, Gray_ICC), Gray_ICC); else ColGray = Converter.ToGray(inColor2); } if (!IsXColor(inColor.Model) && XColor_ICC != null) ColX = (ColorX)Converter.ToICC(Converter.ToICC_PCS(inColor2, XColor_ICC), XColor_ICC); FillFields(); }
private void ColorPanel_MouseClick(object sender, MouseEventArgs e) { if (ColorSelectDialog.ShowDialog() == DialogResult.OK) { if (ColRGB == null) { if (RGBSpace != RGBSpaceName.ICC) ColRGB = new ColorRGB(RGBSpace); else ColRGB = new ColorRGB(RGB_ICC); } ColRGB.R = ColorSelectDialog.Color.R / 255d; ColRGB.G = ColorSelectDialog.Color.G / 255d; ColRGB.B = ColorSelectDialog.Color.B / 255d; RGB_R.Text = ColRGB.R.ToString("n4"); RGB_G.Text = ColRGB.G.ToString("n4"); RGB_B.Text = ColRGB.B.ToString("n4"); ColorPanel.BackColor = ColorSelectDialog.Color; Hex_Label.Text = "Hex: #" + Convert.ToString(ColorSelectDialog.Color.R, 16).PadLeft(2, '0') + Convert.ToString(ColorSelectDialog.Color.G, 16).PadLeft(2, '0') + Convert.ToString(ColorSelectDialog.Color.B, 16).PadLeft(2, '0'); RGB_Label.Text = "R: " + ColorSelectDialog.Color.R + " G: " + ColorSelectDialog.Color.G + " B: " + ColorSelectDialog.Color.B; } }
private static void AddKeyPress(int vkCode) { Debug.WriteLine("AddKeyPress at " + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Second.ToString() + ":" + DateTime.Now.Millisecond.ToString()); KeysConverter kc = new KeysConverter(); string keyChar = kc.ConvertToString(vkCode).ToUpper(); string keyOut = ""; switch (keyChar) { case "1": keyOut = "ONE"; break; case "2": keyOut = "TWO"; break; case "3": keyOut = "THREE"; break; case "4": keyOut = "FOUR"; break; case "5": keyOut = "FIVE"; break; case "6": keyOut = "SIX"; break; case "7": keyOut = "SEVEN"; break; case "8": keyOut = "EIGHT"; break; case "9": keyOut = "NINE"; break; case "0": keyOut = "ZERO"; break; default: keyOut = keyChar; break; } try { //KeyCodes.ScanCode code = (KeyCodes.ScanCode)Enum.Parse(typeof(KeyCodes.ScanCode), keyOut); var query = from KeyCodes.keyPosition k in KeyCodes.keypositions where k.keyname == keyOut //(int)code select k; centroid c = new centroid(); c.point = new Point((int)query.First().x, (int)query.First().y); c.countup = 1; System.Drawing.Color c1 = Form1.m_startColour; System.Drawing.Color c2 = Form1.m_endColour; if (Form1.randomColours) { Random rndcol = new Random(); c1 = System.Drawing.Color.FromArgb(rndcol.Next(30, 255), rndcol.Next(30, 255), rndcol.Next(30, 255)); c2 = System.Drawing.Color.FromArgb(rndcol.Next(30, 255), rndcol.Next(30, 255), rndcol.Next(30, 255)); } ColorManagment.ColorConverter Converter = new ColorManagment.ColorConverter(); //create a new instance of a ColorConverter ColorRGB rgb1 = new ColorRGB(RGBSpaceName.sRGB, c1.R, c1.G, c1.B); //create an RGB color c.lab1 = Converter.ToLab(rgb1); ColorRGB rgb2 = new ColorRGB(RGBSpaceName.sRGB, c2.R, c2.G, c2.B); //create an RGB color c.lab2 = Converter.ToLab(rgb2); if (centroids.Count > 0) { for (int i = centroids.Count-1; i > -1; i--) { Debug.WriteLine(i); if (centroids[i].point == c.point) { centroids.RemoveAt(i); break; } } } centroids.Add(c); //DoAnimation(); } catch (Exception ex) { Debug.WriteLine("AddKeyPress: handled exception: " + ex.Message); } }
void bw_Keysave_DoWork(object sender, DoWorkEventArgs e) { LogitechGSDK.LogiLedSetLighting(0, 0, 0); DateTime inittime = DateTime.Now; int counter = 0; List<keysavePoint> points = new List<keysavePoint> { }; Random rnd = new Random(); while (true) { if (bw_Keysave.CancellationPending) return; TimeSpan elapsed = DateTime.Now - inittime; if (elapsed.TotalMilliseconds > 500) //change this namber to change speed new stars appear { //for (int c = 0; c < 2; c++) //{ int newx = rnd.Next(0,20); int newy = rnd.Next(0, 5); keysavePoint kp = new keysavePoint(); kp.point = new Point(newx, newy); kp.counter = 0; points.Add(kp); //} //Console.Write("."); inittime = DateTime.Now; } if (counter > 4) //change this number to change speed stars change { counter = 0; System.Drawing.Color c1 = Form1.m_startColour; System.Drawing.Color c2 = Form1.m_endColour; int fadespeed = Form1.m_fadespeed; int gradientspeed = Form1.m_gradientspeed; ColorManagment.ColorConverter Converter = new ColorManagment.ColorConverter(); //create a new instance of a ColorConverter ColorRGB rgb1 = new ColorRGB(RGBSpaceName.sRGB, c1.R, c1.G, c1.B); //create an RGB color ColorLab lab1 = Converter.ToLab(rgb1); ColorRGB rgb2 = new ColorRGB(RGBSpaceName.sRGB, c2.R, c2.G, c2.B); //create an RGB color ColorLab lab2 = Converter.ToLab(rgb2); bmp = new Bitmap(21, 6); LockBitmap lockBitmap = new LockBitmap(bmp); lockBitmap.LockBits(); for (int x = 0; x < 21; x++) for (int y = 0; y < 6; y++) { distances[x, y] = double.MaxValue; times[x, y] = int.MaxValue; } for (int i = 0; i < points.Count; i++) { keysavePoint c = points[i]; for (int x = 0; x < 21; x++) for (int y = 0; y < 6; y++) { double distance = Math.Sqrt(((x - c.point.X) * (x - c.point.X) + (y - c.point.Y) * (y - c.point.Y))); distance = Math.Abs(distance) / (Form1.m_distanceFalloff / 2); if (Form1.m_Wave) { distance -= c.counter; distance = Math.Abs(distance); } if (distance < Math.Abs(distances[x, y])) { distances[x, y] = distance; } if (c.counter < times[x, y]) times[x, y] = c.counter; } c.counter++; points[i] = c; } for (int x = 0; x < 21; x++) for (int y = 0; y < 6; y++) { double distance = distances[x, y]; System.Drawing.Color colour = System.Drawing.Color.White; if (Form1.m_Wave == true) colour = getColour(lab1, lab2, distance + times[x, y] + Math.Pow(distance, Form1.m_WaveSpeed), gradientspeed, fadespeed); else colour = getColour(lab1, lab2, distance + times[x, y], gradientspeed, fadespeed); lockBitmap.SetPixel(x, y, colour); } for (int k = points.Count - 1; k >= 0; k--) { if (points[k].counter > 20) points.RemoveAt(k); } lockBitmap.UnlockBits(); byte[] b = Form1.getLEDGridFromBitmap(bmp); //((Form1)Application.OpenForms[0]).pic1.Image = bmp; //bmp.Save(@"C:\temp\heatmap.png"); LogitechGSDK.LogiLedSetLightingFromBitmap(b); } counter++; System.Threading.Thread.Sleep(10); } }
void bw_Breathe_DoWork(object sender, DoWorkEventArgs e) { System.Drawing.Color c1 = Form1.m_startColour; System.Drawing.Color c2 = Form1.m_endColour; //System.Drawing.Color.Black;// Form1.m_endColour; bool donePause = false; int gradientspeed = Form1.m_gradientspeed; DateTime inittime = DateTime.Now; int counter = 1;// (int)(Math.PI * 2); List<keysavePoint> points = new List<keysavePoint> { }; Random rnd = new Random(); while (true) { if (bw_Breathe.CancellationPending) return; ColorManagment.ColorConverter Converter = new ColorManagment.ColorConverter(); //create a new instance of a ColorConverter ColorRGB rgb1 = new ColorRGB(RGBSpaceName.sRGB, c1.R, c1.G, c1.B); //create an RGB color ColorLab lab1 = Converter.ToLab(rgb1); ColorRGB rgb2 = new ColorRGB(RGBSpaceName.sRGB, c2.R, c2.G, c2.B); //create an RGB color ColorLab lab2 = Converter.ToLab(rgb2); System.Drawing.Color colour = System.Drawing.Color.White; colour = getColour(lab1, lab2, pulse(counter / 2000.0, 10, 5));//Form1.m_fadespeed)); LogitechGSDK.LogiLedSetLighting((int)(colour.R / 255.0 * 100.0), (int)(colour.G / 255.0 * 100.0), (int)(colour.B / 255.0 * 100.0)); double val = 2 * Math.PI * counter / 2000 * 10; if (breatheTopPause) { for (int i = 0; i < 50; i++) { if (bw_Breathe.CancellationPending) return; System.Threading.Thread.Sleep(28); } counter = (int)(Math.PI * 2); donePause = false; breatheTopPause = false; } else if (colour.A == 0 && !donePause) { donePause = true; for (int i = 0; i < 50; i++) { if (bw_Breathe.CancellationPending) return; System.Threading.Thread.Sleep(28); } } counter++; System.Threading.Thread.Sleep((int)(55)); } }