WPF:将BitmapImage转换为数组并对其进行编辑,然后重新创建它

时间:2015-01-08 10:14:31

标签: c# wpf bitmap bitmapsource

我想在WPF中开发一个Steganography软件,所以我需要直接访问像素,我试图将Bitmap转换为数组并编辑它,问题是我只能通过BitmapSource重新创建它(我是对的? )我无法正确地重新创建它。我得到一张黑白图像。

public static void Conceal(BitmapImage CoverPhotoBitmap, BitmapImage HiddenPhotoBitmap, ref BitmapSource ResultPhotoBitmapSource)
{
    int stride = CoverPhotoBitmap.PixelWidth * 4;
    int size = CoverPhotoBitmap.PixelHeight * stride;
    byte[] CoverPhotoPixels = new byte[size];
    CoverPhotoBitmap.CopyPixels(CoverPhotoPixels, stride, 0);

    byte[] HiddenPhotoPixels = new byte[size];
    HiddenPhotoBitmap.CopyPixels(HiddenPhotoPixels, stride, 0);
    ResultPhotoBitmapSource = BitmapSource.Create(CoverPhotoBitmap.PixelWidth, CoverPhotoBitmap.PixelHeight, 96, 96, PixelFormats.Rgb32, null, HiddenPhotoPixels, stride);
}

1 个答案:

答案 0 :(得分:0)

您可以将结果BitmapSource转换为BitmapImage。检查此问题的答案:BitmapSource to BitmapImage

虽然答案适用,但不是标记为重复,因为它不是同一个问题。