Cómo convertir texto a imagen mediante PHP

La mayoría de las operaciones basadas en imágenes se pueden realizar mediante el uso de funciones integradas en PHP. Las funciones de PHP para imágenes provienen de la librería GD y podemos utilizarlas para convertir texto en una imagen. Antes de eso, debemos asegurarnos de que la biblioteca de GD esté habilitada en la configuración del php.ini. También puedes ejecutar la función phpinfo() de PHP para verificar si la librería GD está activada.

Enviaremos el valor de un campo de texto de un formulario HTML a un script PHP. En el PHP, llamaremos a funciones de la librería GD para convertir el valor de dicho campo de texto en una imagen. Crearemos distintas capas de imágenes para poner el texto y el fondo. Luego, fusionaremos las capas y copiaremos lo que nos interesa para mostrar la imagen final en el navegador del usuario. Para que no haya errores, revisaremos con Javascript si el usuario ha ingresado texto en el campo.

Obtener y validar la entrada de texto a través del formulario HTML

En este código te muestro el formulario HTML del cual obtenendremos el valor que vamos a convertir en imagen. Al enviar este formulario, validaremos el valor del campo mediante JavaScript y si todo está correcto lo enviaremos al script PHP. Una vez llevada a cabo la conversión en imagen, la imagen resultante se mostrará debajo de este formulario.

<form name="form" id="form" method="post" action="index.php"
        enctype="multipart/form-data" onsubmit="return validateForm();">
    <div class="form-row">

        <div>
            <label>Enter Text:</label> <input type="text"
                class="input-field" name="txt_input" maxlength="50">
        </div>
    </div>
    <div class="button-row">
        <input type="submit" id="submit" name="submit"
            value="Convert">
    </div>
</form>

Convertir texto en una imagen utilizando funciones de la librería GD

En PHP, mediante las funciones de la librería GD, podemos convertir el valor de un campo de texto en una imagen. Para ello crearemos una capa de imagen transparente en la que colocaremos el valor del campo de texto. Después crearemos una capa para la imagen de fondo y la fusioné con la capa del campo de texto utilizando la función imagecopymerge (). Una vez fusionadas las capas, recortaremos la parte requerida de la capa fusionada utilizando imagecopy() y mostraremos la imagen resultante en el navegador del usuario.

<?php
if (isset($_POST['submit'])) {
    
    $img = imagecreate(500, 100);
    
    $textbgcolor = imagecolorallocate($img, 173, 230, 181);
    $textcolor = imagecolorallocate($img, 0, 192, 255);
    
    if ($_POST['txt_input'] != '') {
        $txt = $_POST['txt_input'];
        imagestring($img, 5, 5, 5, $txt, $textcolor);
        ob_start();
        imagepng($img);
        printf('<img src="data:image/png;base64,%s"/ width="100">', base64_encode(ob_get_clean()));
    }
}
?>

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP