WPF - 如何在没有任何Alpha通道的情况下保存PNG?

时间:2010-06-04 18:25:31

标签: c# wpf image

我有BitmapSource。我把它保存到这样的png:

PngBitmapEncoder enc = new PngBitmapEncoder();
enc.Frames.Add(myBitmapSource);
enc.Save(fs);

如何在没有任何Alpha通道的情况下保存它?

2 个答案:

答案 0 :(得分:3)

在编码之前,使用FormatConvertedBitmap转换为每像素24位:

var noAlphaSource = new FormatConvertedBitmap
{
  Source = myBitmapSource,
  DestinationFormat = PixelFormats.Rgb24
};

var encoder = new PngBitmapEncoder();
enc.Frames.Add(noAlphaSource);
enc.Save(fs);

答案 1 :(得分:1)

24bpp位图没有alpha通道。由PNG编码器支持。使用PixelFormats.Rgb24创建一个WriteableBitmap。