Apresento a vocês o script pronto e funcional para se criar, em C# ASP.NET, gráficos.
É um exemplo simples que pode ser facilmente adaptado para N funcionalidades, como por exemplo aquelas chaves de verificações para evitar-se o uso de rôbos ao ler uma página.
Este exemplo foi criado no Framework 3.5 porém, funciona perfeitamente no 2.0 apesar de não ter testado em outros, acredito que funcione também. Nossa aplicação tera apenas um único arquivo DEFAULT.ASPX, e não iremos definir nenhum objeto na área designer, tudo será criado em tempo de execução.
MÃOS A OBRA! Abra seu Visual Studion (VS) e inicie um novo Web Site escolha a linguagem C#. Na guia Solution Explorer selecione o arquivo DEFAULT.ASPX e click no botao View Code, será aberto o arquivo DEFAULT.ASPX.CS entre com o código a seguir.
Espero que esta possa lhe ser de grande utilidade.
// -- Default.ASPX.CS (Inicio) using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Text; //using System.Drawing.Design; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Estou Criando um Objeto do tipo BITMAP - Uma Imagem Bitmap objBMP; // Criando Objeto do Tipo Imagem Graphics objGrafico; // Determinando qual sera a altura/largura da imagem BMP; estou criando uma area que ocupa a tela inteira objBMP = new Bitmap(800, 640); // Adicionando a Imagem BMP ao objeto grafico, que sera usado para mostrar a imagem objGrafico = Graphics.FromImage(objBMP); // Determinando a cor de fundo da imagem //Color representa ARGB (Alpha, Red, Green, Blue) o melhor e deixar como White objGrafico.Clear(Color.Violet ); // Criando objeto usado para desenhar linhas e curvas Pen p = new Pen(Color.Yellow, 0); // Armazena um conjunto de quadro inteiros que representam a localizacao e o tamanho de um retangulo. // Para a funcões Region mais avancadas, utilize um objeto Region ao inves de Retangle. // O tamanho do grafico esta utilizando quase todo o espaco da area 800 x 640 int nLeft = 100; int nTop = 50; int nWidth = 600; int nHeight = 500; Rectangle rect = new Rectangle(nLeft, nTop, nWidth, nHeight); objGrafico.DrawEllipse(p, rect); // Quantidade de faixa do grafico o numero de faixas poderia por exemplo ser um vetor Brush b1 = new SolidBrush(Color.Silver); Brush b2 = new SolidBrush(Color.Tomato); Brush b3 = new SolidBrush(Color.Blue); Brush b4 = new SolidBrush(Color.Yellow); // Aqui estou anexando o numero de faixas ao objeto grafico, observe que inicio a peira faixa em 0, // na sequencia vem o largura da faixa preste atencao pois o TOTAL da largura da feixa deve obrigatória // mente resultar em 360, pois tota circunferencia tem 300 graus. // TESTE: Troque o 120 por 80 e execute. objGrafico.FillPie(b1, rect, 0f , 80f); // Silver objGrafico.FillPie(b2, rect, 80f , 80f); // Tomato objGrafico.FillPie(b3, rect, 160f , 80f); // Blue objGrafico.FillPie(b4, rect, 240f , 120f); // Yellow // Criando um objeto do tipo FONTE FontFamily objFonte = new FontFamily(GenericFontFamilies.Monospace); FontStyle objFonteStyle = FontStyle.Bold | FontStyle.Italic ; // Determinando o TAMANHO e ESTILO da fonte Font font = new Font(objFonte, 16, objFonteStyle); // Determinando a COR da fonte SolidBrush brush = new SolidBrush(Color.Black); // Utilizo o metodo DrawString, para anexar escrever no grafico objGrafico.DrawString("Criando Graficos em ASP.NET ", font, brush, nLeft+250, nTop-30); objGrafico.DrawString("HereClick Software Office ME", font, brush, nLeft-50, nTop+530); //Esta e a parte que salva o Bitmap na OutputStream. // A OutputStream e justamente um objeto que guarda tudo o que vai ser enviado ao usuario. // No caso de requisicões feitas para este arquivo .aspx, o que sera retornado ao usuario sera uma // imagem em formato jpeg em vez de um documento HTML. E esta linha que mostra o grafico na tela objBMP.Save(Response.OutputStream, ImageFormat.Gif); // Armazeno a imagem em disco, para utiliza-la. objBMP.Save(Server.MapPath("x.jpg"), ImageFormat.Jpeg); // Limpo os objetos criado da memoria; objFonte.Dispose(); objBMP.Dispose(); objGrafico.Dispose(); } } // -- Default.ASPX.CS (Fim)