3
A
回答
12
放置在您的網頁,並設置的ImageUrl到snapshot.aspx網頁的圖片控制。您是否可以爲頁面設置一些查詢字符串選項。
snapshot.aspx?站點= www.google.come &寬度= 100 &高度= 80 & capWidth = 800 &大寫高度= 600
site This tells the page which site to capture
width width of the thumnail
height height of the thumbnail
capWidth What Width should the Site capture be (the thumbnail is based on this size)
capHeight What Height should the Site capture be.
這裏是代碼
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Imaging;
using System.Threading;
public partial class snapshot : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string url = ((string.IsNullOrEmpty(Request.Params["site"])) ? "www.google.com":Request.Params["site"]);
int width = ((string.IsNullOrEmpty(Request.Params["width"])) ? 200 : int.Parse(Request.Params["width"]));
int height = ((string.IsNullOrEmpty(Request.Params["height"])) ? 140 : int.Parse(Request.Params["height"]));
int capWidth = ((string.IsNullOrEmpty(Request.Params["capWidth"])) ? 800 : int.Parse(Request.Params["capWidth"]));
int capHeight = ((string.IsNullOrEmpty(Request.Params["capHeight"])) ? 600 : int.Parse(Request.Params["capHeight"]));
string address = "http://" + url;
Bitmap thumbnail = WebsiteThumbnailImageGenerator.GetWebSiteThumbnail(address, capWidth, capHeight, width, height);
Response.ContentType = "image/jpeg";
thumbnail.Save (Response.OutputStream, ImageFormat.Jpeg);
}
}
public class WebsiteThumbnailImageGenerator
{
public static Bitmap GetWebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)
{
WebsiteThumbnailImage thumbnailGenerator = new WebsiteThumbnailImage(Url, BrowserWidth, BrowserHeight, ThumbnailWidth, ThumbnailHeight);
return thumbnailGenerator.GenerateWebSiteThumbnailImage();
}
private class WebsiteThumbnailImage
{
public WebsiteThumbnailImage(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)
{
this.m_Url = Url;
this.m_BrowserWidth = BrowserWidth;
this.m_BrowserHeight = BrowserHeight;
this.m_ThumbnailHeight = ThumbnailHeight;
this.m_ThumbnailWidth = ThumbnailWidth;
}
private string m_Url = null;
public string Url
{
get
{
return m_Url;
}
set
{
m_Url = value;
}
}
private Bitmap m_Bitmap = null;
public Bitmap ThumbnailImage
{
get
{
return m_Bitmap;
}
}
private int m_ThumbnailWidth;
public int ThumbnailWidth
{
get
{
return m_ThumbnailWidth;
}
set
{
m_ThumbnailWidth = value;
}
}
private int m_ThumbnailHeight;
public int ThumbnailHeight
{
get
{
return m_ThumbnailHeight;
}
set
{
m_ThumbnailHeight = value;
}
}
private int m_BrowserWidth;
public int BrowserWidth
{
get
{
return m_BrowserWidth;
}
set
{
m_BrowserWidth = value;
}
}
private int m_BrowserHeight;
public int BrowserHeight
{
get
{
return m_BrowserHeight;
}
set
{
m_BrowserHeight = value;
}
}
public Bitmap GenerateWebSiteThumbnailImage()
{
Thread m_thread = new Thread(new ThreadStart(_GenerateWebSiteThumbnailImage));
m_thread.SetApartmentState(ApartmentState.STA);
m_thread.Start();
m_thread.Join();
return m_Bitmap;
}
private void _GenerateWebSiteThumbnailImage()
{
WebBrowser m_WebBrowser = new WebBrowser();
m_WebBrowser.ScrollBarsEnabled = false;
m_WebBrowser.Navigate(m_Url);
m_WebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
while (m_WebBrowser.ReadyState != WebBrowserReadyState.Complete)
Application.DoEvents();
m_WebBrowser.Dispose();
}
private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser m_WebBrowser = (WebBrowser)sender;
m_WebBrowser.ClientSize = new Size(this.m_BrowserWidth, this.m_BrowserHeight);
m_WebBrowser.ScrollBarsEnabled = false;
m_Bitmap = new Bitmap(m_WebBrowser.Bounds.Width, m_WebBrowser.Bounds.Height);
m_WebBrowser.BringToFront();
m_WebBrowser.DrawToBitmap(m_Bitmap, m_WebBrowser.Bounds);
m_Bitmap = (Bitmap)m_Bitmap.GetThumbnailImage(m_ThumbnailWidth, m_ThumbnailHeight, null, IntPtr.Zero);
}
}
}
0
您還可以簡單地使用1000個Web服務之一:
相關問題
- 1. 在WPF中生成縮略圖圖像
- 2. 在ASP.NET中生成圖像縮略圖?
- 3. 使用X/Gui-less linux生成網頁的圖像/縮略圖
- 4. 生成網站縮略圖?
- 5. 圖像縮略圖的鏈接
- 6. 生成視頻的縮略圖圖像
- 7. 網站截圖縮略圖生成器
- 8. og:圖像和Facebook鏈接縮略圖
- 9. 裁剪圖像,並生成縮略圖
- 10. 爲Android 1.5生成縮略圖圖像
- 11. 生成縮略圖和造型圖像
- 12. 生成縮略圖與易縮略圖
- 13. PDF縮略圖生成器從PDF的第一頁生成縮略圖
- 14. 生成縮略圖
- 15. 如何生成HTML頁面的縮略圖圖像
- 16. 圖像縮放/成長在縮略圖
- 17. Android - 在圖庫中生成縮略圖
- 18. 生成在客戶端訪問的網頁的縮略圖
- 19. 請求時在運行時生成縮略圖圖像,或在硬盤中預先生成縮略圖?
- 20. 在iOS上生成本地網頁的縮略圖
- 21. 在HttpHandler中通過Windows API生成圖像的縮略圖
- 22. 如何在300X200尺寸的PHP中生成圖像縮略圖?
- 23. .NET 4網站縮略圖生成
- 24. Aspose:爲第一頁生成縮略圖
- 25. 生成PDF頁面縮略圖
- 26. 生成縮略圖像每X秒
- 27. 如何將縮略圖圖像鏈接到大圖像
- 28. 如何在C#中爲PPTX文件生成縮略圖圖像?
- 29. 防止生成縮略圖的熱鏈接?
- 30. 鏈接加載沒有Facebook和鏈接縮略圖在網站
我不想使用任何第三方工具。 – NLV 2010-05-07 10:01:10
我更新了答案 – XGreen 2010-05-07 10:26:29
太棒了!正是我在找什麼。謝謝XGreen。 – NLV 2010-05-07 12:01:07