10
是否可以将网页浏览器控件中的图像直接保存到硬盘中,而无需从互联网上再次下载它们?将图像保存在网页浏览器控件中,无需从互联网上重新下载图像
比方说,我导航到有15个图像的网站。他们都在我的浏览器中查看,但我现在如何保存它们而无需下载它们?
是否可以将网页浏览器控件中的图像直接保存到硬盘中,而无需从互联网上再次下载它们?将图像保存在网页浏览器控件中,无需从互联网上重新下载图像
比方说,我导航到有15个图像的网站。他们都在我的浏览器中查看,但我现在如何保存它们而无需下载它们?
这是我能找到的唯一途径。好奇的是,如果其他人有更好的方法。
复制你必须添加引用Microsoft.mshtml,当然等待的用于完成加载文档。这将保存加载在System.Windows.Forms.WebBrowser webBrowser1
组件中的图像 - 即使是你不想要的图像。
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);
}
}
喜...感谢回答, 我只是希望有人会想出另一种解决方案,因为我真的无法用这样的剪贴板... – lebhero 2010-04-02 19:22:26
好,如果剪贴板是关闭的限制,那么其他比通过缓存,唯一的另一种方式可能是再次下载图像。但让我们看看别人想出什么 – Asher 2010-04-03 00:33:10
非常有用。可能希望添加保存和恢复旧剪贴板数据的功能。 var clipboardData = Clipboard.GetDataObject();'foreach'前面的''Clipboard.SetDataObject(clipboardData);''foreach'后''。 – iCantSeeSharp 2013-01-22 10:16:16