gpt4 book ai didi

c# - 如何在不丢失 .NET 中的 alpha channel 的情况下从剪贴板中获取图像?

转载 作者:太空狗 更新时间:2023-10-29 18:28:27 25 4
gpt4 key购买 nike

我正在尝试从剪贴板保存复制的图像,但它正在丢失其 alpha channel :

Image clipboardImage = Clipboard.GetImage();
string imagePath = Path.GetTempFileName();
clipboardImage.Save(imagePath);

如果我从 PhotoShop 或 IE/Firefox/Chrome 复制 32 位图像并运行上面的代码,输出将丢失其 alpha channel ,而是保存在黑色背景下。

图像保存为 PNG,其中可以包含 alpha channel 。

正确的数据似乎在剪贴板中,因为粘贴到其他应用程序(例如 PhotoShop)中会保留 alpha channel 。

谁能把我从痛苦中解救出来?

提前致谢!

更新:

// outputs FALSE
Debug.WriteLine(Image.IsAlphaPixelFormat(Clipboard.GetImage().PixelFormat));

以上内容表明,一旦从剪贴板中取出 alpha 数据,它就会丢失。也许我需要通过其他方式将其从剪贴板中取出?

最佳答案

不要调用 Clipboard.GetImage(),而是尝试调用 Clipboard.GetDataObject()

这将返回一个 IDataObject,您可以依次调用 dataObject.GetFormats() 来查询它。 GetFormats() 返回剪贴板对象支持的类型格式 - 可能支持更精确的格式,您可以使用它来提取数据。

关于c# - 如何在不丢失 .NET 中的 alpha channel 的情况下从剪贴板中获取图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/998655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com