Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/06/2012, 09:57
raulbotella
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Problema al redimensionar imagenes con PHP

Os pongo mi código:

Código PHP:
                @$datos_img getimagesize($imagen);
                
$ancho_orig $datos_img[0];
                
$alto_orig $datos_img[1];
        
        
$propORIGINAL devProporcion($ancho_orig,$alto_orig);
        
$propIMAGEN   devProporcion($anchoLienzo,$altoLienzo);
             
        if(
$propORIGINAL<$propIMAGEN){
        
//Es mas panorámica que la ideal, dejamos blancos arriba y bajo            
            
$anchoIMAGEN $anchoLienzo;
            
$altoIMAGEN round($anchoIMAGEN/$propORIGINAL);            
            
$caso "propORIGINAL<propIMAGEN";
            
//Volvemos a hacer comprobacion por si se sigue sobrepasando por el alto (REAJUSTE).
            
$margenAlto = ($altoLienzo $altoIMAGEN)/2;
            
$margenAncho 0;
            
            if(
$altoIMAGEN>$altoLienzo){
                
$altoIMAGEN $altoLienzo;
                
$anchoIMAGEN round($altoIMAGEN $propORIGINAL);
                
                
$margenAncho = ($anchoLienzo $anchoIMAGEN)/2;
                
$margenAlto  0;
            }
        }
        else{        
            
$altoIMAGEN $altoLienzo;
            
$anchoIMAGEN round($altoIMAGEN $propORIGINAL);
            
$caso "propORIGINAL>propIMAGEN";
            
//Volvemos a hacer comprobacion por si se sigue sobrepasando por el alto (REAJUSTE).
            
$margenAncho = ($anchoLienzo $anchoIMAGEN)/2;
            
$margenAlto  0;
            
            if(
$anchoIMAGEN>$altoLienzo){
                
$anchoIMAGEN $anchoLienzo;
                
$altoIMAGEN round($anchoIMAGEN/$propORIGINAL);    
                
$margenAlto = ($altoLienzo $altoIMAGEN)/2;
                
$margenAncho 0;
            }
        }        
        
        
        
//    CREO LA NUEVA IMAGEN
        
$lienzo imagecreatetruecolor($anchoLienzo$altoLienzo);
        
        
//    Rellenamos el lienzo de color
        
imagefilledrectangle($lienzo00$anchoLienzo$altoLienzo000000);

        
//    ABRO LA IMAGEN FUENTE
        
if (!$imagen_fuente abrir_Imagen($imagen)) {
            return 
0;
            exit;
        }
                
        
//    COPIO LA IMAGEN FUENTE EN LA NUEVA
        //imagecopyresampled($lienzo, $imagen_fuente, $margenAncho, $margenAlto, 0, 0, $anchoIMAGEN, $altoIMAGEN, $anchoLienzo, $altoLienzo);
        
imagecopyresized($lienzo$imagen_fuente$margenAncho$margenAlto00$anchoIMAGEN$altoIMAGEN$anchoLienzo$altoLienzo);
                                
        
        
imagejpeg($lienzo$destino$calidad); 
Gracias!