2012-01-16 51 views
0

我与BGRA字节的图像,从中我产生的BitmapSource像这样一个byte []数组:来自BitmapSource的奇怪bmp黑色输出 - 有什么想法?

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给出了图像的中心的一点点,也许10×10像素的图像中的海黑色,PNG在没有黑色的情况下也是如此。显示的区域看起来好像图片已被缩略图轮廓所裁剪(仅用于描述visula效果)。此外,如果您在Paint中打开了png,则整个图片将显示在此处,但不适用于bmp版本(Irfanview无法应对任何一个文件)

这是怎么回事?我错过了什么?

+1

你可以发布链接到截图吗? – ChrisF 2012-01-16 15:07:07

+0

我试图添加图片,但作为一个新用户,您的垃圾邮件过滤器不会让我 – 2012-01-16 15:52:52

+0

您仍然可以发布链接(我认为),甚至可以在评论中添加一个链接,然后有人会将它编辑为您的问题。 – ChrisF 2012-01-16 15:59:09

回答

1

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

+0

是的,我使用PNG的PngBitmapEncoder和bmp的BmpBitmapEncoder - 我只是再次检查。 – 2012-01-16 15:57:39

+0

认为您可以发布您的项目的复制? – MyKuLLSKI 2012-01-16 15:58:46

+1

PngBitmapEncoder并将其保存为.png文件而不是.bmp,使黑色图像变为正常:DDDDDD – 2012-09-19 15:11:23