从web浏览器加载图像,无需重新下载或复制

本文关键字:新下载 下载 复制 浏览器 web 加载 图像 | 更新日期: 2023-09-27 18:07:20

我正在从剪贴板复制到从浏览器加载图像

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中,所有的图像都到临时目录,如果同样的情况发生在这里,有没有办法得到保存图像的路径?

从web浏览器加载图像,无需重新下载或复制

对于页面上的每个图像,您可以收集其URL,然后调用WinINET缓存枚举函数(例如FindFirstURLCacheEntry)来定位临时Internet文件文件夹中的后备缓存文件。但是,不能保证该文件将在缓存中,因为它可能带有禁止缓存的头文件,等等。

你可以考虑的一种方法是使用FiddlerCore (www.fiddler2.com/core)在你的应用程序;然后,您可以将所有传输的图像"断开"并对它们进行任何操作。