Tag: clipboard

从WebBrowser加载图像,无需重新加载或复制

我目前正在从剪贴板复制到从浏览器加载图像 IHTMLDocument2 doc = (IHTMLDocument2) webBrowser1.Document.DomDocument; IHTMLControlRange imgRange = (IHTMLControlRange) ((HTMLBody) doc.body).createControlRange(); foreach (IHTMLImgElement img in doc.images) { imgRange.add((IHTMLControlElement) img); imgRange.execCommand(“Copy”, false, null); using (Bitmap bmp = (Bitmap) Clipboard.GetDataObject().GetData(DataFormats.Bitmap)) { bmp.Save(@”C:\”+img.nameProp); } } 但是使用剪贴板有一些问题。 有没有其他方法可以做到这一点。 在Internet Explorer中,所有图像都转到临时目录,如果同样发生在这里有没有办法获取该保存图像的路径?

如何将CF_DIBV5从剪贴板(Format17)转换为透明位图?

GDI +不支持CF_DIBV5格式但是当几个应用程序将透明图像放到剪贴板时,它们使用CF_DIBV5 (格式17)格式来维护Alpha通道。 .NET Framework无法处理CF_DIBV5格式,因此.NET应用程序无法在剪贴板中放入或检索alpha映像。 是否有任何c#代码支持从剪贴板转换CF_DIBV5到Bitmap?

如何执行未标记为可序列化的对象的深层副本(在C#中)?

我试图在C#中创建一个剪贴板堆栈。 剪贴板数据存储在System.Windows.Forms.DataObject对象中。 我想将每个剪贴板条目( IDataObject )直接存储在Generic列表中。 由于Bitmaps(似乎是)存储的方式我认为我需要先将深拷贝执行才能将其添加到列表中。 我尝试使用二进制序列化(见下文)来创建深层副本,但由于System.Windows.Forms.DataObject未标记为可序列化,因此序列化步骤失败。 有任何想法吗? public IDataObject GetClipboardData() { MemoryStream memoryStream = new MemoryStream(); BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, Clipboard.GetDataObject()); memoryStream.Position = 0; return (IDataObject) binaryFormatter.Deserialize(memoryStream); }

Gtk#剪贴板复制/剪切/粘贴文件

如何使用Gtk#将文件复制,剪切和粘贴到剪贴板。 我看到的每个例子都只显示放入剪贴板的文本。 如果有人有一个例子,我会很感激。

如何在不丢失.NET中的alpha通道的情况下从剪贴板中获取图像?

我正在尝试从剪贴板保存复制的图像,但它正在丢失其Alpha通道: Image clipboardImage = Clipboard.GetImage(); string imagePath = Path.GetTempFileName(); clipboardImage.Save(imagePath); 如果我从PhotoShop或IE / Firefox / Chrome复制32位图像并运行上述代码,则输出会丢失其Alpha通道,而是在黑色背景下保存。 图像保存为PNG,可以包含Alpha通道。 正确的数据似乎在剪贴板中,因为粘贴到其他应用程序(例如PhotoShop)会保留alpha通道。 任何人都可以让我摆脱痛苦吗? 提前致谢! 更新: // outputs FALSE Debug.WriteLine(Image.IsAlphaPixelFormat(Clipboard.GetImage().PixelFormat)); 以上表明,一旦从剪贴板中取出,alpha数据就会丢失。 也许我需要以其他方式从剪贴板中取出它?