Foros del Web » Programando para Internet » ASP Clásico »

Como hacer funcion para calcular el porcentaje de reduccion de una fotografia

Estas en el tema de Como hacer funcion para calcular el porcentaje de reduccion de una fotografia en el foro de ASP Clásico en Foros del Web. Hola a todos: Estoy intentando hacer una funcion que me calcule para un ancho fijo (en este caso 138px) el porcentaje de reduccion que corresponde. ...
  #1 (permalink)  
Antiguo 02/04/2008, 12:15
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Como hacer funcion para calcular el porcentaje de reduccion de una fotografia

Hola a todos:
Estoy intentando hacer una funcion que me calcule para un ancho fijo (en este caso 138px) el porcentaje de reduccion que corresponde. Una vez que lo tengo calculado se lo aplico al alto de la foto y asi la tengo siempre redimensionada proporcionalmente.
Me explico: tengo una fotografia de 276px de ancho por 500 px de alto y quiero dejarla a 138px de ancho por lo que me salga de alto. He hecho lo siguiente:

Código:
Function ReduccionImagen (ancho)
    if ancho > 138 then
        FactorReduccion= ancho/138
        ReduccionImagen=ancho/FactorReduccion
        Response.write ReduccionImagen
    end if
End Function
De esta forma me sale para la foto anterior un factor de reduccion de 2.
Lo que pretendo ahora es aplicar el factor de reduccion obtenido al alto de la fotografia, pero no veo como puedo hacerlo.


Aplico la función así:

Código:
<img src="<%=RsDatos("fotolamina")%>" width="<%ReduccionImagen(RsDatos("fotolaminaancho"))%>" height="<%=RsDatos("fotolaminaalto")%>">
Gracias
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #2 (permalink)  
Antiguo 02/04/2008, 13:06
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Como hacer funcion para calcular el porcentaje de reduccion de una fotografia

Tu función es correcta, solo necesitas obtener los valores, puedes descomponerla en varias funciones, no es lo ideal, para mi sería crear un objeto que te regrese propiedades, salvo la mejor opinion de alguien mas, esto te saca del paso:

Código:
<%
Function FactorReduccion (ancho)
	Dim anchoMaximo
	Dim altoMaximo
	
	anchoMaximo = 138

	if ancho > anchoMaximo then
		FactorReduccion = ancho/anchoMaximo
	else
		FactorReduccion = 1
	end if
End Function


Function CalculaTamano(tamano, factor)
	CalculaTamano = tamano/factor
End Function

Function Redimensiona(ancho, alto, esAncho)
	factor = FactorReduccion (ancho)
	
	if esAncho then
		tamano = ancho
	else
		tamano = alto
	end if
	Redimensiona = cint(CalculaTamano(tamano, factor))
End Function

%>

<img src="as.jpg" width="<%=Redimensiona(1087, 781, true)%>" height="<%=Redimensiona(1087, 781, false)%>">
Salud
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 02/04/2008, 13:46
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Re: Como hacer funcion para calcular el porcentaje de reduccion de una fotografia

Ya funciona, gracias, me has sacado de una buena....
__________________

Espero haber aprendido algo de tí.
A mi padre.

Última edición por ciberpata; 02/04/2008 a las 13:56
  #4 (permalink)  
Antiguo 02/04/2008, 13:48
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Como hacer funcion para calcular el porcentaje de reduccion de una fotografia

El último argumento le dice a la función si se está calculando el alto o el ancho, esAncho, trata así.

Código:
<img src="<%=RsDatos("fotolamina")%>" width="<%=Redimensiona(RsDatos("fotolaminaancho"),RsDatos("fotolaminaalto"),true)%>" height="<%=Redimensiona(RsDatos("fotolaminaancho"),RsDatos("fotolaminaalto"),false)%>"> 
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:43.