Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ4 ЛабграфWEB_.doc
Скачиваний:
7
Добавлен:
14.05.2015
Размер:
415.23 Кб
Скачать

Отображение графической информации с использованием дополнительной страницы

В данном способе для формирования графического изображения требуется отдельная .ASPX страница. Страница не имеет HTML содержания, ее основная задача - извлечение параметров из URL и использование их для формирования картинки.

В данном примере показано использование класса Page для создания страницы ASP.NET фонового кода и его использования для вывода графической информации.

Добавим к проекту новую Web форму MakeGraph.aspx и оставим в ней только первую строчку HTML кода:

<%@ Page Language="C#" AutoEventWireup="true"

CodeFile="MakeGraph.aspx.aspx.cs" Inherits="MakeGraph.aspx" %>

Как и ранее определим необходимые объекты, и код формирования изображения:

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;

public partial class MakeGraph : System.Web.UI.Page

{

private Bitmap objBitmap;

private Graphics objGraphics;

private Pen objPen;

private void Page_Load(object sender, System.EventArgs e)

{

objBitmap = new Bitmap(800, 900);

//Графическое представление objBitmap

objGraphics = Graphics.FromImage(objBitmap);

objGraphics.Clear(Color.GhostWhite);

//Далее можем рисовать на холсте все,

//что нам хочется, задавая параметры пера,

//линий, кистей

objPen = new Pen(Color.Blue);

objPen.DashStyle = DashStyle.Dot;

objPen.Width = 1;

objGraphics.DrawLine(objPen, 40, 0, 400, 0);

SolidBrush myBrush = new SolidBrush(Color.Silver);

objGraphics.FillRectangle(myBrush, 2, 2, 45, 78);

//И т.д и т.п

//Отображаем Bitmap с помощью OutputStream

objBitmap.Save(Response.OutputStream, ImageFormat.Gif);

}//private void Page_Load

}

class MakeGraph мы определили как наследника Page - класса, который представляет файл .aspx, называемый также страницей веб-форм, запрашиваемый с сервера, где выполняется веб-приложение ASP.NET.

Этот класс целесообразно наследовать, когда необходимо создать страницу веб-форм, используя метод фонового кода. (Visual Studio .NET, автоматически используют эту модель для создания страниц веб-форм, так как объект Page является именованным контейнером для всех серверных элементов управления на странице.).

Класс Page связан с файлами, имеющими расширение .aspx. Эти файлы компилируются во время выполнения как объекты Page и кэшируются в памяти сервера.

Пространства имен System.Web.UI, System.Web.UI.WebControls, System.HTML.UI.WebControls, как раз и обеспечивают возможности класса Page.

Для использования данного кода, в вызывающей странице достаточно поместить тег:

<IMG src="MakeGraph.aspx">

Либо воспользоваться следующим вызовам в Default.aspx.cs:

private void Page_Load(object sender, System.EventArgs e)

{

Image1.Attributes.Add("src","getgraph.aspx");

}

Для вывода файлов можно использовать следующий код файла MakeGraph.aspx:

protected void Page_Load(object sender, EventArgs e)

{

//Картинка хранится в Files/Images/ там где установлено приложение

string sFilename=Server.MapPath(@"Files/Images/Имя_Картинки");

Response.ContentType = "image/png";

Response.Write(sFilename);

}

Вызов остался тотже. Используя вызов с параметрами, можно выводить различные картинки.