calcular las dimansiones de una imagen

jan
04 de Septiembre del 2004
Alguien sabe como calcular el alto y el ancho de una imagen que seleccionemos?
Tiene algo que ver el "request"?

jesuja
04 de Septiembre del 2004
Yo he dado con una solucin que combina ASP y JavaScript que requiere 2 pasos:

1.- Subes la imagen al servidor, la guardas y la muestras en pantalla comprobando su tamao (esto ltimo con cdigo JavaScript):

<%
Cdigo ASP necesario para guardar la imagen en el servidor.
(en otras aportaciones de este mismo foro tienes como hacerlo)

Al final la ruta de la imagen debe quedar en la variable NomFile
que se utiliza ms abajo

%>
<html>
<head>
<script>
function ChequearImagen()
{
var x=document.images["imagen"].width; // Ancho de la imagen
var y=document.images["imagen"].height; // Alto de la imagen

if(x>120 || y>120)
document.f.Opcion.value="IMAGEN_MUY_GRANDE";
else
document.f.Opcion.value="IMAGEN_OK";

document.f.submit();

}
</script>
</head>
<body onload="ChequearImagen()">
<table width="100%" height="100%"><tr valign="middle"><td align="center">
<table border="1" cellspacing="0" cellpadding="0"><tr><td>
<img src="../img/profiles/<%=NomFile%>" name="imagen">
</td></tr></table>
</td></tr></table>
</body>
<form name="f" method="post" action="paso2.asp">
<input type="hidden" name="NomFile" value="<%=NomFile%>">
<input type="hidden" name="Opcion">
</form>
</html>

El cdigo anterior muestra la imagen, comprueba sus dimensiones, para este caso, se considera que la imagen vlida debe ser de dimensin no superior a 120x120 pixels, esto se comprueba en la funcin JavaScript ChequearImagen(), puedes cambiar ese cdigo segn te interese.

Tras la comprobacin se hace submit() del formulario f que aparece al final enviando los parmetros NomFile y Opcion a la pgina paso2.asp (si te resultara de utilidad puedes enviar tambin el ancho y el alto de la imagen aadiendo dos campos ms al formulario y modificando la funcin ChequearImagen()).

2.- El cdigo del fichero paso2.asp podra ser el siguiente:

<%
NomFile=Request.form("NomFile")
OPCION=Request.form("Opcion")

if OPCION="IMAGEN_MUY_GRANDE" then
Cdigo ASP para este caso
(Yo aqu borro la imagen del servidor, ya que tan grande no la quiero )

elseif OPCION="IMAGEN_OK" then
Cdigo ASP para este caso
(Aqu yo guardo la ruta NomFile en una base de datos)

end if
%>

As he resuelto yo este problema, si alguien encuentra una solucin menos complicada que lo diga.