【问题标题】:save images in webbrowser control without redownloading them from the internet将图像保存在 webbrowser 控件中,而无需从 Internet 重新下载它们
【发布时间】:2011-02-03 17:53:08
【问题描述】:

是否可以将网络浏览器控件中的图像直接保存到硬盘,而无需再次从 Internet 下载?

假设我导航到一个有 15 张图片的网站。它们都在我的网络浏览器中查看,但我现在如何保存它们而不需要下载它们?

【问题讨论】:

    标签: c# image browser save


    【解决方案1】:

    这是我能找到的唯一方法。想知道其他人是否有更好的方法。

    复制自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 之后。
    猜你喜欢
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多