No se puede mostrar la imagen porque contiene errores ( imagettftext )

***+ (3.40)
views: 1683

Este error ocurre entre muchas cosas porque al querer transformar un texto a imagen con


imagettftext


no encuentra la fuente, en el ejemplo que figura en la pagina php dependiendo la configuración puede haber un error, es que la fuente hay que llamarla indicando la ruta completa o sea con "./" adelate por lo que en el siguiente ejem


<?php

// Set the content-type

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



// Create the image

$im = imagecreatetruecolor(800, 600);



// Create some colors

$white = imagecolorallocate($im, 255, 255, 255);

$grey = imagecolorallocate($im, 128, 128, 128);

$black = imagecolorallocate($im, 0, 0, 0);

imagefilledrectangle($im, 0, 0, 800, 600, $white);



// The text to draw

$text = 'Testing...';

// Replace path by your own font path

$font = 'arial.ttf';



// Add some shadow to the text

//imagestring  ($im  , $font  , 0 , 0, 'hola'  , $gray );

imagettftext($im, 12, 0, 11, 21, $black, $font, $text);



// Add the text

//imagettftext($im, 18, 0, 10, 20, $black, $font, $text);



// Using imagepng() results in clearer text compared with imagejpeg()

imagepng($im);

imagedestroy($im);

?>


hay que cambiar $font = 'arial.ttf';  por $font = './arial.ttf'; y asegurarse que la fuente.ttf este en el raiz.


Este error se da porque no puede renderizar la imagen final por lo que si la fuente no es el problema lo mejor es ir sacando cosas hasta que funcione, pero le pongo todas las fichas a que con el ./ lo arreglas


 


Bonus track:  Les dejo un truco a la hora de trabajar con este tipo de archivos php que devuelven algo que no es html


En realidad no es un truco , es bastante obvio ,


todo lo que hace que el resultado del archivo sea un png u otra imagen es la cabecera


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


cuando tenemos un error en el codigo o lo que fuera , la salida por defecto sigue siendo una imagen por lo que el error no se ve y se muestra el mismo mensaje siempre, la imagen no se pudo generar


como hacemos entoces para ver el error ?


bueno , comentamos momentaneamente el cambio de cabecera


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


esto generara que la salida sea tipo texto , si hay un error lo veremos en pantalla , y si no lo hay veremos caracteres extraños que son los que componen la imagen ,


una vez corregido lo habilitamos y listo


Cómo Calificas este artículo?:
1 2 3 4 5


Los que entraron en este post también vieron:


Comentarios:

Agregar Comentario:


Nombre:                       Valoración:
Comentario:
E-mail:(opcional)

Copie el texto:

Google