Cómo leer y modificar una imagen en PHP

Antonio J. Galisteo

Anuncio:

Vamos a ver cómo leer y modificar una imagen en PHP. Lo que vamos a hacer es escribir texto en una imagen. En  primer lugar, en nuestro directorio, vamos a tener una imagen, img.jpg (también puede ser PNG), la fuente que vamos a usar y nuestro archivo imagen.php donde vamos a tratar la imagen en PHP. En este caso vamos a usar Arial, puedes descargar la fuente Arial en formato TTF de Git.

En primer lugar vamos a definir el header de nuestro archivo con:

header('Content-Type: image/jpeg');

Ahora, vamos a leer la imagen en PHP con:

$im = imagecreatefromjpeg('img.jpg');

Ya tenemos cargada nuestra imagen en PHP. Lo que vamos a hacer ahora, es definir el texto, la fuente y el color que vamos a escribir en la imagen:

$negro = imagecolorallocate($im, 0, 0, 0);
$texto = 'XXXX';
$fuente = './arial.ttf';

A la hora de definir la fuente, es importante que indiques la rula relativa ./ ya que yo he tenido problemas al indicar solo el nombre. Vamos a poner el texto en la imagen:

imagettftext($im, 20, 0, 100, 140, $negro, $fuente, $texto);

Los parámetros de la función imagettftext son:
– La imagen
– Tamaño del texto
– Ángulo de inclinación
– Desplazamiento en el eje X
– Desplazamiento en el eje Y
– Color del texto
– Fuente del texto
– Texto

Ahora, podemos ver la imagen en pantalla con

imagejpeg($im, NULL, 100);
// o bien con
imagejpeg($im);

O bien podemos guardarlo en un nuevo archivo con:

imagejpeg($im, "./ruta/nombre.jpg", 100);

Los parámetros de la función imagejpeg son:

– La imagen
– Ruta donde la guardaremos, en caso de mostrar en pantalla poner NULL (Parámetro opcional)
– Calidad de compresión. (Opcional)

Con esto ya hemos leído una imagen y modificado poniendo un texto en PHP.

Puedes aprender más en nuestra sección de PHP.

Espero que te haya sido de utilidad.

Publicado el 06-08-2018

Donar

Si te ha sido de ayuda y quieres hacer una donación te lo agradeceremos :)

Compartelo!


Deja un comentario

Comentanos

*

Ir arriba de la pagina