.Net 利用 WebBrowser 製作 網頁截圖 功能 .Net 利用 WebBrowser 製作 網頁截圖 功能
  .NET       ez      2012-06-20

.Net 可以輕鬆利用 WebBrowser 製作網頁截圖功能!

程式碼如下:

private void Main_Load(object sender, EventArgs e)
{
	WebBrowser wb = new WebBrowser();
	this.Controls.Add(wb);

	wb.Url = new Uri("http://www.google.com.tw/"); //要截取的網址
	while (wb.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents(); //偵測網頁是否載入完畢

	//如果寬度小於1024,就以1024為寬度,高度自動偵測
	wb.Width = 1024;
	Application.DoEvents();
	wb.Width = wb.Document.Body.ScrollRectangle.Width;
	if (wb.Width < 1024) wb.Width = 1024;
	Application.DoEvents();
	wb.Height = wb.Document.Body.ScrollRectangle.Height;
	Application.DoEvents();

	//截圖儲存為圖片
	using (Bitmap bmp = new Bitmap(wb.Width, wb.Height))
	{
		wb.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
		EncoderParameters myEncoderParameters = new EncoderParameters(1);
		myEncoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Compression, 100);
		bmp.Save("儲存檔案路徑", GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg), myEncoderParameters);
	}
}

/// <summary>
/// IMG編碼產生
/// </summary>
/// <param name="format"></param>
/// <returns></returns>
private ImageCodecInfo GetEncoder(ImageFormat format)
{
	ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
	foreach (ImageCodecInfo codec in codecs)
	{
		if (codec.FormatID == format.Guid) return codec;
	}
	return null;
}

標籤:   .NET

我要留言