Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gUiTaR_mAn

Editar Imagem De Um Servidor Externo

Recommended Posts

Olá pessoal...

andei sumido... hehe...

bom, hoje vou falar de uma coisa que poucos devem saber, porém pode ser muito útil caso você deseja criar um mural de recados que aceite imagens, uma comunidade, blog, sei lá... pode ser util pra muita coisa...

 

bom é o seguinte...

você certamente sabe que o aspjpeg é um componente bem legal que permite que você edite uma foto que está no seu servidor como quiser e salve, ou imprima na tela....

 

a parte mais legal que você nao sabe, é que você, com uma ajudinha do XMLHTTP, consegue editar uma imagem que pode estar em qualquer servidor, e você poderá salvá-la ou simplesmente exibir na tela com as alterações que você fizer com o aspjpeg...

 

você vai ver que é muito simples!!

 

vamos aos códigos...

 

criaImg.asp

<%
'Tratamento de imagens externas
'por Alexandro Cunhago
'em 29-04-2008
'email: alex@megaclassi.com.br
'msn: guitarman@pop.com.br

On Error Resume Next

'aqui vamos receber o endereço da imagem imagem original
imagem = request.QueryString("img")

'esta função serve para converter o códigos-binário em string, porém nao vamos utuliza-lo nessa aplicação...
Function BinaryToString(strBinary)
Dim intCount
BinaryToString =""
For intCount = 1 to LenB(strBinary)
BinaryToString = BinaryToString & chr(AscB(MidB(strBinary,intCount,1))) 
Next
End Function

'aqui comessa a grande sacada... é onde acessamos a url resgatada acima e pegamos seu código binário, com XMLHTTP
Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
xml.Open "GET", ""& imagem &"", False
xml.setRequestHeader "User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
xml.setRequestHeader "referer", "http://www.seusite.com.br"
xml.Send
var = xml.responsebody
'response.BinaryWrite var
set xml = nothing

'código binário na mão... agora é so utilizar o método OpenBinary, do aspjpeg para carregar a imagem com este componente... agora você pinta e borda a imagem como quiser
'neste exemplo eu vou apenas redimensionar imagens com largura maiores do que 400 pixels
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.OpenBinary var
L = 400
If Jpeg.OriginalWidth > Jpeg.OriginalHeight Then
If Jpeg.OriginalWidth > L Then
Jpeg.Width = L
Jpeg.Height = Jpeg.OriginalHeight * L / Jpeg.OriginalWidth
End if
Else
If Jpeg.OriginalHeight > L Then
Jpeg.Height = L
Jpeg.Width = Jpeg.OriginalWidth * L / Jpeg.OriginalHeight
End if
End If

'e agora com o SendBinary eu estou imprimindo a imagem na tela, sem precisar se quer salva-la no meu servidor, nao ocupando espaço em disco.
Jpeg.SendBinary
%>

agora que você ja tem o arquivo criaImg.asp, pra exibir uma imagem no seu site basta inserir a linha abaixo:

 

index.asp

<img src="criaImg.asp?img=url_da_imagem">

aí está galéra... agora, conforme a necessidade e a criatividade de vcs mandar, vcs poderao fazer qualquer coisa com uma imagem, tanto interna como externa!

 

façam bom proveito deste código, e por gentileza mantenham os créditos http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao deu erro nenhum agora :)

 

funcionou

salvou minha vida

nao terei mais que salvar à mao quase 3000 fotos

agora é so fazer o loop e por cada uma em seu devido lugar

se dependesse dos clientes uparem, isso iria demorar um tempao tb

 

obrigadasso :)

[]s

 

---

editando

 

colcoquei de volta o On Error Resume Next, nao sei pq nao rodou antes

 

notei quando ele chega numa foto que nao existe mais, ele salva como a anterior

assim

 

foto1 - existe

foto2 - existe

foto3 - nao existe

foto4 - existe

 

a foto3 fica com a imagem da foto2

pq sera?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahahhaa

nao sei resolver tb, mas fiz na mao

apaguei as fotos queimadas e coloquei um if

 

if foto1 <> ""

ai aqui entrou o sistema acima

 

fui exibindo as fotos com paginacao e deletando no banco

deu trabalho mas foi moleza

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.