private async void embedButton_Click(object sender, RoutedEventArgs e) { text = richTextBox.Text; // text = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd).Text; if (original == null) { await this.ShowMessageAsync("Error", "Image is not selected. Please choose an image first.", MessageDialogStyle.Affirmative); // MessageBox.Show("Image is not selected. Please choose an image first.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (encrypt.IsChecked == true) { if (keyBox.Text != string.Empty) { text = AES.StringCipher.Encrypt(text, keyBox.Text); //byte[] plain = Convert.FromBase64String(text); //text = Encoding.UTF8.GetString(plain); } else { await this.ShowMessageAsync("Error", "Provide cryptography key.", MessageDialogStyle.Affirmative); // MessageBox.Show("Provide cryptography key.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } } if (radioLSB.IsChecked == true) { stego = LSB.EmbedText(original, text); } else if (radioFibo.IsChecked == true) { stego = Fibonacci.EmbedText(original, text); } else if (radioEdge.IsChecked == true) { stego = Canny.EmbedText(original, text); } // image.Source = bmp.Bitmap2BitmapImage(); // MessageBox.Show(text); if (stego == null) { await this.ShowMessageAsync("Error", "Image is not large enough. Please select another image.", MessageDialogStyle.Affirmative); // MessageBox.Show("Image is not large enough. Please select another image.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); // MessageBox.Show("Image is not large enough. Please select another image.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } else { await this.ShowMessageAsync("Success", "Image successfully Generated. Now you can save.", MessageDialogStyle.Affirmative); // MessageBox.Show("Image successfully Generated. Now you can save.", "Success"); // image2.Source = stegoBmp.Bitmap2BitmapImage(); } }
private async void extractButton_Click(object sender, RoutedEventArgs e) { if (stego == null) { await this.ShowMessageAsync("Error", "Image is not selected. Please choose an image first.", MessageDialogStyle.Affirmative); //MessageBox.Show("Image is not selected. Please choose an image first.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (radioLSB.IsChecked == true) { text = LSB.ExtractText(stego); } else if (radioFibo.IsChecked == true) { text = Fibonacci.ExtractText(stego); } else if (radioEdge.IsChecked == true) { text = Canny.ExtractText(stego); } if (encrypt.IsChecked == true) { if (keyBox.Text != string.Empty) { try { //richTextBox.Text = AES.StringCipher.Decrypt(text, keyBox.Text); //var tmp = Encoding.UTF8.GetBytes(text.Substring(0, text.Length - 1)); //var base64 = Convert.ToBase64String(tmp); richTextBox.Text = AES.StringCipher.Decrypt(text.Substring(0, text.Length - 1), keyBox.Text); } catch (FormatException ferr) { await this.ShowMessageAsync("Error", "Error Occured. " + ferr.Message, MessageDialogStyle.Affirmative); // MessageBox.Show("Error Occured. " + ferr.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } catch (Exception err) { await this.ShowMessageAsync("Error", "Error Occured. Please check key.", MessageDialogStyle.Affirmative); //MessageBox.Show("Error Occured. Please check key." + err.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } } else { await this.ShowMessageAsync("Error", "Provide cryptography key.", MessageDialogStyle.Affirmative); // MessageBox.Show("Provide cryptography key.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } } else { richTextBox.Text = text.Substring(0, text.Length - 1); } // richTextBox.Document.Blocks.Clear(); //richTextBox.Document.Blocks.Add(new Paragraph(new Run(text))); // MessageBox.Show("Successfully Generated. Now you can save."); }