Странный вывод bmp black из BitmapSource - есть идеи?

У меня есть массив byte[] с bgra-байтами изображения, из которого я создаю BitmapSource следующим образом:

BitmapSource bmsOut = BitmapSource.Create(
iPixelWidth, iPixelHeight, 96, 96, PixelFormats.Bgra32, null, bytOutput, iStride);      

это прекрасно отображается на элемент изображения wpf. ОДНАКО, когда я тогда пытаюсь создать файл из BitmapSource:

private void mtdSave(BitmapSource bitmapSource, string path, BitmapEncoder encoder)
          {
              using (var stream = new FileStream(path, FileMode.Create))
              {
                  encoder.Frames.Add(BitmapFrame.Create(bitmapSource));
                  encoder.Save(stream);
              }
          }

Я получаю странный вывод в зависимости от используемого кодера: bmp дает небольшое, может быть, 10x10 пиксельное изображение центра изображения в море черного, png делает то же самое без черного. Отображаемая область выглядит так, как если бы изображение было обрезано контуром миниатюры (просто для описания эффекта visula). Кроме того, если вы затем откроете png в программе Paint, все изображение будет отображено, но не для версии bmp (Irfanview не может справиться с любым из файлов)

Что здесь происходит? Что мне не хватает?

1 ответ

Какой тип BitmapEncoder вы передаете? Вы пробовали PngBitmapEncoder?

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