我怎么能保存到硬盘内的图像浏览器控制,即使浏览器有ScrollBarsEnable为真

本文关键字:浏览器 控制 为真 ScrollBarsEnable 图像 保存 怎么能 硬盘 | 更新日期: 2023-09-27 17:50:28

这是我现在使用的代码:

int imagescount = 0;
private void SaveImageFromWebBrowser()
{
    Bitmap bitmap = new Bitmap(webBrowser1.Width, webBrowser1.Height);
    webBrowser1.DrawToBitmap(bitmap, new Rectangle(0, 0, webBrowser1.Width, webBrowser1.Height));
    bitmap.Save(@"e:'webbrowserimages'wbImage" + imagescount.ToString("D6") + ".bmp",
                System.Drawing.Imaging.ImageFormat.Bmp);
    bitmap.Dispose();
    imagescount++;
}

问题是有些图像较大,然后有滚动条其他图像较小,所以浏览器不需要滚动条。但是带有滚动条的大图像在硬盘上的图像我看到整个带有滚动条的web浏览器控件!

我想在WebBbrowser控件中获得整个图像。只保存图片,不保存整个控件!

我怎么能保存到硬盘内的图像浏览器控制,即使浏览器有ScrollBarsEnable为真

首先,您需要为您的项目添加一个引用,名为:Microsoft.mshtml

:

int imagescount = 0;
        private void SaveImageFromWebBrowser()
        {
            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(@"e:'webbrowserimages'Image" + imagescount.ToString("D6") + ".bmp",
                             System.Drawing.Imaging.ImageFormat.Bmp);
                }
                imagescount++;
            }
        }

工作完美。