6

これが機能しない愚かな理由があることはほぼ確実ですが、これを理解することはできません。imagettftext を使用してテキストをグラフィックとして印刷しようとしていますが、単語を表示できません。これは GoDaddy サーバー上にあるため、すべてを制御しているわけではありませんが、phpinfo() の仕様は次のとおりです。

  • PHP バージョン 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 サポートが有効
  • GD版同梱(2.0.34対応)
  • FreeType サポートが有効
  • FreeType フリータイプとの連携
  • FreeType バージョン 2.2.1

これが私が使用しているコードです。空想や奇妙なことは何もありません。

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

フォント名をさまざまな方法で変更しようとしました:

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

GIF の代わりに PNG を使用してみました。何か案は?それはとてもばかげた何かに違いない...

4

3 に答える 3

9

私はそれを手に入れました(私がこれの専門家であることを考えると、しばらく頭が痛いです...)

間違いは、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);
?>
于 2010-09-25T19:20:06.487 に答える
1

スペルをimagettftext間違えたのではないでしょうか?

于 2010-09-25T18:22:08.167 に答える
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);   

これを試してください...同じフォルダー内のフォント

于 2010-09-25T19:23:33.017 に答える