C#实现网页截图功能
生活随笔
收集整理的這篇文章主要介紹了
C#实现网页截图功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- //需要添加System.Drawing及System.Windows.Forms引用 ??
- using?System; ??
- using?System.Drawing; ??
- using?System.Drawing.Drawing2D; ??
- using?System.Drawing.Imaging; ??
- using?System.Windows.Forms; ??
- ??
- ??
- namespace?網頁截圖 ??
- { ??
- ????class?Program ??
- ????{ ??
- ????????[STAThread] ??
- ????????static?void?Main(string[]?args) ??
- ????????{ ??
- ????????????string?url?=?"http://www.yongfa365.com/"; ??
- ????????????MyLib.GetImage?thumb?=?new?MyLib.GetImage(url,?1024,?4000,?1024,?4000); ??
- ????????????System.Drawing.Bitmap?x?=?thumb.GetBitmap(); ??
- ????????????string?FileName?=?DateTime.Now.ToString("yyyyMMddhhmmss"); ??
- ??
- ????????????x.Save(@"C:\"?+?FileName?+?".jpg"); ??
- ????????????Console.WriteLine("成功"); ??
- ????????????Console.ReadKey(); ??
- ????????} ??
- ????} ??
- } ??
- ??
- ??
- ??
- ??
- ??
- namespace?MyLib ??
- { ??
- ????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://www.cnblogs.com/liufei88866/archive/2010/06/22/1762657.html
總結
以上是生活随笔為你收集整理的C#实现网页截图功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 火炎套装哪里来
- 下一篇: 大家有没有办xx会员卡的经历,花钱冲了卡