Ver Mensaje Individual
  #12 (permalink)  
Antiguo 19/05/2011, 13:49
Avatar de JDEM
JDEM
 
Fecha de Ingreso: octubre-2008
Ubicación: www....
Mensajes: 154
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Redimensionar una imagen con php, y no morir en el intento.


Código PHP:
<?php

/*Función REDIMENSIONAR
Toma la ruta de una imagen, un valor máximo 
de ancho y otro máximo de alto. Si la imagen 
rebasa dichas medidas, calcula las medidas 
máximas que podría tener manteniendo el 
formato original para no salirse de las medidas
indicadas.

Finalmente la función imprime la imagen.
*/

function redimensionar($ruta,$ancho,$alto){

//Obtenemos las dimensiones, la ruta es absoluta.
$dim getimagesize($ruta);
/*getimagesize() pasa un array a la variable
$dim tal que $dim[0] contiene el ancho de la imagen 
y dim[1] contiene el alto.*/
if($dim[1]){
//Para asegurarnos de que dim[1] es diferente de cero
$cociente $dim[0] / $dim[1];
}
if(
$alto){
//Para asegurarnos de que alto es diferente de cero
$coc_max $ancho $alto;
}

    if((
$dim[0]<=$ancho)&&($dim[1]<=$alto)){
    
/*En este caso no pasa nada y 
    la imagen se imprime con su tamaño original*/
    
$ancho $dim[0];
    
$alto $dim[1];
    }else{
        if(
$cociente>=$coc_max){
        
/*En este caso el factor más restrictivo
        va a ser el ancho de la foto*/
        
$alto $ancho $cociente;
        }else{
        
/*En este caso el factor restrictivo 
        va a ser la altura de la foto*/
        
$ancho $alto $cociente;
        }
    }
    echo 
"<img src='$ruta' width='$ancho' height='$alto'>";
    
}
?>
En que parte de ese codigo creas una nueva imagen ????? en ninguna, fijate que la salida es la misma ruta que le envias con las medidas que calculas en ningun momento creas una nueva imagen por ende una imagen que pesa 400KB tienes que descargar los 400kb para mostrarla en pequeno, lo que yo quiero hacer es una imagen de 400kb se convierta en un archivo imagen de 12kb aproximadamente (si mi tamaño maximo es de 200px de ancho) que son los kb que voy a descargar no los 400kb de la imagen completa.