/// <summary> /// Encrypts the image embedding. /// </summary> /// <param name="pixels">The pixels.</param> /// <param name="sourcePicture">The source picture.</param> /// <param name="hiddenPicture">The hidden picture.</param> public static void EncryptImage(byte[] pixels, Picture sourcePicture, Picture hiddenPicture) { for (var i = 0; i < sourcePicture.Height; i++) { for (var j = 0; j < sourcePicture.Width; j++) { j = HeaderManager.SkipHeaderLocation(i, j); var sourcePixelColor = PixelUtilities.GetPixelBgra8(pixels, i, j, sourcePicture.Width, sourcePicture.Height); var hiddenPixelColor = Colors.White; hiddenPixelColor = getOppositeVerticalHalfPixelColor(i, j, hiddenPixelColor, sourcePicture, hiddenPicture); if (PixelUtilities.IsColorBlack(hiddenPixelColor)) { embedBlackPixel(pixels, sourcePixelColor, i, j, sourcePicture); } else { embedWhitePixel(pixels, sourcePixelColor, i, j, sourcePicture); } } } }
private void embedPixel(byte[] pixels, int i, int j) { var sourcePixelColor = PixelUtilities.GetPixelBgra8(pixels, i, j, this.sourcePicture.Width, this.sourcePicture.Height); var hiddenPixelColor = PixelUtilities.GetPixelBgra8(this.hiddenPicture.Pixels, i, j, this.hiddenPicture.Width, this.hiddenPicture.Height); if (PixelUtilities.IsColorBlack(hiddenPixelColor)) { this.embedBlackPixel(pixels, sourcePixelColor, i, j); } else { this.embedWhitePixel(pixels, sourcePixelColor, i, j); } }