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 imagecreatefromjpeg o imagecreatefrombmp 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