ME he bajado el siguiente código, pero no me hace nada. LA imagen original tiene un tamaño de 1184x888, y quiero ponerla con 100 pixeles de alto.
Supuestamente el código me tiene que crear la imagen miniatura.jpg pero no crea nada. ¿Cual es el problema?
Del mismo modo, me gustaria que la creara en una carpeta llamanda miniaturas, ¿Que habria que cambiar?
Gracias.
Código PHP:
<?
function imagen_dimensionar ($origen, $destino, $ancho_limite, $alto_limite)
{
@mkdir(miniaturas); //Queremos crearlo en la carpeta miniaturas
//respeta el ancho y el alto
list($ancho_orig, $alto_orig, $tipo, $atr) = getimagesize($origen);
echo "Ancho orig : $ancho_orig, Alto orig = $alto_orig, Tipo : $tipo, Atributo : $atr<br>";
//para que no agrande la imagen
if ($ancho_orig < $ancho_limite) $ancho_limite = $ancho_orig;
if ($alto_orig < $alto_limite) $alto_limite = $alto_orig;
$alto_limite_probable = $alto_orig * $ancho_limite / $ancho_orig;
if ($alto_limite_probable > $alto_limite)
{
$ancho_limite = $ancho_orig * $alto_limite / $alto_orig;
}
else
{
$alto_limite = $alto_limite_probable;
}
return imagen($origen, $destino, $ancho_limite, $alto_limite);
}
function imagen($origen, $destino, $ancho, $alto)
{
$calidad = 90;
$size = getimagesize($origen); //Tomamos la dimension de la imagen
$extensiones = array('', 'gif', 'jpg', 'png');
//obtenemos si el sistema desea obligar a un formato de salida
$ext = strtolower(substr($destino, strlen($destino)-4));
echo "extensiones : $ext<br>";
switch ($ext)
{
case '.gif':
$salida_formato = 1;
break;
case '.jpg':
$salida_formato = 2;
break;
case 'jpeg':
$salida_formato = 2;
break;
case '.png':
$salida_formato = 3;
break;
default:
$salida_formato = $size[2];
$destino = $destino.'.'.$extensiones[$salida_formato];
}
$width = $size[0];
$height = $size[1];
$ratio = $width/$ancho;
$aux_height = $height/$ratio;
echo "Ancho : $width, Alto : $height, Radio : $ratio, Aux Height : $aux_height<br>";
$auxiliar = $size[2];
echo "... $auxiliar<br>";
//tomamos el tipo
if($size[2]==1){$src = @imagecreatefromgif($origen);}
if($size[2]==2){$src = @imagecreatefromjpeg($origen);}
if($size[2]==3){$src = @imagecreatefrompng($origen);}
if (!$src)
{
return -1;
}
else
{
//Creamos una imagen a color real temporal donde copiamos el original
$aux = imagecreatetruecolor($ancho, $aux_height);
//Creamos una imagen a color real el cual será el soporte final del resultado
$dst = imagecreatetruecolor($ancho, $alto);
//Copiamos el contenido de la imagen original a la nueva
imagecopyresampled($aux, $src, 0, 0, 0, 0, $ancho, $aux_height, $width, $height);
//Pegamos la imagen copiada
imagecopy($dst, $aux, 0, 0, 0, ($aux_height-$alto)/2, $ancho, $alto);
imagedestroy($aux);
if($salida_formato==1){ imagegif($dst, $destino);}
if($salida_formato==2){ imagejpeg($dst, $destino, $calidad);}
if($salida_formato==3){ imagepng($dst, $destino);}
imagedestroy($src);
imagedestroy($dst);
return $extensiones[$salida_formato];
}
}
$devuelto = imagen_dimensionar("./foto.jpg","./miniatura.jpg",100,100);
echo "Devuelto : $devuelto<br>";
?>