Devolver las dimensiones de una imagen en ASP

Necesitaba lanzar un “lightbox” con Mootols en una página antigua con la que trabajaba y era necesario calcular las dimensiones de la imagen ya existente en el servidor. Lo más importante, aparte de la función, es la llamada a ella, que requiere la ruta absoluta de los archivos, no la relativa, y que el ancho y el alto se pasan como referencia.

La función es la siguiente:


‘Función que devuelve las dimensiones de una imagen
sub devuelveDimensionesImagen(img,byref width,byref height)
dim myImg, fs
Set fs= CreateObject(“Scripting.FileSystemObject”)
if not fs.fileExists(img) then
exit sub
end if
set myImg = loadpicture(img)
width = round(myImg.width / 26.4583)
height = round(myImg.height / 26.4583)
if width > 1000 then

dim originalWidth
originalWidth = width
width = 1000
height = int(cint(width) * (height / originalWidth))

end if

set myImg = nothing
end sub

El parámetro “img” debe recibir la ruta absoluta de la imagen. “width” y “height” reciben las variables donde se almacenarán ambos datos. Dado a que creé la función en vistas a mostrar los datos por pantalla, determiné que si la imagen tenía una anchura superior a 1000, reduciría la anchura a 1000 y calcularía el alto correspondiente para mantener el aspect ratio.

La llamada a la función sería la siguiente:


dim alto,ancho
devuelveDimensionesImagen Server.MapPath(“./”) & “/imagenes/” & trim(rs(“Imagen”)),Ancho,Alto

Es importante tener en cuenta que al ser un sub, dado que no devuelve nada, hay que llamarla sin paréntesis.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: