/// <summary> /// Processes a ScreenShot and creates an Ambilight Effect for the keyboard /// </summary> /// <param name="newImage">ScreenShot</param> internal void Process(Bitmap newImage) { Bitmap map = ImageManipulation.ResizeImage(newImage, settings.KeyboardWidth, settings.KeyboardHeight, settings.UltrawideModeBool); map = ImageManipulation.ApplySaturation(map, settings.Saturation); _keyboardGrid = KeyboardCustom.Create(); _keyboardGrid = GenerateKeyboardGrid(map, _keyboardGrid); Chroma.Instance.Keyboard.SetCustom(_keyboardGrid); }
static void Main(string[] args) { String data = Environment.GetEnvironmentVariable("BUILD-WATCHER-DATA"); Console.WriteLine("Data = " + data); JObject o = JObject.Parse(data); JArray tags = (JArray)o["tags"]; var grid = KeyboardCustom.Create(); grid.Clear(); int index = 0; for (var r = 0; r < Constants.MaxRows; r++) { for (var c = 2; c < Constants.MaxColumns; c++) { if (index < tags.Count) { ColoreColor color; var tag = tags[index]; string status = (string)tag["status"]; if (status == "Green") { color = ColoreColor.Green; } else if (status == "Red") { color = ColoreColor.Red; } else { color = ColoreColor.Orange; } grid[r, c] = color; } index++; } } Chroma.Instance.Keyboard.Clear(); Chroma.Instance.Keyboard.SetCustom(grid); // Chroma.Instance.Keyboard.SetAll(ColoreColor.White); // Chroma.Instance.Keyboard.SetKey(Key.F1, ColoreColor.Green); // Chroma.Instance.Keyboard.SetKey(Key.F2, ColoreColor.Red); }
/// <summary> /// From a given resized screenshot, an ambilight effect will be created for the keyboard /// </summary> /// <param name="map">resized screenshot</param> /// <param name="keyboardGrid">effect grid</param> /// <returns>EffectGrid</returns> private KeyboardCustom GenerateKeyboardGrid(Bitmap map, KeyboardCustom keyboardGrid) { //Iterating over each key and set it to the corrosponding color of the resized Screenshot for (var r = 0; r < settings.KeyboardHeight; r++) { for (var c = 0; c < settings.KeyboardWidth; c++) { System.Drawing.Color color; if (settings.AmbiModeBool) { color = map.GetPixel(c, settings.KeyboardHeight - 1); } else { color = map.GetPixel(c, r); } keyboardGrid[r, c] = new ColoreColor((byte)color.R, (byte)color.G, (byte)color.B); } } return(keyboardGrid); }