сохранять изображения в веб-браузере без повторной загрузки их из Интернета - PullRequest
10 голосов
/ 02 апреля 2010

Можно ли сохранять изображения в элементе управления веб-браузером непосредственно на жесткий диск, не загружая их снова из Интернета?

Допустим, я перехожу на веб-сайт с 15 изображениями. Все они просматриваются в моем веб-браузере, но как я могу сохранить их сейчас без необходимости их загрузки?

1 Ответ

13 голосов
/ 02 апреля 2010

Это единственный способ найти. Любопытно, если у кого-то есть лучший способ.

Скопировано из 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);
  }
}
...