Conheça o Plugfeed | » Início » Programação » Personalizando Imagens com ASP, parte 1
Conheça o Plugfeed | » Início » Programação » Personalizando Imagens com ASP, parte 1 -->
 
Avaliação: | Publicado em: 04/09/2005
Personalizando Imagens com ASP, parte 1
Johnatan Oliveira Graduando em Tec. Informática e Aplicações Web, é desenvolvedor ASP/SQL Server e atua no mercado web a cerca de 4 anos como desenvolvedor e design de interfaces. É apaixonado por Flash MX/Action Script. Atualmente é Diretor de Projetos do Portal Plugmasters, colaborador da Revista WWW.COM.BR, onde escreve sobre ASP e Flash e designer/programador de uma agência web. Além de manter o site johnatan.net.
Personalizando Imagens com ASP, parte 1

Olá Pessoal, vou postar aqui a primeira parte da minha matéria escrita para a Revista WWW.COM.BR (Edição 66) da Editora Europa, falando um pouco sobre personalização de imagens com ASP, é uma matéria muito legal, bom proveito. Aproveitando, gostaria de agradecer a Sérgio Vinícius (Editor da Revista W), pela atenção e apoio.

Vamos lá!

Você já parou pra pensar o quanto “personalizar” é importante!? O quanto deixar as coisas a sua maneira, é a melhor forma de se conseguir a perfeita identificação com o seu trabalho? Pois é! Personalizar é essencial, pois todos partem da mesma base, e é neste momento que percebemos o tamanho da sua importância. É com base neste segmento que escrevo esta matéria sobre a Personalização de Imagens com o ASP. Ao longo deste novo aprendizado, você estará apto a: Fazer upload de imagens(jpg,jpeg,bmp,gif,png) sem uso de componentes, Utilizar o componente AspJpeg(http://www.aspjpeg.com/) para Redimensionar Imagens, Alterar a qualidade final e o nome das imagens, Criar bordas coloridas, Criar espaços com cor ou transparentes, Colocar textos sobre imagens e colocar imagens sobre imagens, simulando uma marca d água.

Em vez de tratarmos disso separadamente, tornando o entendimento mais complexo, vamos criar um pequeno sistema contendo todos estes atributos citados a cima. No final você terá seu próprio sistema de criação de imagens personalizadas, podendo criar imagens com qualquer tamanho e da sua maneira.

Requisitos



O AspJpeg é um componente adicionado ao ASP que permite a manipulação de imagens através de linhas de comando, é com ele que faremos a maioria dos procedimentos. Para funcionar perfeitamente, este componente tem que estar instalado no seu servidor pessoal, ou no seu host. Para testar você pode baixar o trial no site: http://www.aspjpeg.com

Download e Compra:
http://www.aspjpeg.com/download.html

O manual completo:
http://www.aspjpeg.com/manual.html

Exemplos:
http://www.aspjpeg.com/livedemo.html

Host que disponibiliza o AspJpeg
http://www.locaweb.com.br

Código

Vamos ao código. Seguiremos uma seqüência lógica, que deixará mais fácil a assimilação tanto do código explicado, quanto do projeto por um todo. Usaremos basicamente 4 arquivos, primeiramente a index.asp conterá o formulário simples com um input type=”file”, que enviará o caminho do imagem  para o um arquivo chamado upload_foto.asp, que fará 3 processos. 1° O upload da imagem em si, 2º Chamará a função que renomeia a imagem enviada, 3° Chamará a função que Redimensiona, Regula a Nitidez e Qualidade, Desenha um quadro, uma borda, cria o texto sobre a imagem e a nossa marca d água.

index.asp

<form action="upload_foto.asp" method="post" enctype="multipart/form-data" name="form">
<input name="imagem" type="file" id="imagem" size="60">
<input name="Submit" type="submit" class="botao" value="Enviar">
</form>

Estas são as principais linhas do arquivo index.asp, claro que você pode implementar do teu jeito, com tabelas e formatações.

upload_foto.asp

Como o upload que será mostrado nesta matéria não usurá nenhum componente específico, faz-se necessário a utilização de uma classe criada por Adrian Forbes, que nos ajudará a fazer um upload simples e fácil. Esta classe será disponibilizada no CDROM da revista WWW.COM.BR, bem como todo o projeto final. Agora nos resta saber como usufruir dos atributos desta classe. Vamos lá.

1 <!--#include file="class_adrianforbes.asp" -->
2 <!--#include file="function.asp" -->
<%
3 Dim owNoOverwrite, owOverwrite, owUnique, objUpload, objFile, nome
4 Set objUpload = New Upload
5 objUpload.MaxUploadSize = 7168
6 objUpload.ValidExtensions = "jpg,jpeg,bmp,gif,png"
7 owNoOverwrite = 0
8 owOverwrite = 1
9 owUnique = 2

Na linha 1 incluimos a classe para upload. Na linha 2 incluimos as nossas funções de tratamento de imagem, que explicaremos logo mais. Na linha 3 declaramos as variáveis que serão utilizadas. Na linha 4 Instanciamos o objeto objUpload. Nas linhas 5 e 6 especificamos o tamanho máximo da imagem que será permitida e as extensões respectivamente. Nas linhas 7,8 e 9 deixamos claro que o upload não poderá ser efetuado existindo um arquivo do mesmo nome e que se houver o mesmo nome que seja modificado.

9   objUpload.OverwriteMode = owNoOverwrite
10 objUpload.UploadPath = server.MapPath("fotos/")
11 objUpload.ProcessRequest
12 if objUpload.File(1).Filename<>"" then
13 if objUpload.File(1).Saved=false then
14 response.Redirect ("index.asp?erro=Formato Inválido")                            
15 set objUpload = nothing                
16 response.End()
17 else

Na linha 9 setamos o Modo Overwrite. Na linha 10 setamos a pasta onde serão salvos as imagens (coloque “.” para default.). Na linha 11 executa o trabalho. Na linha 12 verifica se o nome da imagem é diferente de vazio e na linha 13 se ainda não foi salvo. Na linha 14 caso ele ainda não tenha sido salvo, e código ai descrito faz retornar a pagina inicial, levando em uma querystring o erro gerado(Lembre de retornar este erro com request.QueryString("erro")). Nas linhas 15 e 16 destruímos o objeto. Na linha 17 deixamos espaço para caso a imagem já tenha sido gravada na pasta especificada.

18 set objFile = objUpload.File(1)
19 nome = "imagem" & day(now) & "_" & hour(now) & "_" & minute(now) & "_" & second(now) & ".jpg"
20 renomeiafoto "fotos/"&objFile.Filename,"fotos/"&nome
21 AspJpeg "fotos/", "fotos/",nome,2,640,480,100,130
22 response.Redirect ("index.asp?op=0&erro=Foto incluída com sucesso!!!!!")                    
23 end if
24 else

Caso a imagem tenha sido salva corretamente, na linha 18 setamos o objeto objFile sendo o imagem que acabamos de gerar. Na linha 19 criamos uma variável String chamada nome, que receberá o novo nome da imagem, neste caso para um teste especifico, coloquei “imagem+dia+hora+minuto+segundo.jpg”, mas novamente enfatizo que você pode deixar este nome de qualquer maneira, obedecendo a uma pequena regra, “o nome da imagem tem que ser sempre diferente”. Na linha 20 e 21 chamo as funções (renomeiafoto e AspJpeg) que criaremos logo mais, elas vão renomear e personalizar nossa imagem respectivamente, através dos dados que iremos passar, logo mais falaremos delas.
Na linha 22 volto para a página inicial, levando a mensagem “Foto incluída com sucesso!!!!!”. Na linha 23 finalizamos a nossa 2° condição (if objUpload.File(1).Saved=false then). Na linha 24 abrimos espaço para finalizarmos a nossa 1° condição (if objUpload.File(1).Filename<>"" then
).

25 response.Redirect ("enviar.asp?op=0&erro=Escolha um arquivo!!!!")                   
26 set objUpload = nothing
27 response.End()
28 end if
29 set objUpload = nothing
%>

Caso o nome do arquivo não seja diferente de vazio ( Linha 12 if objUpload.File(1).Filename<>"" then) então na linha 25 voltamos a pagina inicial levando o seguinte erro “Escolha um arquivo!!!!”. Na linha 26,27 destruímos o objeto e finalizamos a pagina. Na linha 28 encerramos nossa 1° condição (linha 12) e pra finalizar o arquivo, na linha 29 destruímos o objeto.

Bom, na segunda e ultima parte desta maneira falarei sobre o arquivo function.asp, onde encontram-se as funções, chaves mestras deste nosso projeto.

Abraços e até a próxima.

Este artigo é a parte 1 de 2 da seguinte série:
  1. Personalizando Imagens com ASP, parte 1
  2. Personalizando Imagens com ASP, parte 2

desconhecido
batista pereira voçe e uma pessoa muito legal ass isaias do bairro lageado : Não avaliado
Muito bom este artigo, ele pode mostrar quanta coisa o componente ASPJPEG pode fazer.
O problema deste artigo é que a classe do Adrian Forbes não foi disponibilizada e por isso não consigo dar continuidade nos estudos.
Não foi citado o arquivo class_adrianforbes.asp
não consegui fazer funcionar o exemplo.
Como eu vou testar se eu não tenho a revista e nuito menos o arquivo "class_adrianforbes.asp" ???
Teria como disponibilizar este arquivo ou me enviar por e-mail?? Um abração!
Achei excelente os dois artigos.Tentei utilizar apenas o final do script pois não preciso renomear a imagem enviada, mais seria de muita importância amplicar o redimencionamento de 640x480 para 400x300 e aquele efeito achei muito legal.Podes me dar uma dica? para envio da imagem utilizo Persist.Upload.Abraços e Sucesso!
Bernardo Silva <bgssilva@globo.com>
Olá Johnatan. Segui tuas bem explicadas instruções mas falta o upload para funcionar tudo adequadamente. Aonde eu consigo ele... ja procurei... e ate encontrei o upload sem componente do Adrian Forbes mas o mesmo nao se encaixa de maneira correta aqui
Alexandre Lopes <alexandre.nlopes@gmail.com>
Muito bom o artigo, mas queria ter acesso a esse arquivo o qual vc nao comenta ( <!--#include file="class_adrianforbes.asp" --> ).
pode ser?
obrigado desde jah pelo artigo, eh muito bom msm.
Alexandre <xandemen@bol.com.br>
Aonde acho o arquivo de upload class_adrianforbes?
Reginaldo Gonçalves <reginaldo@planejar.net>
Olá Johnatan, Gostei muito do seu artigo. Parabéns!! Poderia me disponibilizar o arquivo
class_adrianforbes.asp








Um produto Detetive.net