Código PHP:
function crearMiniatura($archivo, $tamano, $calidad = 85)
{
$data = getimagesize($archivo);
if ($data === false)
{
return false;
}
switch ($data['mime'])
{
case 'image/jpeg':
case 'image/pjpeg':
$imagen = imagecreatefromjpeg($archivo);
$creator = 'imagejpeg';
break;
case 'image/png':
$imagen = imagecreatefrompng($archivo);
$creator = 'imagepng';
break;
case 'image/gif':
$imagen = imagecreatefromgif($archivo);
$creator = 'imagegif';
break;
default:
return false;
}
if ($data[0] > $data[1])
{
$ancho = $tamano;
$alto = round(($data[1] * $tamano) / $data[0]);
}
else
{
$ancho = round(($data[0] * $tamano) / $data[1]);
$alto = $tamano;
}
$miniatura = imagecreatetruecolor($ancho, $alto);
imagecopyresampled($miniatura, $imagen, 0, 0, 0, 0, $ancho, $alto, $data[0], $data[1]);
ob_start();
if ($creator == 'imagejpeg')
{
$creator($miniatura, null, $calidad);
}
else
{
$creator($miniatura);
}
return array(ob_get_clean(), $data['mime']);
}
$imagen_nombre = 'http://www.google.es/intl/en_com/images/logo_plain.png';
list($miniatura, $mime) = crearMiniatura($imagen_nombre, 100);
if ($miniatura !== false)
{
header('Content-Type: '.$mime);
echo $miniatura;
}