如何将剪贴板中的图像转换为 C# 中的流?
How to convert an image in a clipboard into a Stream in C#?
如何在 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");
}
基于 this SO post,您必须通过以下方式修改填充流的方式:
System.Drawing.Image lImage = (System.Drawing.Image)lIDataObj.GetData(DataFormats.Bitmap);
lStream.Save(lImage, System.Drawing.Imaging.ImageFormat.Jpeg);
剪贴板不包含 WPF 图像,而是 Windows 表单位图。因此,您要做的是先获取 Windows Forms Bitmap,然后 然后 将其转换为 WPF 图像。
可以在这里找到一个例子:WPF Image: .Source = Clipboard.GetImage() is not displayed
如何在 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");
}
基于 this SO post,您必须通过以下方式修改填充流的方式:
System.Drawing.Image lImage = (System.Drawing.Image)lIDataObj.GetData(DataFormats.Bitmap);
lStream.Save(lImage, System.Drawing.Imaging.ImageFormat.Jpeg);
剪贴板不包含 WPF 图像,而是 Windows 表单位图。因此,您要做的是先获取 Windows Forms Bitmap,然后 然后 将其转换为 WPF 图像。
可以在这里找到一个例子:WPF Image: .Source = Clipboard.GetImage() is not displayed