我将剪贴板图像保存到png有一个奇怪的问题。使用prtscr或剪切工具截取屏幕截图时,它可以与Clipboard.GetImage()和PngBitmapEncoder一起使用。但是当从Paint复制图像并执行相同操作时,我得到一个空图像。至少它在尝试查看时看起来是空的,尽管它似乎包含有效的PNG图像数据。使用Jpeg编码器时,它工作正常。什么是PNG和Paint的问题?它与透明度有关吗?
更新 澄清:我从剪贴板成功提取图像。如果图像首先从Paint复制,我只能使用PNGEncoder将其保存到光盘。我可以使用JpegEncoder保存绘画剪贴板图像但是我想使用PNG。
BitmapSource source = Clipboard.GetImage();
PngBitmapEncoder enc = new PngBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(source));
enc.Save(stream);
上面的代码生成一个包含不可见内容的图像文件,根据查看器的不同,呈现完全黑色或白色(从中复制时,从ctrl-c,从Paint中复制)。这让我觉得它与透明度有关......