Ir para conteúdo

POWERED BY:

Arquivado

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

Gilberto Jr

[Resolvido] Verficando Tamanho e Altura da Imagem

Recommended Posts

Boa dia Galera,

MInha duvida é a seguinte, em um cliente tem um banner onde fica passando varias imagens, essas imagens tem por exemplo um tamanho fixo em todas, que pode ser 500x300. Eu fiz uma pagina para o cliente trocar essas imagens assim que ele quiser.

 

Minha duvida é a seguinte, tem como eu verificar as dimensoes de uma foto com asp antes de eu fazer o upload? caso esteja fora do padrao maior ou menor ele retonar com a mensagem dizendo que a imagem esta no tamanho errado.

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, eu estava olhando esse exemplo.. ele é bem complexo, acho que nao tem necessidade de fazer toda essa volta rsrs. mas mesmo assim valeu. vou ver se consigo adaptar ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Recuperar propriedades da imagem de um arquivo não-local ,obter todos os dados da imagem, arquivo com base na definição de algoritmos em tamanho IMGSZ que também pega a imagem de um site remoto usando XML, suporta arquivos GIF e JPG.

 

A sintaxe a utilizar getSize é a seguinte:

 

someBoolean = pegatamanho(URL, width, height, depth, flType)

‘URL, largura, altura, profundidade, flType

 

• someBoolean será definido com base verdadeiro ou falso se o script foi capaz de determinar os atributos de imagens

• URL é uma entrada informando a URL da imagem, tais como http://www.sintchospir.com/images/sua_imagem.jpg

• largura será definida para a largura da imagem, ou -1 para script failed

• A altura será definido para a altura da imagem, ou -1 para script failed

•Profundidade será definido como a profundidade da imagem, ou -1 para script failed

• FlType será definido o tipo de arquivo de imagem foi, GIF ou JPG

 

Utilizando as funções de string binária como midb e lenb. Uma vez que todas as imagens são arquivos binários, essas funções são necessárias.

 

 

<%

  function GetBytes(objHTTP, offset, bytes)

    Dim SizeofFile
    on error resume next
    SizeofFile = objHTTP.getResponseHeader("Content-Length")
    'Obtém o tamanho do arquivo a partir do cabeçalho HTTP
    if offset > 0 then 'começar em bytes não no início
    strbuff = midb(objHTTP.responseBody, offset, bytes)
    end if
    if bytes = -1 then        ' Get All!
       GetBytes = objHTTP.responseBody  'ReadAll
    else 
       GetBytes = midb(objHTTP.responseBody, 1, bytes)
    end if
 end function


 function lngConvert(strTemp)
    lngConvert = clng(ascb(leftb(strTemp, 1)) + ((ascb(rightb(strTemp, 1)) * 256)))
 end function

 function lngConvert2(strTemp)
    lngConvert2 = clng(ascb(rightb(strTemp, 1)) + ((ascb(leftb(strTemp, 1)) * 256)))
 end function


   function pegatamanho(URL, width, height, depth, flType)

    dim PNGflType 
    dim GIFflType
    dim BMPflType
    dim flTypeOf
    dim obj
    flTypeOf = ""
    flType = "(unknown)"
    Set obj = Server.CreateObject ("Microsoft.XMLHTTP")
    obj.open "GET", URL, False
    obj.send
    '"Aqui nós temos os dados para o arquivo de imagem
    pegatamanho = False
    PNGflType = chr(137) & chr(80) & chr(78)
    GIFflType = chrb(71) & chrb(73) & chrb(70)
    BMPflType = chr(66) & chr(77)
    'Aqui estão as definições para o flTypes imagem, suportam GIF e JPG, mas você pode adicionar outros:)
    flTypeOf = GetBytes(obj, 0, 3)
    'Saiba quaul o flType da imagem
    if flTypeOf = GIFflType then    'É um GIF!!!
    flType = "GIF"    
    strbuffer = getbytes(obj, 0, -1) 'obter todos os dados da imagem
    width= lngconvert(midb(strbuffer, 7, 2))
    Height = lngconvert(midb(strbuffer, 9, 2))
    Depth = 2 ^ ((ascb(GetBytes(obj, 11, 1)) and 7) + 1)
    'É muito importante observar o ascB e midB, as imagens são arquivos binários 
    pegatamanho = True
    else
    strBuff = GetBytes(obj, 0, -1)        'obter o arquivo inteiro
    SizeofFile = lenb(strBuff)
    flgFound = 0
    strTarget = chrb(255) & chrb(216) & chrb(255)
    flgFound = instrb(strBuff, strTarget)
    char = (midb(strbuff, 1, 3)) 'confira os primeiros caracteres
    if flgFound = 0 then 'diferente de jpg ou GIF
      exit function
    end if
    flType = "JPG"
    lngPos = flgFound + 2
    ExitLoop = false
    do while ExitLoop = False and lngPos < SizeofFile
          do while ascb(midb(strBuff, lngPos, 1)) = 255 and lngPos < SizeofFile
             lngPos = lngPos + 1
          loop
          'pesquisa até encontrar os dados
          if ascb(midb(strBuff, lngPos, 1)) < 192 or ascb(midb(strBuff, lngPos, 1)) > 195 then
             lngMarkerSize = lngConvert2(midb(strBuff, lngPos + 1, 2))
             lngPos = lngPos + lngMarkerSize  + 1
          else
             ExitLoop = True 'temos tudo que precisamos
          end if

    loop

          if ExitLoop = False then 

             Width = -1
             Height = -1
             Depth = -1

          else

             Height = lngConvert2(midb(strBuff, lngPos + 4, 2))
             Width = lngConvert2(midb(strBuff, lngPos + 6, 2))
             Depth = 2 ^ (ascb(midb(strBuff, lngPos + 8, 1)) * 8)
             pegatamanho = True

          end if

    end if

 set obj = Nothing
 end function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ótimo que conseguiu, e se quiser posta o seu code como ficou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim claro, segue o codigo abaixo.

 

upload.asp

<%
	'declaro minha variavel para recuperar o nome da foto.
	dim nome_foto
	'Instancia o componente
	SET SaFileUp = Server.CreateObject("SoftArtisans.FileUp") 
	server.ScriptTimeout=99999 ' aumenta o tempo para enviar aquivos maiores

		'Configura o caminho onde arquivo será salvo
		SaFileUp.Path = Server.MapPath("../img/banner/teste/")

		'Você pode usar também o caminho relativo se preferir
		'SaFileUp.Path = Server.MapPath("./upload/")

		'Caso o usuário não indique um arquivo para upload, informa erro.
		If SaFileUp.IsEmpty Then
				response.write ("<script>alert('Selecione uma foto antes de salvar!'); location='form_incluir_foto_servico.asp?Servico="&SaFileUp.Form("servico")&"&id="&SaFileUp.Form("id")&"'</script>")


		Else
			'Salva o arquivo no servidor
		SaFileUp.Save
'recupera o nome da foto.
			nome_foto = Right(SaFileUp.Form("fotoBanner"),Len(SaFileUp.Form("fotoBanner"))-InstrRev(SaFileUp.Form("fotoBanner"),"\"))

'Instancia o componente AspJep
Set Jpeg = Server.CreateObject("Persits.Jpeg")

'Recupera o caminho da foto do meu servidor
Path = Server.MapPath("../img/banner/teste/"&nome_foto)

'Abre a pasta do arquivo
Jpeg.Open Path

'verifica se a imagem dentro do padrao permitido
if Jpeg.OriginalWidth<>119 or Jpeg.OriginalHeight<>119 then

'caso a imagem esteja fora ele deleta a imagem do servidor a avisa ao usuario
	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
	arq1 = Server.MapPath("../img/banner/teste/"&nome_foto)
	objFSO.DeleteFile arq1, True
	set objFSO = nothing
	response.Write("<script>alert('A imagem esta fora do tamanho padrão\n O Tamanho correto é 119px de Largura e 119px de Altura.\n Atualmente essa imagem esta com "&Jpeg.OriginalWidth&"px de Largura e "&Jpeg.OriginalHeight&"px de Altura')</script>")
else
'se estiver tudo correto ele faz o insert na tabela.
set rs = con.execute("INSERT INTO TB_BANNER (BANNER, ID_PAGINA) VALUES ('"&nome_foto&"', '"&SaFileUp.Form("id_foto")&"'")

end if

end if

response.write ("<script>alert('Foto salva com sucesso!');location='banner.asp'</script>")

%>

 

é isso ae.

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.