Foros del Web » Programando para Internet » PHP »

Problema al redimensionar imagenes

Estas en el tema de Problema al redimensionar imagenes en el foro de PHP en Foros del Web. Hola tengo el siguiente script para redimensionar imagenes n mi web, quiero hacer 2 imagenes, una proporcional al tamaño real pero mas pequeña, y otra ...
  #1 (permalink)  
Antiguo 30/04/2009, 03:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 16 años, 5 meses
Puntos: 0
Problema al redimensionar imagenes

Hola tengo el siguiente script para redimensionar imagenes n mi web, quiero hacer 2 imagenes, una proporcional al tamaño real pero mas pequeña, y otra de 80x120 para que vaya cn el diseño y cargue mas rapido.
la imagen grande me la crea bien, pero kisiera que en la pekeña se centrara en la medida de lo posible. me crea una imagen de 80x120 pero no se ve centrada y muchas fotos no se ven bien. alguien m puede ayudar?? espero haberme explicado bien. gracias
Código PHP:
<?php

//Obtener datos de la imagen
$info getimagesize($_FILES['imagen']['tmp_name']); 
switch (
$info[2]) {
  case 
1:
    
$imagen imagecreatefromgif($_FILES['imagen']['tmp_name']); break;
  case 
2:
    
$imagen imagecreatefromjpeg($_FILES['imagen']['tmp_name']); break;
  case 
3:
    
$imagen imagecreatefrompng($_FILES['imagen']['tmp_name']); break;
}

$original $imagen;
// devuelve anchura de la imagen y altura
$original_w imagesx($original);
$original_h imagesy($original);

$MAXIMO 500;  //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS

if($original_w>$original_h){
    
$muestra_w $MAXIMO;
    
$muestra_h intval(($original_h/$original_w)*$MAXIMO);
} else {
    
$muestra_w intval(($original_w/$original_h)*$MAXIMO);
    
$muestra_h $MAXIMO;
}

// Crea una imagen en color real
$muestra imagecreatetruecolor($muestra_w,$muestra_h); 

//Copia y reescala parte de una imagen con remuestreo
imagecopyresampled($muestra,$original,0,0,0,0$muestra_w,$muestra_h,$original_w,$original_h);
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya


$ancho imagesx($muestra);
$alto imagesy($muestra);

        
// Crear imagen pequeña
        
$img imagecreatetruecolor(80,120);
        
        
$MAXIMO 120;
            if(
$ancho>$alto) {
                
$y $MAXIMO;
                
$x intval(($ancho/$alto)*$MAXIMO);
                
$cox $x-$MAXIMO;
                
$coy 0;
            } else {
                
$y intval(($alto/$ancho)*$MAXIMO);
                
$x $MAXIMO;
                
$coy $y-$MAXIMO;
                
$cox 0;
            }
        
        
imagecopyresized($img,$muestra,0,0,$cox,$coy,$x,$y,$ancho,$alto);
        
$im imagejpeg($img,"../imagenes/".$nombre."x.jpg""100");
        
// FIN DE IMAGEN PEQUEÑA
        
$im2 imagejpeg($muestra"../imagenes/".$nombre.".jpg""100");
?>
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 11:32.