2010-09-25 49 views
5

Tôi gần như tích cực rằng có một lý do ngu ngốc điều này là không làm việc, nhưng tôi chỉ không thể hình này ra. Tôi chỉ cố gắng in ra một số văn bản như một hình ảnh với imagettftext, nhưng tôi không thể có được những từ để hiển thị. Đây là trên một máy chủ GoDaddy, vì vậy tôi không kiểm soát tất cả mọi thứ, nhưng đây là những thông số kỹ thuật từ phpinfo():PHP imagefttext (imagettftext) không hiển thị bất cứ điều gì

  • PHP Version 5.2.14
  • with-gd' '--with- freetype-dir =/usr '' --with-jpeg-dir =/usr '' --with-png-dir =/usr/bin/libpng-config '' --enable-gd-native-ttf '
  • GD Hỗ trợ kích hoạt
  • GD Version kèm (2.0.34 tương thích)
  • FreeType Hỗ trợ kích hoạt
  • FreeType Mối liên hệ với freetype
  • Phiên bản FreeType 2.2.1

Đây là mã tôi đang sử dụng. Không có gì lạ mắt hay kỳ lạ.

$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); 

tôi đã cố gắng thay đổi tên phông chữ cách khác nhau:

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

Tôi đã cố gắng sử dụng PNG thay vì GIF, tôi đã cố gắng sử dụng imagefttext() và imagettftext(), tôi đã thử hiển thị lỗi, nhưng nó không hiển thị bất kỳ lỗi nào, chỉ là một màn hình trống. Ý tưởng nào? Nó phải là một cái gì đó rất ngu ngốc ...

+0

Đối với tất cả những ai đến đây từ các công cụ tìm kiếm: hãy chú ý đến câu trả lời của @Mark Lalor bên dưới, vì tôi rất tiếc vì tôi đã không làm vậy. Đó là vấn đề của tôi chính xác: tôi phải đặt 'imagettftext ($ image, 20, 20, 20, 20, $ black, $ font, 'KIỂM TRA TEXTING');' để bắt đầu thấy một chút văn bản và sau đó tôi đã nó từ đó –

Trả lời

6

tôi đã nhận nó (Nó đau đầu của tôi trong một thời gian xem xét tôi là một chuyên gia về vấn đề này ...)

Sai lầm là vị trí Y phải có một offeset của các font size vì thế nó sẽ giống như thế này

<?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

Chà, đó là điều ngu ngốc. Vị trí Y là phần cuối của văn bản chứ không phải trên cùng. Ugh. Cám ơn rất nhiều. – SenorPuerco

+0

Rất tiếc, có vẻ như câu trả lời của Jatt đã xuất hiện trước mặt bạn. Tôi sẽ chuyển câu trả lời được chấp nhận cho anh ấy. Cảm ơn một lần nữa, mặc dù. – SenorPuerco

+0

OK, tôi không thể đọc chính xác. Chuyển câu trả lời lại cho bạn. Sheesh. – SenorPuerco

1

Có thể là do bạn đánh vần imagettftext sai?

+0

imagettftext() và imagefttext() là hai hàm khác nhau. Cảm ơn bạn đã cố gắng để giúp đỡ mặc dù. – 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); 

thử này ... phông chữ trong folde cùng r

+0

Vâng, đúng vậy. Tọa độ Y nhấp nháy là phần cuối của văn bản, chứ không phải trên cùng, vì vậy tôi đã hiển thị văn bản ở phía trên cùng của hình ảnh. Sheesh. – SenorPuerco

+0

Tôi chấp nhận câu trả lời của Mark kể từ khi nó đến một vài phút trước khi bạn. Cảm ơn rất nhiều. – SenorPuerco

Các vấn đề liên quan