.NET:将剪贴板图像保存到PNG失败

.NET:将剪贴板图像保存到PNG失败,.net,png,clipboard,paint,jpeg,.net,Png,Clipboard,Paint,Jpeg,我在将剪贴板图像保存到png时遇到了一个奇怪的问题。当使用prtscr或剪切工具拍摄屏幕截图时,它可以与Clipboard.GetImage()和PngBitmapEncoder配合使用。但是,当从绘画复制图像并执行相同操作时,我得到的结果是一个空图像。尽管它似乎包含有效的PNG图像数据,但在试图查看它时,它至少看起来是空的。使用Jpeg编码器时,效果良好。PNG和油漆有什么问题?这与透明度有关吗 更新 澄清:我正在从剪贴板成功提取图像。我只是不能保存它到光盘使用PNGEncoder如果图像是从

我在将剪贴板图像保存到png时遇到了一个奇怪的问题。当使用prtscr或剪切工具拍摄屏幕截图时,它可以与Clipboard.GetImage()和PngBitmapEncoder配合使用。但是,当从绘画复制图像并执行相同操作时,我得到的结果是一个空图像。尽管它似乎包含有效的PNG图像数据,但在试图查看它时,它至少看起来是空的。使用Jpeg编码器时,效果良好。PNG和油漆有什么问题?这与透明度有关吗

更新 澄清:我正在从剪贴板成功提取图像。我只是不能保存它到光盘使用PNGEncoder如果图像是从油漆复制在第一位。我可以用JPEG编码器保存画板图像。。。但是我想用PNG

BitmapSource source = Clipboard.GetImage();
PngBitmapEncoder enc = new PngBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(source));
enc.Save(stream);

上面的代码生成一个包含不可见内容的图像文件,根据查看器的不同(从中复制时,ctrl-c,从Paint中复制时)显示为完全黑色或白色。这让我觉得这和透明度有关

首先,我想检查一下哪个应用程序将哪种类型的内容放在剪贴板上。

您的问题与我描述的问题非常相似。。。我建议的解决方案可能适合您。

您能提供一个代码示例吗?谢谢您,托马斯!我用了剪贴簿上的图片,效果很好!我自己尝试了复制像素和重置alpha通道,但没有成功。copypixels的数据仅为白色(255)。但是你的代码成功了!彼此彼此。无法找出从MSPaint复制的图像为空的原因。托马斯的密码成功了。