-1
/*create watermark*/

    // Create the image
    $im = imagecreate(460, 50);

    // Create some colors
    $grey = imagecolorallocate($im, 230, 231, 232);
    $dark_grey = imagecolorallocate($im, 128, 130, 133);

    // The text to draw
    $text = "foobar";

    // Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

$font = 'Tondu_beta';



    // Add the text
    imagettftext($im, 15, 0, 15, 35, $dark_grey, $font, $text);


    $wm_w = imagesx($im); //get width
    $wm_h = imagesy($im); //get height

    $wmresource = $im; //watermark resource

//imagejpeg($wmresource);

/*end watermark*/

フォント ファイルは Tondu_Beta.ttf です。上記のコードは私のローカル マシンでは問題なく動作しましたが、ライブ サーバーにアップロードした後、灰色のボックスしか表示されませんでした。ここで何が問題なのですか?ありがとう^^

更新:このエラーが発生したことを覚えています:Could not find/open font bla.bla..bla...

4

3 に答える 3

1

使ってみて

"./Tondu_beta.ttf"

フォントとphpファイルの両方がルートディレクトリにあるときにうまくいきました

于 2013-10-10T01:10:22.543 に答える
0

ドキュメントから直接:

fontfile

使用するTrueTypeフォントへのパス。

PHPが使用しているGDライブラリのバージョンに応じて、fontfileが先頭の/で始まらない場合、ファイル名に.ttfが追加され、ライブラリはライブラリで定義されたフォントパスに沿ってそのファイル名を検索しようとします。

2.0.18より前のバージョンのGDライブラリを使用する場合、さまざまなフォントファイルの「パス区切り文字」としてセミコロンではなくスペース文字が使用されていました。この機能を意図せずに使用すると、次の警告メッセージが表示されます。警告:フォントが見つかりません/開くことができませんでした。これらの影響を受けるバージョンの場合、唯一の解決策は、スペースを含まないパスにフォントを移動することです。

フォントがそれを使用するスクリプトと同じディレクトリにある多くの場合、次のトリックはインクルードの問題を軽減します。

<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>
于 2012-07-23T17:42:38.887 に答える
0

エラーは一目瞭然です。ライブ サーバーに問題のフォント (Tondu_Beta.ttf) がインストールされていません。サーバーにフォントをインストールするか、サーバーにあるフォントを選択します。

于 2012-07-23T17:34:35.230 に答える