Kel*_*ton 9 c# png image bitmap save
我正在尝试将具有透明性的Bitmap类保存为具有透明度的png文件.我没有运气.
这就是我正在做的事情
Bitmap ret = new Bitmap(bWidth, bHeight, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Run Code Online (Sandbox Code Playgroud)
ret.Save(filename, ImageFormat.Png);
Run Code Online (Sandbox Code Playgroud)
我也尝试用文件流保存文件,这没有任何区别.
当图像在图片框中时,透明度存在,但是当我保存时,我只得到一个黑色背景.
我真的不想使用任何第三方代码,他们找到了一种方法来做到这一点,我也想.
谢谢.
你确定Bitmap的像素格式是 System.Drawing.Imaging.PixelFormat.Format32bppArgb吗?我只是偶然发现了这个问题,因为我遇到了同样的问题,但这是因为我正在加载一个没有像素格式的alpha分量的图像.我做到了
Bitmap output = original.Clone(rect, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Run Code Online (Sandbox Code Playgroud)
并使用alpha组件正确保存了PNG.
此外,如果您正在使用MakeTransparent(),请确保您的图像中存在透明的颜色.
我假设对话框的 FilterIndex 从 0 开始...但它实际上从 1 开始,所以我的图像使用 Alpha 透明度保存为 Gif,而 gif 不支持 Alpha 透明度。所以我的问题实际上是对话框。