Evilnapsis

Programming, Hacking and More

PHP Stuffs

Agregar texto sobre una imagen usando PHP y la libreria GD

La libreria GD es un conjunto de funciones que sirven para manipular imagenes, se pueden crear y manipular imagenes GIF, JPG, PNG y BMP.

GD significa Graphic Draw.

Aqui les dejo un enlace para ir a la documentacion de la libreria GD.

Ahora, en este articulo les mostrare como agregar texto a una imagen, en este caso son 2 lineas de texto.

Codigo

El codigo es el siguiente. Ya tiene comentarios en cada linea explicando lo que hacemos.

// Tipo de contenido
header('Content-type: image/png');

// Crear la imagen usando la imagen base
$image = imagecreatefrompng('html5.png');

// Asignar el color para el texto
$color = imagecolorallocate($image, 255, 255, 0);

// Asignar la ruta de la fuente
$font_path = __DIR__.'\arial.ttf';

$text = "TEXTO DINAMICO EN IMAGEN"; // Texto 1
$text2 = "OTRA LINEA DE TEXTO CON PHP"; // Texto 2

/// imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
imagettftext($image, 80, 0, 100, 200, $color, $font_path, $text); // Colocar el texto 1 en la imagen
imagettftext($image, 80, 0, 100, 1000, $color, $font_path, $text2); // Colocar el texto 2

imagepng($image); // Enviar el contenido al navegador

imagedestroy($image); // Limpiar la memoria

Hay algunas observaciones que tomar en cuenta.

En el ejemplo estamos usando la funcion imagecreatefrompng para una imagen tipo PNG, si queremos usar PNG o BMP debemos usar las funciones imagecreatefromjpegimagecreatefrombmp o cualquier otra dependiendo del formato. Tambien debemos cambiar la funcion imagepng por su funcion correspondiente al tipo imagejpeg o imagebmp o cualquier otra. El resto de funciones funciona normal.

Otro detalle es la ruta de la fuente, que dependiendo de la version de PHP debe llevar solo el nombre de la fuente para el uso local o toda la ruta absoluta.

La funcion imagettftext con la que agregamos el texto, en los parametros 4 y 5 donde especificamos la posicion del texto, esta sujeta a la medida de la imagen, en el ejemplo estoy usando una imagen de 1920×1080.

Al ejecutar el script se muestra la imagen original con el texto sobrepuesto, pero en la salida del navegador.

Si queremos guardar la imagen resultado directamente entonces debemos agregar el nombre del archivo a guardar en la funcion imagepng o correspondiente.

Por ejemplo: imagepng($image,”result.png”);

Resultado

Este es el resultado del ejemplo:

Descargar

El contenido de descarga incluye. Codigo PHP, fuente arial.ttf, imagen original del ejemplo, imagen resultado.

Link: Descargar Ejemplo

Saludos

Agustin Ramos

Desarrollador de Software

Leave a Reply