Este é um pequeno exemplo para criar e/ou manipular imagens em tempo de execução. Uma utilização bem interessante é:
<img src="imagem.aspx">
ou
<img src="imagem.aspx?texto=Bom dia">
Este tipo de recurso sempre me foi muito necessário, o qual eu só tive resultados em servidores que desponibilizavam o componente ASPImage ou com a linguagem PHP. A aplicação recebia uma imagem, upload via web, e salvava 3 arquivos dessa mesma imagem, em tamanhos variados.
Neste exemplo, é criado uma imagem como um "contador de Hits".
===== Usando C#
<% @Page language="c#" ContentType="image/jpeg" %>
<% @Import Namespace="System.Drawing" %>
<% @Import Namespace="System.Drawing.Imaging" %>
<% @Import Namespace="System.Drawing.Drawing2D" %>
<%
Response.ClearContent();
// criando novo Bitmap no formato 24bit, dimensões 120x30
Bitmap imagem = new Bitmap(120, 30, PixelFormat.Format24bppRgb);
// criando novo objeto gráfico (objeto que será manipulado)
Graphics g = Graphics.FromImage(imagem);
// contando (tentei fazer isso incrementar, mas não deu certo)
Application["intPageCount"] = 1;
// limpa a imagem (neste caso, coloca a cor do fundo)
g.Clear(Color.Yellow);
// antialias (suavizando serrilhado)
g.SmoothingMode = SmoothingMode.AntiAlias;
// pinta o número na imagem criada
g.DrawString("Conta: " + Application["intPageCount"], new Font("verdana",14,FontStyle.Bold),SystemBrushes.WindowText, new PointF(2,2));
// cria efeito degrade
g.FillRectangle(new LinearGradientBrush(new Point(0,0), new Point(120,30), Color.FromArgb(0,0,0,0),Color.FromArgb(255,255,255,255)),0,0,120,30);
// exibe a imagem
imagem.Save(Response.OutputStream, ImageFormat.Jpeg);
// desalocando objetos da memória
g.Dispose();
imagem.Dispose();
Response.End();
%>
===== Usando VB
<%@ page language="vb" contenttype="image/jpeg" %>
<%@ import namespace="system.drawing" %>
<%@ import namespace="system.drawing.imaging" %>
<%@ import namespace="system.drawing.drawing2d" %>
<%
response.clear
' criando novo Bitmap no formato 24bit, dimensões 120x30
dim imagem as New bitmap(120, 30, pixelformat.format24bpprgb)
' criando novo objeto gráfico (objeto que será manipulado)
dim g as graphics = graphics.fromImage(imagem)
' contando
application("intPageCount")+=1
' limpa a imagem (neste caso, coloca a cor do fundo)
g.clear(color.yellow)
' antialias (suavizando serrilhado)
g.smoothingMode = smoothingMode.antiAlias
' pinta o número na imagem criada
g.drawString("Conta: " & application("intPageCount"), New font("verdana",14,fontstyle.bold),systembrushes.windowtext, New pointF(2,2))
' cria efeito degrade
g.FillRectangle(New linearGradientBrush(New point(0,0), New point(120,30), color.fromArgb(0,0,0,0),color.fromArgb(255,255,255,255)),0,0,120,30)
' exibe a imagem
imagem.save(response.outputstream, imageformat.jpeg)
' desalocando objetos da memória
g.dispose()
imagem.dispose()
response.end
%>
exemplo1: http://www.fixe.com.br/asp4d/imagem1.aspx
exemplo2: http://www.fixe.com.br/asp4d/imagem2.aspx
download do código: http://www.fixe.com.br/asp4d/image-x.zip
0 comentários:
Postar um comentário