private void DecodeButton_Click(object sender, RoutedEventArgs e) { var ofd = new OpenFileDialog { Filter = "Image Files(*.BMP)|*.BMP" }; Bitmap bmp; if (ofd.ShowDialog().Value) { bmp = new Bitmap(ofd.FileName); } else { MessageBox.Show("Декодирование прервано"); return; } string text; int codeLength; try { var code = BitmapCoder.GetCode(bmp); text = _coders[CodeComboBox.SelectedIndex].Decode(code, out codeLength); } catch (Exception c) { MessageBox.Show("Декодирование прервано. Возможно, картинка закодирована другим алгоритмом"); return; } var sfd = new SaveFileDialog { Filter = "Text file(*.txt)|*.txt" }; if (sfd.ShowDialog().Value) { var sw = new StreamWriter(sfd.FileName); sw.Write(text); sw.Close(); } else { MessageBox.Show("Декодирование прервано"); return; } var compressionFactor = (text.Length * 16.0) / codeLength; CompressionFactorLabel.Content = "Compression factor = " + compressionFactor; }
private void CodeButton_Click(object sender, RoutedEventArgs e) { var ofd = new OpenFileDialog { Filter = "Text file(*.txt)|*.txt" }; string text; if (ofd.ShowDialog().Value) { var sr = new StreamReader(ofd.FileName, Encoding.Default); text = sr.ReadToEnd(); sr.Close(); } else { MessageBox.Show("Кодирование прервано"); return; } var code = _coders[CodeComboBox.SelectedIndex].Code(text, out var codeLength); var sfd = new SaveFileDialog { Filter = "Image Files(*.BMP)|*.BMP" }; if (sfd.ShowDialog().Value) { var bmp = BitmapCoder.GetBitmap(code); bmp.Save(sfd.FileName); } else { MessageBox.Show("Кодирование прервано"); return; } var compressionFactor = (text.Length * 16.0) / codeLength; CompressionFactorLabel.Content = "Compression factor = " + compressionFactor; }