Laboratorio: añadir título a la cabecera usando PHP y filtros
El otro día nos preguntaban que funcionalidades se le podía añadir a la entrada Laboratorio: Recorta imágenes dinámicamente con PHP y HTML. Y aunque son muchas, depende de la imaginación que tengamos, a mí se me ha ocurrido escribir el título del blog en la cabecera usando un filtro blur para resaltar el texto, algo que he visto en varios lugares.
El proceso es igual que en la entrada anterior, salvo que en vez de devolver una imagen nueva que es un trozo de la original, lo que vamos a coger es ese trozo, aplicarle el filtro blur varias veces para que quede muy difuminado, escribirle el título y devolver la imagen original con el trozo modificado copiado en el mismo sitio de donde se cogió.
<?php
// Abre la imagen
$fichero = getcwd()."/".$_GET["img"];
$texto = $_GET["texto"];
if (preg_match('/.png$/', $fichero)) {
$img = imagecreatefrompng($fichero);
} else if (preg_match('/.gif$/', $fichero)) {
$img = imagecreatefromgif($fichero);
} else if (preg_match('/.jpg$/', $fichero)) {
$img = imagecreatefromjpeg($fichero);
}
$xini = $_GET["xini"];
$yini = $_GET["yini"];
$xfin = $_GET["xfin"];
$yfin = $_GET["yfin"];
$res = imagecreatetruecolor ($xfin-$xini, $yfin-$yini);
imagecopy($res, $img, 0, 0, $xini, $yini, $xfin-$xini, $yfin-$yini);
// Aplicamos filtro blur
for ($i=0; $i<40; $i++) {
imagefilter($res, IMG_FILTER_GAUSSIAN_BLUR);
}
// Escribimos texto
// Calculamos el tamaño de letra
$letra = 81;
$tam = null;
do {
$tam = imagettfbbox ( $letra--, 0, "arial.ttf", $texto );
} while (abs($tam[6]-$tam[4]) > abs($xfin-$xini) || abs($tam[3]-$tam[5]) > abs($yfin-$yini));
$negro = imagecolorallocatealpha($res, 0, 0, 0, 80);
imagettftext ( $res, $letra, 0, 0, abs($tam[3]-$tam[5])+(abs($yfin-$yini)-abs($tam[3]-$tam[5]))/2, $negro, "Arial", $texto);
imagecopy($img, $res, $xini, $yini, 0, 0, $xfin-$xini, $yfin-$yini);
header("Content-type: image/png");
imagepng($img);
?>
Código fuente aquí
CMS Made Simple, como bien indica su nombre, es un CMS para PHP que nos permite crear un sitio web de forma rápida y sencilla, y poder gestionar igualmente sus contenidos. No es tan solo rápida la realización de páginas, sino el aprendizaje de la utilización de la aplicación, la gestión es muy intuitiva y además permite añadir nuevos módulos para ampliar las funcionalidades del sistema.