コード例 #1
0
        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);
        }
コード例 #2
0
        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");
                }
            }
        }
コード例 #3
0
        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));
        }