1、展示实现效果图
当输入对应网址即可生成对应网址裁剪的图片
2、实现代码
using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 网页截图 { class Program { [STAThread] static void Main(string[] args) { int webWidth = 0; int webHeight = 0; string url = "http://www.4399.com/"; WebBrowser web = new WebBrowser(); web.Navigate(url); while (web.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } //获取网页高度和宽度 webWidth = web.Document.Body.ScrollRectangle.Width; webHeight = web.Document.Body.ScrollRectangle.Height; GetImage thumb = new GetImage(url, webWidth, webHeight, webWidth, webHeight); // 宽高根据要获取快照的网页决定 System.Drawing.Bitmap x = thumb.GetBitmap(); string FileName = DateTime.Now.ToString("yyyyMMddhhmmss"); x.Save(@"D:" + FileName + ".jpg"); Console.WriteLine("成功"); Console.ReadKey(); } } public class GetImage { private int S_Height; private int S_Width; private int F_Height; private int F_Width; private string MyURL; public int ScreenHeight { get { return S_Height; } set { S_Height = value; } } public int ScreenWidth { get { return S_Width; } set { S_Width = value; } } public int ImageHeight { get { return F_Height; } set { F_Height = value; } } public int ImageWidth { get { return F_Width; } set { F_Width = value; } } public string WebSite { get { return MyURL; } set { MyURL = value; } } public GetImage(string WebSite, int ScreenWidth, int ScreenHeight, int ImageWidth, int ImageHeight) { this.WebSite = WebSite; this.ScreenWidth = ScreenWidth; this.ScreenHeight = ScreenHeight; this.ImageHeight = ImageHeight; this.ImageWidth = ImageWidth; } public Bitmap GetBitmap() { WebPageBitmap Shot = new WebPageBitmap(this.WebSite, this.ScreenWidth, this.ScreenHeight); Shot.GetIt(); Bitmap Pic = Shot.DrawBitmap(this.ImageHeight, this.ImageWidth); return Pic; } } class WebPageBitmap { WebBrowser MyBrowser; string URL; int Height; int Width; public WebPageBitmap(string url, int width, int height) { this.Height = height; this.Width = width; this.URL = url; MyBrowser = new WebBrowser(); MyBrowser.ScrollBarsEnabled = false; MyBrowser.Size = new Size(this.Width, this.Height); } public void GetIt() { MyBrowser.Navigate(this.URL); while (MyBrowser.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } } public Bitmap DrawBitmap(int theight, int twidth) { Bitmap myBitmap = new Bitmap(Width, Height); Rectangle DrawRect = new Rectangle(0, 0, Width, Height); MyBrowser.DrawToBitmap(myBitmap, DrawRect); System.Drawing.Image imgOutput = myBitmap; System.Drawing.Image oThumbNail = new Bitmap(twidth, theight, imgOutput.PixelFormat); Graphics g = Graphics.FromImage(oThumbNail); g.CompositingQuality = CompositingQuality.HighSpeed; g.SmoothingMode = SmoothingMode.HighSpeed; g.InterpolationMode = InterpolationMode.HighQualityBilinear; Rectangle oRectangle = new Rectangle(0, 0, twidth, theight); g.DrawImage(imgOutput, oRectangle); try { return (Bitmap)oThumbNail; } catch (Exception ex) { return null; } finally { imgOutput.Dispose(); imgOutput = null; MyBrowser.Dispose(); MyBrowser = null; } } } }
源代码:
链接:https://pan.baidu.com/s/1MxesmlNL2PR0G3OEP-dXCg
提取码:n1ov
后续会陆续更新其他资料,喜欢请关注哦!