Geral

Criando imagens dinâmicamente no ASP.NET

A classe System.Drawing possui inúmeros recursos para criação e edição de imagens. Para iniciarmos mostrando um pouco do seu poder vamos mostrar como conseguimos criar dinâmicamente imagens do “zero”.

Para que usarmos de exemplo cria um novo projeto WEB em seu Visual Studio. Agora acesse o Codebehind de sua página ASPX, na qual criaremos a imagem dinâmicamente.

Inicialmente temos que importar a classe System.Drawing no topo da página.

using System.Drawing;

Para criarmos a imagem devemos usar o código abaixo em algum evento da sua aplicação, portanto podemos colocar no load da página ou até mesmo em um clique de botão. Abaixo mostramos o código comentado sendo executado diretamente no load da página, ou seja, ao abrir o página já visualizamos o resultado, a imagem criada na tela.

protected void Page_Load(object sender, EventArgs e)
{
    //Cria um objeto do tipo Bitmap
    Bitmap objBitmap = new Bitmap(120, 30);
    //Habilita o objeto bitmap criado para edição
    Graphics objGraphics = Graphics.FromImage(objBitmap);
    //Desenha um retangulo com cores e dimensões especificas
    objGraphics.FillRectangle(new SolidBrush(Color.LightBlue),
           0, 0, 120, 30);
    //Desenha um circulo com cores e dimensões especificas
    objGraphics.FillEllipse(new SolidBrush(Color.Blue), 3, 9, 10, 10);
    objGraphics.FillEllipse(new SolidBrush(Color.Yellow), 4, 10, 8, 8);
    //Adiciona um texto na imagem
    objGraphics.DrawString(“Bertucci Soluções”, new Font(“Tahoma”, 8),
        new SolidBrush(Color.Green), 16, 8);
    //Cria a salva a imagem para exibição na tela
    Response.Clear();
    Response.ContentType = “image/jpeg”;
    objBitmap.Save(Response.OutputStream,
        System.Drawing.Imaging.ImageFormat.Jpeg);
    objGraphics.Dispose();
    objBitmap.Dispose();
}  

Resultado
tela01-ImagemDinamica


Bookmark and Share

1 Comment

  1. Bom dia Adriano , primeiramente parabéns pelo artigo ficou bem bacana me ajudou bastante.
    Porém gostaria de saber se você poderia me ajudar com uma dúvida que estou tendo , no meu caso eu necessito criar esse jpeg mais de uma página asp.net inteira , ou de um panel especifico , isso é possivel ?

    Obrigado.

Deixe uma resposta