private void LoadButton_Click(object sender, RoutedEventArgs e) { var openDialog = new OpenFileDialog(); openDialog.Filter = "Image (*.ppm)|*.ppm"; if (openDialog.ShowDialog() == true) { _filename = openDialog.FileName; if (shouldDepict) { source.Source = BitmapToImageSource(PPMReader.ReadBitmapFromPPM(_filename)); } } }
private async void ApplyFilter() { if (_filename == null) { consoleOutput.Text = "Incorrect file"; return; } if (_divisor == 0) { consoleOutput.Text = "Divisor can't be 0"; return; } if (_filter.All(x => x == 0)) { consoleOutput.Text = "Matrix can't be empty"; return; } LoadButton.IsEnabled = false; ApllyBut.IsEnabled = false; if (CompareFilterZero(0, 6) && CompareFilterZero(19, 25) && CompareFilterZero(4, 25, 5) && CompareFilterZero(0, 20, 5)) { sbyte[] filter3 = new sbyte[] { _filter[6], _filter[7], _filter[8], _filter[11], _filter[12], _filter[13], _filter[16], _filter[17], _filter[18] }; await Task.Run(() => runFilter3(filter3, _divisor, _offset, _filename, _compareCPU)); } else { await Task.Run(() => runFilter5(_filter, _divisor, _offset, _filename, _compareCPU)); } ApllyBut.IsEnabled = true; LoadButton.IsEnabled = true; if (shouldDepict) { string newFilename = _filename.Substring(0, _filename.Length - 4) + "f_gpu.ppm"; if (File.Exists(newFilename)) { dest.Source = BitmapToImageSource(PPMReader.ReadBitmapFromPPM(newFilename)); } else { newFilename = _filename.Substring(0, _filename.Length - 4) + "f_cpu.ppm"; if (File.Exists(newFilename)) { dest.Source = BitmapToImageSource(PPMReader.ReadBitmapFromPPM(newFilename)); } } } return; }