2010-09-25 16 views
5

Estoy casi seguro de que hay una razón estúpida esto no está funcionando, pero simplemente no puedo imaginar éste. Solo estoy tratando de imprimir algo de texto como un gráfico con imagettftext, pero no puedo ver las palabras para mostrar. Esto está en un servidor GoDaddy, así que no controlan todo, pero aquí están las especificaciones de phpinfo():PHP (imagettftext) no se muestra nada

  • PHP Versión 5.2.14
  • --with-gd' '--with- freetype-dir =/usr' '--with-jpeg-dir =/usr' '--with-png-dir =/usr/bin/libpng-config' '--enable-gd-nativo-ttf'
  • GD activado Soporte
  • GD versión incluida (2.0.34 compatibles)
  • FreeType apoyo permitió
  • FreeType Vinculación con freetype
  • FreeType Version 2.2.1

Aquí está el código que estoy usando. Nada elegante o extraño.

$width = 270; 
$height = 25; 
$image = imageCreate($width, $height); 
$white = imageColorAllocate($image, 255, 255, 255); 
$black = imageColorAllocate($image, 0, 0, 0); 
$font = 'verdana.ttf'; 
imagefttext($image, 16, 0, 0, 0, $black, $font, 'TESTING TEXT'); 
header("Content-type: image/gif"); 
imageGIF($image); 

He intentado cambiar el nombre de fuente diferentes maneras:

$font = './verdana.ttf'; 
$font = dirname(__FILE__).'/verdana.ttf'; 

He intentado usar PNG en lugar de GIF, He intentado usar imagefttext() y imagettftext(), I' he intentado mostrar los errores, pero no muestra ningún error, solo una pantalla en blanco. ¿Algunas ideas? Tiene que ser algo tan estúpido ...

+0

Para todos los que vienen aquí desde los motores de búsqueda: por favor, preste atención a la respuesta por @ Marcos Lalor abajo, porque lamento que no lo hice. Ese fue mi problema exactamente: tuve que configurar 'imagettftext ($ image, 20, 20, 20, 20, $ black, $ font, 'TESTING TEXT');' para comenzar a ver un poquito del texto y luego tomé desde allí –

Respuesta

6

lo tengo (Le dolía la cabeza por un tiempo teniendo en cuenta que soy un experto en esto ...)

El error fue que la posición Y tiene que tener un offeset de el tamaño de la fuente por lo que debe tener este aspecto

<?php 
$width = 270; 
$height = 25; 
$image = imageCreate($width, $height); 
$white = imageColorAllocate($image, 255, 255, 255); 
$black = imageColorAllocate($image, 0, 0, 0); 
$font = 'verdana.ttf'; 
imagettftext($image, 16, 0, 0, 16, $black, $font, 'TESTING TEXT'); 
header("Content-type: image/gif"); 
imageGIF($image); 
?> 
+0

Guau, fue algo estúpido. La posición Y es la parte inferior del texto, no la parte superior. Ugh. Muchas gracias. – SenorPuerco

+0

Vaya, parece que la respuesta de Jatt vino antes que la tuya. Voy a cambiar la respuesta aceptada a la suya. Gracias de nuevo, sin embargo. – SenorPuerco

+0

OK, no puedo leer correctamente. Cambiando la respuesta a la tuya. Sheesh. – SenorPuerco

1

¿Podría ser que deletreaste imagettftext mal?

+0

imagettftext() y imagefttext() son dos funciones diferentes. Gracias por intentar ayudar, sin embargo. – SenorPuerco

1
$font = "verdana.ttf"; 
$im = @imagecreatetruecolor(270, 25) 
     or die('Cannot Initialize new GD image stream'); 
$backg = imagecolorallocate($im,255,255,255); 
imagefill($im, 0, 0, $backg); 
$color = ImageColorAllocate($im, 0,0,0); 
ImageTTFText($im,16,0,0,16, $color,$font,'hello'); 
header ('Content-type: image/gif'); 
ImageGIF($im); 
ImageDestroy($im); 

probar este ... fuente en el mismo folde r

+0

Sí, eso fue todo. La coordenada Y apestosa es la parte inferior del texto, no la parte superior, por lo que estaba mostrando el texto en la parte superior del gráfico. Sheesh. – SenorPuerco

+0

Acepté la respuesta de Mark porque llegó un par de minutos antes que la tuya. Muchas gracias sin embargo. – SenorPuerco