我正在尝试使用从剪贴板粘贴的图像,例如屏幕截图。
这是一段代码:
public void PasteImage(Image pasteImage)
{
MemoryStream image = new MemoryStream();
pasteImage.Save(image, pasteImage.RawFormat);
image.Position=0;
byte[] byteImage = image.ToArray();
在线上:
pasteImage.Save(image, pasteImage.RawFormat);
我收到此错误:
System.Drawing.dll 中出现“System.ArgumentNullException”类型的未处理异常
附加信息:值不能为空。
我正在关注我在这个主题上找到的以前的 stackoverflow 帖子,例如如何使用字节数组比较两个图像,以及如何在字节数组中转换图像,但无法让它工作。
我想知道从剪贴板中检索到的图像是否有特定的内容。我正在使用此代码来获取图像:
if (Clipboard.ContainsImage())
{
Image pasteImage = GetClipboardImage();
PasteImage(pasteImage);
}
编辑
这是 GetClipboardImage() 背后的代码:
public Image GetClipboardImage()
{
System.Drawing.Image returnImage = null;
if (Clipboard.ContainsImage())
{
returnImage = Clipboard.GetImage();
}
return returnImage;
}
如果我在错误的行上放置一个断点,我可以看到 pasteImage 和 pastImage.RawFormat 都不为空:
这看起来与示例相关 我会对此有所了解并报告:如何在不丢失 .NET 中的 alpha 通道的情况下从剪贴板中获取图像?