0

キャプチャを作成しようとしています。そのためには、イメージを作成する必要があります。Nettuts のこのチュートリアルに従っています。それを作成するには、関数 imagettftext() を使用する必要があります。しかし、実行しようとするたびに、エラーが表示されます

imagettftext(): 無効なフォント ファイル名です

私のコードを以下に示します。

<?php
    session_start();  

    $string = '';  

    for ($i = 0; $i < 5; $i++) {  
        $string .= chr(rand(97, 122));  
    }  

    $_SESSION['random_code'] = $string;

    $dir = base_url('assets/fonts/asman.ttf');

    $image = imagecreatetruecolor(170, 60);  
    $color = imagecolorallocate($image, 200, 100, 90);
    $white = imagecolorallocate($image, 255, 255, 255);

    imagefilledrectangle($image, 0, 0, 200, 100, $white);  
    imagettftext($image, 30, 0, 10, 40, $color, $dir, $_SESSION['random_code']);
?>

関連する場合に備えて、CodeIgniter フレームワークを使用していますが、CI キャプチャ ライブラリを使用したくありません。

4

3 に答える 3

1

PHPマニュアルから:

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

そのためにURLパスを使用しないでください(URLがで始まらないことにも注意してください/

フォントファイルを指定するときは、絶対ファイルシステムパスを使用することをお勧めします:

$dir = '/full/path/to/assets/fonts/asman.ttf';
imagettftext($image, 30, 0, 10, 40, $color, $dir, $_SESSION['random_code']);

CIには、適切なファイルを参照できるアプリケーションパスを返す機能があると確信しています。

于 2013-09-07T20:08:54.347 に答える