如何在php中使用对齐文本

时间:2016-01-27 09:17:58

标签: php gd

我想创建一个包含文字的图像,其中字母间距适应,因此文本将在给定空间内拉伸。我的目标是将文本分割成最大x毫米的行,并证明文本的正确性(增加字母间距)。

以下是当前输出的示例:

enter image description here

这应该是它的样子:

enter image description here

这是我目前的代码:

function ImageStringWrap($image, $font, $x, $y, $text, $color, $maxwidth, $textcolor)
{
    $fontwidth = ImageFontWidth($font);
    $fontheight = ImageFontHeight($font);

    if ($maxwidth != NULL) {
        $maxcharsperline = floor($maxwidth / $fontwidth);
        $text = wordwrap($text, $maxcharsperline, "\n", 1);
      }

    $lines = explode("\n", $text);
    while (list($numl, $line) = each($lines)) {
        $fontfile = imageloadfont('app_global/ttf/verdana.ttf');
        ImageString($image, 14, $x, $y, $line, $color);
        #Imagettftext ($image, 14 , 0, $x , $y , $color , $fontfile ,  $line );
        $y += $fontheight;
      }

    $hight = 20*count($lines);
    imageline ($image , 10 , 5 , 290, 5 , $textcolor );
    imageline ($image , 10 , $hight , 290, $hight , $textcolor );
}


header("Content-type: image/png");
$string = urldecode($_GET['text']);
$im     = imagecreate(300, 150);

// White background and blue text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 0);


 #imageline ($im , 0 , 10 , 200, 0 , $textcolor );
// Write the string at the top left
#imagestring($im, 11, 10, 10, $string, $textcolor);
ImageStringWrap($im, 11, 10, 10, $string, $textcolor, ImageSX($im), $textcolor);

我怎么能用php实现这个目标?

使用评论部分中提到的php.net网站的代码,我确实得到了一些非常接近的内容,但是文字看起来很模糊:

enter image description here

0 个答案:

没有答案