• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c#根据网址抓取网页截屏生成图片的示例

c#根据网址抓取网页截屏生成图片的示例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#示例,c#代码示例,c#程序示例,c#访问网址,c#打开网址等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

public class WebsiteToImage
{
private Bitmap m_Bitmap;
private string m_Url;
private string m_FileName = string.Empty;

public WebsiteToImage(string url)
{
// Without file
m_Url = url;
}

public WebsiteToImage(string url, string fileName)
{
// With file
m_Url = url;
m_FileName = fileName;
}

public Bitmap Generate()
{
// Thread
var m_thread = new Thread(_Generate);
m_thread.SetApartmentState(ApartmentState.STA);
m_thread.Start();
m_thread.Join();
return m_Bitmap;
}

private void _Generate()
{
var browser = new WebBrowser { ScrollBarsEnabled = false };
browser.Navigate(m_Url);
browser.DocumentCompleted += WebBrowser_DocumentCompleted;

while (browser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}

browser.Dispose();
}

private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// Capture
var browser = (WebBrowser)sender;
browser.ClientSize = new Size(browser.Document.Body.ScrollRectangle.Width, browser.Document.Body.ScrollRectangle.Bottom);
browser.ScrollBarsEnabled = false;
m_Bitmap = new Bitmap(browser.Document.Body.ScrollRectangle.Width, browser.Document.Body.ScrollRectangle.Bottom);
browser.BringToFront();
browser.DrawToBitmap(m_Bitmap, browser.Bounds);

// Save as file?
if (m_FileName.Length > 0)
{
// Save
m_Bitmap.SaveJPG100(m_FileName);
}
}
}

public static class BitmapExtensions
{
public static void SaveJPG100(this Bitmap bmp, string filename)
{
var encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
bmp.Save(filename, GetEncoder(ImageFormat.Jpeg), encoderParameters);
}

public static void SaveJPG100(this Bitmap bmp, Stream stream)
{
var encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
bmp.Save(stream, GetEncoder(ImageFormat.Jpeg), encoderParameters);
}

public static ImageCodecInfo GetEncoder(ImageFormat format)
{
var codecs = ImageCodecInfo.GetImageDecoders();

foreach (var codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}

// Return
return null;
}
}
</div>


调用方式如下:
</div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • c#中合并excel表格的方法示例
  • C#裁剪,缩放,清晰度,水印处理操作示例
  • C#获取HTML文本的第一张图片与截取内容摘要示例代码
  • C#实现创建桌面快捷方式与添加网页到收藏夹的示例
  • C#实现的微信网页授权操作逻辑封装示例
  • C#代码实现短信验证码接口示例
  • C#信号量用法简单示例
  • C#实现冒泡排序算法的代码示例
  • C#微信公众号与订阅号接口开发示例代码
  • C#中使用基数排序算法对字符串进行排序的示例

相关文章

  • 2017-05-28C#找出字符串中第一个字母并大写的方法
  • 2017-05-28C#实现将json转换为DataTable的方法
  • 2017-05-2810个C#程序员经常用到的实用代码片段
  • 2017-05-28PC蓝牙通信C#代码实现
  • 2017-05-28C# 如何在MVC3中取消备用控制器的选择
  • 2017-05-28C#利用微软自带库进行中文繁体和简体之间转换的方法
  • 2017-05-28重温C# clr 笔记总结
  • 2017-05-28C#模拟MSN窗体抖动的实现代码
  • 2017-05-28C# 无边框窗体边框阴影效果的简单实现
  • 2017-05-28使用C#调用系统API实现内存注入的代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#中异步Socket通信编程代码实例
    • C#编程实现发送邮件的方法(可添加附件)
    • C#中DataGridView动态添加行及添加列的方法
    • C#使用正则表达式实现首字母转大写的方法
    • C#向线程中传递多个参数的解决方法(两种)
    • 泛型编程去掉字段重复数据的方法
    • C#中使用JSON.NET实现JSON、XML相互转换
    • C#使用ODBC与OLEDB连接数据库的方法示例
    • C#在Unity游戏开发中进行多线程编程的方法
    • C#生成带logo的二维码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有