using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Threading; using System.Windows.Forms; using System; namespace ConsoleApp1 { public class CaptureWebPage { public byte[] picbytes; public CaptureWebPage(string url) { string bmpPath =DateTime.Now.ToString("yyyyMMddHHmmssffff")+".bmp"; Bitmap bmp = new Bitmap(1000,10000); makepicture(url); bmp = ByteToImage(picbytes); bmp.Save(bmpPath); } private void makepicture(string url) { Thread thread = new Thread(delegate () { using (WebBrowser browser = new WebBrowser()) { browser.ScrollBarsEnabled = true; browser.AllowNavigation = true; browser.Navigate(url); browser.Width = 1024; browser.Height =10000; browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted); while (browser.ReadyState != WebBrowserReadyState.Complete) { System.Windows.Forms.Application.DoEvents(); } } }); thread.SetApartmentState(ApartmentState.STA); thread.Start(); thread.Join(); } private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser browser = sender as WebBrowser; using (Bitmap bitmap = new Bitmap(browser.Width, browser.Height)) { browser.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, browser.Width, browser.Height)); using (MemoryStream stream = new MemoryStream()) { bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png); byte[] bytes = stream.ToArray(); picbytes = bytes; } } } public static Bitmap ByteToImage(byte[] blob) { MemoryStream mStream = new MemoryStream(); byte[] pData = blob; mStream.Write(pData, 0, Convert.ToInt32(pData.Length)); Bitmap bm = new Bitmap(mStream, false); mStream.Dispose(); return bm; } } }
原文链接: https://www.cnblogs.com/Fred1987/p/11116234.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/402203
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!