Web sayfamızı resim formatında nasıl kaydederiz
Web sayfamızı resim formatında nasıl kaydedeceğimize bir göz atalım.
1. Web Sitesi oluşturuyoruz.
2. System.Windows.Forms Reference’ini ekliyoruz.
3. AspCompat=”true” ekini ekliyoruz. Bilmeyen arkadaşlar tıklasınlar.
4.Son olarak da aşağıda vermiş olduğum namespace’leri arkaplan kod sayfanıza ekleyiniz.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; ExportWebPageToImage.aspx adında bir web sayfası oluşturun. İçeriği : <%@ Page Language="C#" AspCompat="true" AutoEventWireup="true" CodeFile="ExportWebPageToImage.aspx.cs" Inherits="ExportWebPageToImage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css"> .style1 { width: 100%; } </style> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="txtUrl" runat="server" Width="208px"></asp:TextBox><br /> <asp:Button ID="btnConvert" runat="server" Text="Resim formatına çevir" OnClick="btnConvert_Click" /> </div> </form> </body> </html> ExportWebPageToImage.aspx.cs yani ExportWebPageToImage.aspx sayfamızın arkaplan kodları... using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; public partial class ExportWebPageToImage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } public System.Drawing.Bitmap CaptureWebPage(string URL) { System.Windows.Forms.WebBrowser web = new System.Windows.Forms.WebBrowser(); // ScrollBar'ın resimimizde gözükmesini istemiyorsak false değerini veriyoruz. web.ScrollBarsEnabled = false; // Hiçbir hata bildirimi isteimyorsak true değerini veriyoruz. web.ScriptErrorsSuppressed = true; // Sayfamızı load up yapabiliriz. web.Navigate(URL); // Sayfa tamamıyla load up olana kadar bekle. while (web.ReadyState != WebBrowserReadyState.Complete) System.Windows.Forms.Application.DoEvents(); System.Threading.Thread.Sleep(1500); // Sayfa scripti yüklenene kadar beklenecek süre bildirimi. // Sayfa Görünümü //Web sayfamızın boyutlarıyla resmimizin boyutlarının aynı olması için gerekli tanımlamalar. int width = web.Document.Body.ScrollRectangle.Width; int height = web.Document.Body.ScrollRectangle.Height; web.Width = width; web.Height = height; // Sayfamızın bitmap formatında oluşturulması. System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height); // ve sonunda bitmap olarak resmedilmesi. web.DrawToBitmap(bmp, new System.Drawing.Rectangle(0, 0, width, height)); return bmp; // Sonuç olarak bitmap donderilmesi. } protected void btnConvert_Click(object sender, EventArgs e) { Bitmap bitmap = new Bitmap(CaptureWebPage(txtUrl.Text)); Response.ContentType = "image/jpeg"; bitmap.Save(Response.OutputStream, ImageFormat.Jpeg); bitmap.Dispose(); bitmap.Dispose(); Response.End(); } }