来自BitmapSource的奇怪的bmp黑色输出 - 任何想法?

时间:2012-01-16 15:03:39

标签: c# wpf bitmap encoder

我有一个带有图像的bgra字节的byte []数组,我从中生成一个像这样的BitmapSource:

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

这在wpf Image元素上显示正常。但是,当我尝试从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做同样没有黑色。显示的区域看起来好像图片已经被缩略图轮廓裁剪(只是为了描述视觉效果)此外,如果你然后在Paint中打开png,整个图片就在那里并显示,但不是bmp版本(Irfanview不能处理任何一个文件)

发生了什么事?我错过了什么?

1 个答案:

答案 0 :(得分:1)

你传入了什么样的BitmapEncoder?你尝试过PngBitmapEncoder吗?