public Tuple <BitmapImage, string> GetDecodedImage(BitmapImage bitmapImage, IReversibleWatermarkingAlgorithm algorithm, AlgorithmConfiguration configuration) { Bitmap encodedImage = BitmapImageToBitmap(bitmapImage); Tuple <Bitmap, string> decodingResult = algorithm.Decode(encodedImage, configuration); return(decodingResult != null ? new Tuple <BitmapImage, string>(BitmapToBitmapImage(decodingResult.Item1), decodingResult.Item2) : null); }
private void BtnRun_Click(object sender, RoutedEventArgs e) { var secretPayload = GetTextFromRichTextBox(TvPayload); IReversibleWatermarkingAlgorithm selectedAlgorithm = GetSelectedAlgorithm(); if (isFileLoaded && isWatermarkingModeSelected()) { resultImage = addSignatureController.GetWatermarkedImage(importedImage, secretPayload, selectedAlgorithm, GetEncodingConfigurationForSelectedAlgorithm()); ImgExport.Source = resultImage; Console.WriteLine(resultImage.UriSource); BtnExportFile.Visibility = Visibility.Visible; TvExportFileName.Visibility = Visibility.Visible; } if (isFileLoaded && isAnalyzingModeSelected()) { try { Tuple <BitmapImage, string> imageAndPayload = addSignatureController.GetDecodedImage(importedImage, selectedAlgorithm, GetDecodingConfigurationForSelectedAlgorithm()); resultImage = imageAndPayload.Item1; SetTextRichTextBox(TvPayload, imageAndPayload.Item2); TvPayload.Visibility = Visibility.Visible; ImgExport.Source = resultImage; Console.WriteLine(resultImage.UriSource); BtnExportFile.Visibility = Visibility.Visible; TvExportFileName.Visibility = Visibility.Visible; } catch (NullReferenceException exception) { ThrowErrorDialog("Image is not watermarked or was encoded with different configuration or/and algorithm"); } } }
public BitmapImage GetWatermarkedImage(BitmapImage bitmapImage, string payload, IReversibleWatermarkingAlgorithm algorithm, AlgorithmConfiguration configuration) { Bitmap originalBitmap = BitmapImageToBitmap(bitmapImage); Bitmap encodedBitmap = algorithm.Encode(originalBitmap, payload, configuration); return(BitmapToBitmapImage(encodedBitmap)); }