/// <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; } }
/// <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); }
/// <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(); }
/// <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()); } }