private async void OnMedianCutButtonClick(object sender, RoutedEventArgs eventArgs) { if (mainWindow.CurrentBitmap != null) { statusText.Text = "Generating Palette"; int amount = (int)medianCutAmountNumeric.Value; ColorPalette = await Task.Run(() => PaletteGeneration.MedianCut(mainWindow.CurrentBitmap, amount)); ReloadPaletteItems(); statusText.Text = ""; } }
private async void OnDuoToneAddButtonClick(object sender, RoutedEventArgs eventArgs) { statusText.Text = "Generating Palette"; int amount = (int)duoToneAmountNumeric.Value; float hue = (float)(duoToneHueNumeric.Value % 360); float saturation = (float)duoToneSaturationNumeric.Value; ColorPalette.AddRange(await Task.Run(() => PaletteGeneration.FakeDuoTone(amount, hue, saturation))); ColorPalette = ColorPalette.Distinct().ToList(); ReloadPaletteItems(); statusText.Text = ""; }
private async void OnKMeansButtonClick(object sender, RoutedEventArgs eventArgs) { if (mainWindow.CurrentBitmap != null) { statusText.Text = "Generating Palette"; int amount = (int)kMeansAmountNumeric.Value; int steps = (int)kMeansStepsNumeric.Value; ColorPalette = await Task.Run(() => PaletteGeneration.KMeans(mainWindow.CurrentBitmap, amount, steps)); ReloadPaletteItems(); statusText.Text = ""; } }
private async void OnSortButtonClick(object sender, RoutedEventArgs eventArgs) { if (mainWindow.Working) { return; } if (mainWindow.CurrentBitmap != null) { mainWindow.Working = true; statusText.Text = "Sorting image"; int amount = (int)medianCutAmountNumeric.Value; Bitmap bitmap = await Task.Run(() => PaletteGeneration.SortColors(mainWindow.CurrentBitmap, amount)); mainWindow.ChangeMainImage(bitmap); statusText.Text = ""; mainWindow.Working = false; } }