Foros del Web » Programando para Internet » PHP »

reducir tamaño imágenes con script php

Estas en el tema de reducir tamaño imágenes con script php en el foro de PHP en Foros del Web. Hola, en una web en la que usamos php, tenemos el siguiente problema Tenemos una zona para subir imagenes del logotipo de las empresas. La ...
  #1 (permalink)  
Antiguo 23/05/2009, 05:32
 
Fecha de Ingreso: noviembre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta reducir tamaño imágenes con script php

Hola, en una web en la que usamos php, tenemos el siguiente problema

Tenemos una zona para subir imagenes del logotipo de las empresas. La imagen no debe pesar más de 200 kbs y no debe ser inferior a 90 por 50.

Bien, esa imagen debe ir luego al index de la web para mostrarse como publicidad.

Cada imagen tiene para ella un recuadrito blanco de 90 por 55, pero no queremos que el logotipo ocupe los 90 por 55. Lo que queremos es que se reduzca de tamaño hasta que quepa dentro del cuadradito.

Podría quedar por ejemplo con una medida de 90 por 35 o 50 por 50 por ejemplo. Fijaros por ejemplo en infojobs.net donde los cuadraditos blancos son todos iguales pero los logotipos no todos ocupan lo mismo.

Si se redimensionaran se acabarian deformando.

Es decir, buscamos un script que coja la imagen y la reduzca de tamaño en igual grado tanto en ancho como en alto hasta que quepa dentro de un espacio de 90 por 55.

Sabeis de alguno o es mejor hacerlo a mano?

Saludos y muchas gracias.
  #2 (permalink)  
Antiguo 23/05/2009, 07:17
Avatar de jonak  
Fecha de Ingreso: mayo-2009
Mensajes: 34
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: reducir tamaño imágenes con script php

Esto es lo que buscas:

Código PHP:
<?
## CONFIGURACION #############################

    # ruta de la imagen a redimensionar
    
$imagen='imagen.jpg';
    
# ruta de la imagen final, si se pone el mismo nombre que la imagen, esta se sobreescribe
    
$imagen_final='imagen2.jpg';
    
$ancho_nuevo=90;
    
$alto_nuevo=55;

## FIN CONFIGURACION #############################


redim ($imagen,$imagen_final,$ancho_nuevo,$alto_nuevo);


function 
redim($ruta1,$ruta2,$ancho,$alto)
    {
    
# se obtene la dimension y tipo de imagen
    
$datos=getimagesize ($ruta1);
    
    
$ancho_orig $datos[0]; # Anchura de la imagen original
    
$alto_orig $datos[1];    # Altura de la imagen original
    
$tipo $datos[2];
    
    if (
$tipo==1){ # GIF
        
if (function_exists("imagecreatefromgif"))
            
$img imagecreatefromgif($ruta1);
        else
            return 
false;
    }
    else if (
$tipo==2){ # JPG
        
if (function_exists("imagecreatefromjpeg"))
            
$img imagecreatefromjpeg($ruta1);
        else
            return 
false;
    }
    else if (
$tipo==3){ # PNG
        
if (function_exists("imagecreatefrompng"))
            
$img imagecreatefrompng($ruta1);
        else
            return 
false;
    }
    
    
# Se calculan las nuevas dimensiones de la imagen
    
if ($ancho_orig>$alto_orig)
        {
        
$ancho_dest=$ancho;
        
$alto_dest=($ancho_dest/$ancho_orig)*$alto_orig;
        }
    else
        {
        
$alto_dest=$alto;
        
$ancho_dest=($alto_dest/$alto_orig)*$ancho_orig;
        }

    
// imagecreatetruecolor, solo estan en G.D. 2.0.1 con PHP 4.0.6+
    
$img2=@imagecreatetruecolor($ancho_dest,$alto_dest) or $img2=imagecreate($ancho_dest,$alto_dest);

    
// Redimensionar
    // imagecopyresampled, solo estan en G.D. 2.0.1 con PHP 4.0.6+
    
@imagecopyresampled($img2,$img,0,0,0,0,$ancho_dest,$alto_dest,$ancho_orig,$alto_orig) or imagecopyresized($img2,$img,0,0,0,0,$ancho_dest,$alto_dest,$ancho_orig,$alto_orig);

    
// Crear fichero nuevo, según extensión.
    
if ($tipo==1// GIF
        
if (function_exists("imagegif"))
            
imagegif($img2$ruta2);
        else
            return 
false;

    if (
$tipo==2// JPG
        
if (function_exists("imagejpeg"))
            
imagejpeg($img2$ruta2);
        else
            return 
false;

    if (
$tipo==3)  // PNG
        
if (function_exists("imagepng"))
            
imagepng($img2$ruta2);
        else
            return 
false;
    
    return 
true;
    }
?>
  #3 (permalink)  
Antiguo 10/08/2017, 06:27
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: reducir tamaño imágenes con script php

Es perfecto, me sirvió. Muy bueno.
Gracias
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 18:19.