Foros del Web » Programando para Internet » PHP »

Redimensionando imagenes desde el centro

Estas en el tema de Redimensionando imagenes desde el centro en el foro de PHP en Foros del Web. Hola que total. perdon por el titulo pero fue lo que mejor me salio para indicar que necesito. me imagino que para esto utilizaran la ...
  #1 (permalink)  
Antiguo 26/09/2006, 04:28
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 8 meses
Puntos: 2
Redimensionando imagenes desde el centro

Hola que total.

perdon por el titulo pero fue lo que mejor me salio para indicar que necesito. me imagino que para esto utilizaran la GD pero bueno es lo siguiente:

bueno he visto en muchos portales que redimensionan una imagen de tal manera que esta quede perfectamete cuadrada. y lo hace como si cogiéramos la imagenes y dibujaramos un cuadro en todo el centro del tamaño final que la queremos. Por ejemplo:

esta es la imagen original:



y este seria el resultado final:



creo yo primero la redimensiona a un tamaño mas pequeño y luego la recorta para que quede cuadrada.

como se hace esto?

Un saludo y gracias
  #2 (permalink)  
Antiguo 26/09/2006, 08:13
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
En las FAQ hay un ejemplo de como crear thumbnail, los haz visto, no te sirve?
  #3 (permalink)  
Antiguo 26/09/2006, 08:18
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 8 meses
Puntos: 2
que tal claudio no no me sirve, lo que hace ese ejemplo es simplemente redimencionar la imagen teniendo en cuenta o el ancho o el alto, pero no los dos valores,yo lo que necesito es que forme la imagen totalmente cuadrada.

Un saludo
  #4 (permalink)  
Antiguo 26/09/2006, 08:40
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Yo uso algo asi, una funcionque encontré por ahi.

Código PHP:
function generarThumbAlbum($archivo,$nombredest,$lado)
{
    
$ext_archivo=substr($archivo,-3);
        
$ext strtolower($ext_archivo);
        
$tam=getimagesize($archivo);

        
//uso una relacion respecto del menor vs el tamaño pedido
        
if($tam[0]<$tam[1])
        {
              
$n_ancho=$lado;
            
$n_alto=($tam[1]*($lado/$tam[0]));
        }
        else
        {
              
$n_alto=$lado;
            
$n_ancho=($tam[0]*($lado/$tam[1]));
        }

        if(
$ext=="jpg" || $ext=="jpeg")
        {
            
//
            
$origen  imagecreatefromjpeg($archivo);
            
$imagen  imagecreatetruecolor($lado,$lado);
            
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
            
imagejpeg($imagen,$nombredest);
        }
        else if(
$ext=="png")
        {
            
$origen  imagecreatefrompng($archivo);
            
$imagen  imagecreatetruecolor($lado,$lado);
            
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
            
imagepng($imagen,$nombredest);
        }
        else if(
$ext=="gif")
        {
            
$origen  imagecreatefromgif($archivo);
            
$imagen  imagecreatetruecolor($lado,$lado);
            
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
            
imagegif($imagen,$nombredest);
        }
        else
        {
            return 
false;
        }
        return 
$nombredest;

La funcion recibe esto parametros:

$archivo: nombre del archivo de imagen origen
$nombredest: nombre archivo de imagen destino
$lado: tamaño en pixeles de la imagen resultante

La funcion devuelve el nombre del archivo de destino si la imagen corresponde a los tipos permitidos y no tiene ningun tipo de control de errores, jaja.
  #5 (permalink)  
Antiguo 26/09/2006, 08:46
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 8 meses
Puntos: 2
hola claudio gracias voy a probarlo a ver si es lo que busco


un saludo

Última edición por oscarva; 26/09/2006 a las 08:46 Razón: ya esta la respuesta
  #6 (permalink)  
Antiguo 26/09/2006, 08:51
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 8 meses
Puntos: 2
Hola claudio

bueno ya hice la prueba y no funciono, no mustra nada. le pase estos valores:

$archivo = 'avatar.jpg';
$nombredest = 'avatars.jpg';
$lado = '50';
  #7 (permalink)  
Antiguo 26/09/2006, 10:10
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Pruébalo asi:

Código PHP:
<html>
<body>
   <img src="<?php echo generarThumbAlbum($archivo,$nombredest,$lado);?>">
</body>
</html>
  #8 (permalink)  
Antiguo 26/09/2006, 13:32
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 8 meses
Puntos: 2
Hola claudio

bueno pues te cuento que no funciono, la verdad no entiendo esa variable de $nombredest. es decir no necesito generar y guardar otra imagen con esas dimenciones, lo que necesito es pasarle la variable con la imagen a redimensionar y que simplemente la muestre, sin guardarla.

Un saludo y gracias
  #9 (permalink)  
Antiguo 27/09/2006, 10:08
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Entonces esta funcion no te sirve tal como está, por que crea un archivo nuevo redimensionado.
Toma el codigo y adaptalo a tus necesidades.
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 08:37.