Criando efeitos em fotos no ASP.NET

Bom, sei que já escrevi esse artigo no linha de código e no código fonte, e também sei que não posto nada construtivo em meu blog faz tempo…  😉

por isso estou dando um copy+paste dele aqui em em blog!  ;P

Vamos lá….

O .Net possui uma excelente biblioteca para tratamento de imagens,  ela nos possibilita gerar efeitos,  recortes, desenhos  e etc, tudo através de uma “simples página asp.net.

Antigamente para criar efeitos em fotos precisavamos usar alguma IDE gráfica para depois publica-las na internet. Hoje podemos fazer isso on-line, sem perder tempo.

Neste momento você deve estar pensando, “isso deve ser algo MUITO DIFICIL!”

Mas acredite, não é!

Hoje teremos uma prova de como é fácil e simples brincar com fotos usando Dot.Net.

Para começar abra o Visual Studio, em seguida crie um projeto WebSite.

Em seu WebForm,  arraste 3 controles de imagem.

Defina uma imagem para o controle Image1.

Para o controle Image2 defina a ImageUrl como fotos.apx?tipo=negativo e para o controle Image3 defina a ImageUrl como fotos.apx?tipo=cinza

Exemplo:

<asp:Image ID=”Image1″ runat=”server”

ImageUrl=”foto.jpg” /><br />

<asp:Image ID=”Image2″ runat=”server”

ImageUrl=”fotos.aspx?tipo=negativo” /><br />

<asp:Image ID=”Image3″ runat=”server”

ImageUrl=”fotos.aspx?tipo=cinza” />


Acho que já deu para entender  o que vamos fazer mais adiante, certo? :-]

No .cs de sua página, adicione os namespaces System.Drawing e System.Drawing.Imaging em seguida crie o método Efeito. Este método possui a seguinte assinatura:

public void Efeito(string tipo)

Implementação:

public void Efeito(string tipo)

{

/*Aqui estamos definindo nossa imagem. Note que estamos carregando a imagem definida no Image1.
*No artigo gerando barras expliquei como funciona a classe Bitmap.*/

Bitmap bmp = new Bitmap(Server.MapPath(this.Image1.ImageUrl));

int x, y;

Byte RGB;

Color cor;

for (y = 0; y < bmp.Height; y++)

{

for (x = 0; x < bmp.Width; x++)

{

/*O metodo getPixel como o nome já diz,passa a cor do pixel nas posições de x,y.*/

cor = bmp.GetPixel(x, y);

RGB = cor.G;

/*Neste ponto escolhemos qual efeito usar. Lembrando que você pode criar seus próprios efeitos, basta modificar os valores do RGB.*/

if(tipo == “negativo”){

// Configuração para gerar o efeito de NEGATIVO

bmp.SetPixel(x, y,

Color.FromArgb(255, 255 – cor.R,

255 – cor.G, 255 – cor.B));

}

else

{

/* ajuste para gerar efeito cinza em sua foto! */

bmp.SetPixel(x, y, Color.FromArgb(RGB, RGB, RGB));

}

}

}

/* Neste ponto você informa ao browser que o documento enviado a ele, é uma imagem;*/

Response.ContentType = “image/jpeg”;

bmp.Save(Response.OutputStream,ImageFormat.Jpeg);

bmp.Dispose();

}

No Page_load de sua página adicione a instrução abaixo.

if(Request.QueryString[“tipo”] != null)

Efeito(Request.QueryString[“tipo”]);

O resultado será semelhante a imagem abaixo:

viu como a mágica acontece?  😉

[]’s

Anúncios

Systems Analyst / .Net Developer

Marcado com: , , , , , , , , , , , , , ,
Publicado em Artigos
Um comentário em “Criando efeitos em fotos no ASP.NET
  1. Thiago disse:

    Olá Franck , primeiro queria agradecer os conteudos disponibilizados por vc. Segundo, eu estou a utilizar aquele joguinhu de forca em java desenvolvido por vc, achei muito legal ate acrescentei novas palavras na Biblioteca de palavras para ter uma diversidade maior. Bom eu queria saber se é possivel de alguma maneira acrescentar uma especie de rank , assim com os melhores tempos obtidos pelos jogadores.
    Se souber de alguma forma me avise noturno_xtreme@yahoo.com.br
    Desde ja agradeço , abraço.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: