La función reconoce si la imagen es más alta que ancha o biseversa y redimenciona según los tamaños, esto quiere decir que no hara ancha o gorda una imagen vertical.
redimenzionar.php
Código PHP:
<?php
/*
Redimencionador de imagenes
Escrito por: Paulo Antonio McNally Zambrana
Fecha: Lunes 20 Abril 2009 04:00AM
*/
function redimensionar($ruta,$ancho,$alto)
{
//Ontenemos el tamaño de la imagen que pongamos en $ruta
$dim = getimagesize($ruta);
//Comprobamos que el ancho sea un valor numerico
if(is_numeric($ancho))
{
//Comprobamos que el alto sea un valor numerico
if(is_numeric($alto))
{
//Si el ancho y alto de la imagen que pusimos en $ruta son diferentes de 0
if(!empty($dim[0]) && !empty($dim[1]))
{
//Si ancho es mayor que alto
if($dim[0]>$dim[1])
{
//Si ancho de la imagen ($ruta) es mayor al ancho que nosotros estipulamos
if($dim[0]>$ancho)
{
//El ancho sera el ancho que estipulamos
$ancho_save=$ancho;
}
//Si alto de la imagen ($ruta) es mayor al alto que nosotros estipulamos
if($dim[1]>$alto)
{
//El alto sera el alto que estipulamos
$alto_save=$alto;
}
//Imprimimos el html para mostrar la imagen con los nuevos volores
$resultado="<img src='$ruta' width='$ancho_save' height='$alto_save'>";
}
else //Si Alto es mayor que Ancho
{
//Si ancho de la imagen ($ruta) es mayor al Alto que estipulamos
if($dim[0]>$alto)
{
//Ancho sera igual al alto que estipulamos
$ancho_save=$alto;
}
//Si alto de la imagen ($ruta) es mayor al Ancho que estipulamos
if($dim[1]>$ancho)
{
//Alto sera igual al Ancho que estipulamos
$alto_save=$ancho;
}
//Imprimimos el html para mostrar la imagen con los nuevos volores
$resultado="<img src='$ruta' width='$ancho_save' height='$alto_save'>";
}
}
else
{
$resultado="Error: Las dimenciones de la imagen dan valores Ancho:0 Alto:0";
}
}
else
{
$resultado="El alto no es un numero";
}
}
else
{
$resultado="El ancho no es un numero";
}
//Retornamos lo obtenido
return $resultado;
}
?>
Código PHP:
<?php
include ("./redimenzionar.php"); /*Archivo de funcion*/
$miimagen = "imagen01.jpg"; /*Ruta de imagen a cambiar tamaño*/
$resultado=redimensionar($miimagen,400,300);
?>