Jaf*_*ake 8 .net c# clipboard png image
我正在尝试从剪贴板保存复制的图像,但它正在丢失其alpha通道:
Image clipboardImage = Clipboard.GetImage();
string imagePath = Path.GetTempFileName();
clipboardImage.Save(imagePath);
Run Code Online (Sandbox Code Playgroud)
如果我从PhotoShop或IE/Firefox/Chrome复制32位图像并运行上面的代码,则输出会丢失其Alpha通道,而是在黑色背景下保存.
图像保存为PNG,可以包含Alpha通道.
正确的数据似乎在剪贴板中,因为粘贴到其他应用程序(例如PhotoShop)会保留alpha通道.
任何人都可以让我摆脱痛苦吗?
提前致谢!
更新:
// outputs FALSE
Debug.WriteLine(Image.IsAlphaPixelFormat(Clipboard.GetImage().PixelFormat));
Run Code Online (Sandbox Code Playgroud)
以上表明,一旦从剪贴板中取出,alpha数据就会丢失.也许我需要以其他方式将其从剪贴板中删除?
不要打电话Clipboard.GetImage()
,试着打电话Clipboard.GetDataObject()
这将返回一个IDataObject,您可以通过调用进行查询dataObject.GetFormats()
. GetFormats()
返回Clipboard对象支持的类型格式 - 可以使用更精确的格式来提取数据.