使用Alpha通道保存PNG

时间:2012-09-24 10:36:19

标签: wpf png save alpha channel

我正在尝试将WriteableBitmap保存到png,但总是以24位图像(没有alpha通道)结束。

WriteableBitmap image = new WriteableBitmap(100, 100, 600, 600, PixelFormats.Bgra32, null);
int stride = image.PixelWidth * image.Format.BitsPerPixel / 8;
image.WritePixels(new System.Windows.Int32Rect(0, 0, image.PixelWidth, image.PixelHeight), emptyArray, stride, 0);

FileStream filestream = new FileStream(imageSrc, FileMode.Create);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create((image)));
encoder.Save(filestream);

emptyArray是一个所有像素为(255,0,0,0)的数组,因此我可以测试保存是否有效。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我设法找到了问题:文件在其他地方被修改并覆盖了初始图像。因此,图像的初始保存工作正常。对不起麻烦!