【发布时间】:2019-12-07 08:06:44
【问题描述】:
我正在用 C# 制作一个图像查看器。该功能是使用 C# 上的剪贴板类进行复制和粘贴功能。
我成功获取了BitmapSource的图像。但它无法检查图像格式(jpeg、png、bmp)。
这是来自 C# 的支持源
BitmapSource source = Clipboard.GetImage();
这些是我想要使用的。
byte[] image = Clipboard.GetImage("image/png")
byte[] image = Clipboard.GetImage("image/bmp")
我会说,如何从 BitmapSource 或剪贴板检查图像格式?
【问题讨论】:
-
不清楚你在问什么。请提供一个很好的minimal reproducible example,说明您正在尝试做什么,并说明该代码的作用、您希望它做什么以及您需要帮助的具体内容。剪贴板理论上可以包含 any 格式的数据。 @Gab 的评论不太准确;
GetImage()方法不会在剪贴板中保存数据,而是检索它,格式实际上不是 ".bmp" - 这意味着.bmp 文件格式的字节流,而实际上你会得到一个BitmapSource对象,如果可能的话转换其他图像格式。 -
您的目标是什么:Winforms、WPF、ASP..?您应该始终正确标记您的问题,以便人们可以在问题页面上看到它! - 在 winforms Clipboard.GetImage 中重新运行图像; BitmapSource 在 WPF 中。
-
您可以通过将图像的 RawFormat GUId 与 System.Drawing.Imaging.ImageFormat 成员进行比较来从图像中获取 ImageFormat..
-
我错了。一旦图像在剪贴板中,它的原始格式似乎就丢失了,你得到的只是
ImageFormat.MemoryBmp。 -
不确定谁投票结束,但我认为这是一个相当有趣的问题。它做了一些错误的假设,但考虑到某些应用程序如何从复制的内容中检索文件名,我可以看到它们来自哪里。
标签: c# wpf clipboard bitmapsource