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
1 2 3 4 5


(3.40)