将文本拟合到图像中

时间:2010-05-15 21:54:55

标签: php fonts true-type-fonts

我有一个函数,它接受一个字体(ttf或otf文件)并生成不同字体的文本图像。

我遇到的问题是试图弄清楚如何使文字适合图像,无论字体大小,字体类型和文本数量如何。

我试图使图像矩形变量,使其包含不同字体的文本,而不会削减一些文本,因为图像不够长或不够宽。

这是我目前的功能,我尝试使用字符数来确定图像的宽度,但在某些情况下,对于某些字体和大小,它仍然会被切断。

function generate_image($save_path, $text, $font_path){

    $length = strlen($text) * 15;

    // Create the image
    $im = imagecreatetruecolor($length, 40);

    $white = imagecolorallocate($im, 255, 255, 255);
    $grey = imagecolorallocate($im, 128, 128, 128);
    $black = imagecolorallocate($im, 0, 0, 0);

    imagefilledrectangle($im, 0, 0, $length, 40, $white);

    $font = $font_path;

    imagettftext($im, 30, 0, 0, 25, $black, $font, $text);

    if(imagepng($im, $save_path)){

        $status = true;

    }else{

        $status = false;

    }

    imagedestroy($im);

    return $status;

}

谢谢大家的帮助

1 个答案:

答案 0 :(得分:3)