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(); }
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.