【发布时间】:2011-04-07 11:41:58
【问题描述】:
我在将剪贴板图像保存为 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);
上面的代码生成了一个包含不可见内容的图像文件,根据查看者(当从 Paint 复制时,ctrl-c 时)显示为全黑或全白。这让我认为这与透明度有关......
【问题讨论】:
-
能否提供代码示例?
标签: .net png clipboard paint jpeg