コード例 #1
0
        /// <summary>
        ///     Loads the message.
        ///     @Precondition none
        ///     @Postcondition message file is loaded into the program
        /// </summary>
        public async Task LoadMessage()
        {
            this.messageFile = await this.fileReader.SelectMessageFile();

            if (this.messageFile == null)
            {
                return;
            }

            if (this.MessageFileType.Equals(FileTypeConstants.TextFileType))
            {
                this.messageEmbedder = new TextMessageEmbedder();
                this.TextFromFile    = await this.fileReader.ReadTextFromFile(this.messageFile);
            }
            else
            {
                this.messageEmbedder = new MonochromeImageEmbedder();
                this.MessageImage    = await FileBitmapConverter.ConvertFileToBitmap(this.messageFile);
            }

            if (this.SourceImage != null)
            {
                var sourceImagePixels = await PixelExtracter.ExtractPixelDataFromFile(this.sourceImageFile);

                this.messageEmbedder.SourceImagePixels = sourceImagePixels;
            }
        }
コード例 #2
0
ファイル: ExtractManager.cs プロジェクト: jsmit124/Stegafy
        /// <summary>
        ///     Loads the embedded image
        /// </summary>
        /// @Precondition none
        /// @Postcondition embedded image is loaded
        public async Task LoadEmbeddedImage()
        {
            this.EmbeddedImageFile = await this.fileReader.SelectSourceImageFile();

            if (this.EmbeddedImageFile == null)
            {
                return;
            }

            this.EmbeddedImage = await FileBitmapConverter.ConvertFileToBitmap(this.EmbeddedImageFile);
        }
コード例 #3
0
        /// <summary>
        ///     Loads the source image.
        ///     @Precondition none
        ///     @Postcondition source image is loaded into the program
        /// </summary>
        public async Task LoadSourceImage()
        {
            this.sourceImageFile = await this.fileReader.SelectSourceImageFile();

            if (this.sourceImageFile == null)
            {
                return;
            }

            var sourceImage = await FileBitmapConverter.ConvertFileToBitmap(this.sourceImageFile);

            this.SourceImage = sourceImage;

            var sourceImagePixels = await PixelExtracter.ExtractPixelDataFromFile(this.sourceImageFile);

            this.messageEmbedder.SourceImagePixels = sourceImagePixels;

            await this.setSourceImageSizeValues();
        }
コード例 #4
0
        /// <summary>
        ///     Extracts the pixel data from file.
        /// </summary>
        /// <param name="file">The file.</param>
        /// <returns>The byte array of pixel information from the file</returns>
        public static async Task <byte[]> ExtractPixelDataFromFile(StorageFile file)
        {
            var copyBitmapImage = await FileBitmapConverter.ConvertFileToBitmap(file);

            using (var fileStream = await file.OpenAsync(FileAccessMode.Read))
            {
                var decoder = await BitmapDecoder.CreateAsync(fileStream);

                var transform = new BitmapTransform {
                    ScaledWidth  = Convert.ToUInt32(copyBitmapImage.PixelWidth),
                    ScaledHeight = Convert.ToUInt32(copyBitmapImage.PixelHeight)
                };

                var pixelData = await decoder.GetPixelDataAsync(
                    BitmapPixelFormat.Bgra8,
                    BitmapAlphaMode.Straight,
                    transform,
                    ExifOrientationMode.IgnoreExifOrientation,
                    ColorManagementMode.DoNotColorManage
                    );

                return(pixelData.DetachPixelData());
            }
        }