如何将剪贴板中的图像转换为C#中的Stream?

时间:2016-11-24 10:47:21

标签: c# wpf clipboard

如何将剪贴板中复制的图像检索到C#中的System.IO.Stream?

Stream lStream = new MemoryStream();

IDataObject lIDataObj = Clipboard.GetDataObject();

if (lIDataObj.GetDataPresent(DataFormats.Bitmap))
{
  System.Drawing.Image lImage = (System.Drawing.Image)lIDataObj.GetData(DataFormats.Bitmap);

  lImage.Save(lStream, System.Drawing.Imaging.ImageFormat.Jpeg);

  //this.RADRichTextBox.InsertImage(lStream, "jpg");
}

2 个答案:

答案 0 :(得分:1)

根据this SO帖子,您必须修改您填充流的方式:

System.Drawing.Image lImage = (System.Drawing.Image)lIDataObj.GetData(DataFormats.Bitmap);
lStream.Save(lImage, System.Drawing.Imaging.ImageFormat.Jpeg);

答案 1 :(得分:0)

剪贴板不包含WPF图像,而是包含Windows窗体位图。所以你要做的就是首先获取Windows窗体位图,然后然后将其转换为WPF图像。

可以在此处找到一个示例:WPF Image: .Source = Clipboard.GetImage() is not displayed