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