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í
Stubbles es un framework para PHP5 que combina las caracterÃsticas favoritas de otros lenguajes de programación y frameworks, en vez de usar los paquetes que te gustan y combianrlos con PEAR, Zend Framework u otros frameworks de PHP.
Algunas veces nos podemos encontrar con la necesidad de incluir un motor de búsquedas en nuestra aplicación web, no me refiero a uno interno, sino a uno que busque dentro de todo Internet.