【发布时间】:2011-02-03 17:53:08
【问题描述】:
是否可以将网络浏览器控件中的图像直接保存到硬盘,而无需再次从 Internet 下载?
假设我导航到一个有 15 张图片的网站。它们都在我的网络浏览器中查看,但我现在如何保存它们而不需要下载它们?
【问题讨论】:
是否可以将网络浏览器控件中的图像直接保存到硬盘,而无需再次从 Internet 下载?
假设我导航到一个有 15 张图片的网站。它们都在我的网络浏览器中查看,但我现在如何保存它们而不需要下载它们?
【问题讨论】:
这是我能找到的唯一方法。想知道其他人是否有更好的方法。
复制自CodeProject
您必须添加对 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);
}
}
【讨论】:
var clipboardData = Clipboard.GetDataObject(); 在foreach 之前和Clipboard.SetDataObject(clipboardData); 在foreach 之后。