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: 18 años, 9 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 06:08.