imagettftext()中的文件字体名无效

时间:2014-06-03 20:32:44

标签: php codeigniter

我尝试在代码点火器中创建我自己的验证码库,现在该库工作正常,没有代码点火器但是当我将它包含在代码点火器中时它给出了这条消息

  

遇到PHP错误

     

严重性:警告

     

消息:imagettftext():无效的字体文件名

     

文件名:helpers / cap_helper.php

     

行号:13

`

//now my cap_helper.php looks like this
    header('Content-type: image/jpeg');
    function create_image($fontfile)
    {
        echo $fontfile;
        $text = rand(0,9999);
        $font_size = 30;
        $image_width = 200;
        $image_height = 40;
        $image = imagecreate($image_width,$image_height);
        imagecolorallocate($image, 255, 255, 255);
        $text_color = imagecolorallocate($image, 0, 0, 0);
        imagettftext($image, $font_size, 0, 15, 30, $text_color, $fontfile, $text);
        imagejpeg($image);
    }
//controller file looks like this
function __construct()
    {
        parent::__construct();
        $this->form_validation->set_error_delimiters('<div class="alert alert-danger">','</div>');
        $this->load->model(array('welcome_model'));
        $this->load->helper(array('cap'));
    }
    function testing()
    {
        echo '<img src="'.create_image(base_url().'assets/font.ttf').'"/>';
    }

` 现在我的font.ttf文件保存在appname / assets / font.ttf中 我做错了什么?

2 个答案:

答案 0 :(得分:0)

我猜你最好不要使用网址来定位你的字体,而是使用绝对路径。就这样:

function testing()
{
    echo '<img src="'.create_image('/assets/font.ttf').'"/>';
}

答案 1 :(得分:0)

尝试下面的代码对我来说有用

function testing(){
    echo '<img src="'.create_image(realpath('assets/font.ttf')).'"/>';
}