Foros del Web » Programando para Internet » PHP »

Función para redimensionar imágenes

Estas en el tema de Función para redimensionar imágenes en el foro de PHP en Foros del Web. Buenas a todos, quisiera saber si esta función está bien hecha, o se puede mejorar o cambiar por otra más sencilla: Código PHP: <?php //////////////////////////////////////////////////////// ...
  #1 (permalink)  
Antiguo 20/04/2010, 11:38
Avatar de Kaze71  
Fecha de Ingreso: enero-2010
Mensajes: 44
Antigüedad: 14 años, 3 meses
Puntos: 4
Función para redimensionar imágenes

Buenas a todos, quisiera saber si esta función está bien hecha, o se puede mejorar o cambiar por otra más sencilla:

Código PHP:
<?php

////////////////////////////////////////////////////////
//
// Devuelve un array $array['ancho'], $array['alto']
// con el nuevo ancho y alto que deberá tener una
// imagen $i para adaptarse a $a.
//
// Si el ancho o el alto de la imagen original es
// menor a $a devuelve los valores de la imagen original
// para no reducir o ampliar la imagen perdiendo calidad.
//
// Si la imagen tiene más altura que anchura, las
// dimensiones devueltas se adaptan a la anchura,
// y viceversa.
//
// Esto se hace para que, si por ejemplo la imagen tiene
// 2000 de ancho por 300 de alto, la imagen se adapte a
// la altura (300).
//
// Si se adaptara a la medida mayor (2000), la altura quedaría
// microscópica xDD ya que 2000 se reduciría a $a (supongamos que $a==150),
// lo que causaría una reducción del 10% en anchura y altura.
// Los resultados finales de esta reducción quedarían en
// 200 de anchura y 38,25 de altura (casi nada xDDD).
//
//

function redimensionar($i,$a)
{
    list(
$ancho$alto$tipo$cadena) = getimagesize($i);
    
    if((
$ancho>$a)&&($alto>$a))
    {
        if(
$ancho>$alto)
        {
            
$p $a/$alto;
        }
        else
        {
            
$p $a/$ancho;
        }
    }
    else
    {
        
$p 1;
    }
    
    
$export = array();
    
$export['ancho'] = $ancho $p;
    
$export['alto'] = $alto $p;
    
    return 
$export;
}

////////////////////////////////////
//
// Método de llamada
//

// ruta relativa de la imagen
$img 'wallpaper.jpg';

// llamada a la función, de modo que las medidas de $img se adapten a 200
$medidas redimensionar($img,200);

echo 
'<img src="'.$img.'" height="'.$medidas['alto'].'px" width="'.$medidas['ancho'].'px" />';

?>
Gracias por adelantado.

Saludos;
  #2 (permalink)  
Antiguo 21/04/2010, 13:52
Avatar de dyegox  
Fecha de Ingreso: enero-2008
Mensajes: 173
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: Función para redimensionar imágenes

puedes usar algo mas complejo y elaborado como PHPimagen es una creacion de un usuario de FDW

Etiquetas: imagenes, redimensionar
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 10:37.