WPF: преобразование BitmapImage в массив и редактирование, а затем воссоздание его

Я хочу разработать программное обеспечение для стеганографии в WPF, поэтому мне нужен прямой доступ к пикселям, я пытаюсь преобразовать растровое изображение в массив и отредактировать его, проблема в том, что я могу воссоздать его только с помощью 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 ответ

Решение

Вы можете конвертировать ваши результаты BitmapSource к BitmapImage, Проверьте ответ на этот вопрос: BitmapSource to BitmapImage.

Не помечать как дубликаты, так как это не тот же вопрос, хотя ответ применим.

Другие вопросы по тегам