Ver Mensaje Individual
  #11 (permalink)  
Antiguo 17/03/2008, 16:16
Avatar de darkgaze
darkgaze
 
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: redimensionar imagenes. Ayuda urgente, por favor

Claro hombre. aquí esta.

Es lioso quizá, pero vamos, se ve como genera de una imagen varias versiones. Una grande, otra pequeña. Si la imagen tiene de ancho menos de 600px, la deja como está.


Código PHP:
$temp $_FILES['archivo'.$id_foto]["tmp_name"];
        
$datos getimagesize($temp);
        
        
//COMPROBAR QUE TIENE EL FORMATO ADECUADO DE NOMBRE Y .JPG
        
$permitido = array ('image/gif''image/jpeg''image/jpg''image/pjpeg');
        if (!
in_array($_FILES['archivo'.$id_foto]['type'], $permitido)){
            
$_FILES = array();
            
header("Location: panel_fotos.php?id=".$id_casa."&fallo_jpg");
            exit;
        }

        
//COMPROBAR QUE NO SE PASA DEL TAMAÑO
        
if ( (filesize($temp)/1024) > 2024 ){ //2 megas, que es lo que normalmente ocupa una foto normal
            
$_FILES = array();
            
header("Location: panel_fotos.php?id=".$id_casa."&fallo_tam");
            exit;
        }
        
        
//GENERAMOS LA VISTA GRANDE
        
$archivo "fotos/".$id_casa '_' $id_foto '.jpg';
        
$ratio $datos[0]/$datos[1];
        if (
$datos[0] > 600){
            
$alto floor(600/$ratio);

            
$redimensionada imagecreatetruecolor(600,$alto);
            
$source imagecreatefromjpeg($temp);
            if (!
imagecopyresized ($redimensionada$source,0,0,0,0,600,$alto,$datos[0],$datos[1]) )
                {
$fallido true;}
            else {
                
imagejpeg($redimensionada,$archivo,80);
                
imagedestroy($redimensionada);
                
imagedestroy($source);
            }
        }
        else {
            
$alto $datos[1];
            
$ancho $datos[0];

            
$redimensionada imagecreatetruecolor($ancho,$alto);
            
$source imagecreatefromjpeg($temp);
            if (!
imagecopyresized($redimensionada$source,0,0,0,0,$ancho,$alto,$datos[0],$datos[1]) )
                {
$fallido true;}
            else {
                
imagejpeg($redimensionada,$archivo,80);
                
imagedestroy($redimensionada);
                
imagedestroy($source);
            }
        }

        
//GENERAMOS LA VISTA PREVIA
        
$archivo "fotos/pre/".$id_casa '_' $id_foto '.jpg';
        
$ratio $datos[0]/$datos[1];
        
$alto floor(180/$ratio);

        
$redimensionada imagecreatetruecolor(180,$alto);
        
$source imagecreatefromjpeg($temp);
        if (!
imagecopyresized ($redimensionada$source,0,0,0,0,180,$alto,$datos[0],$datos[1]) )
             {
$fallido true;}
        else {
            
imagejpeg($redimensionada,$archivo,80);
            
imagedestroy($redimensionada);
            
imagedestroy($source);
        } 
__________________
Darkgaze