图像上的php gd文本中断

Posted

技术标签:

【中文标题】图像上的php gd文本中断【英文标题】:php gd text break on image 【发布时间】:2012-04-16 21:23:12 【问题描述】:

我试图根据我的摩天大楼横幅宽度大小来打破一个长短语,它不能承受超过三个单词,我在互联网上搜索并找到了一个脚本,它通过设置短语的字符长来打破文本,这里是它。

<?

header("Content-type: image/png");
$string = $_GET['text']. '  Click Here';
$im     = imagecreatefrompng("../../images/skyscrapper.png");
$orange = imagecolorallocate($im, 0, 0, 0);
$px     = (imagesx($im) - 3.8 * strlen($string)) / 2;
$font = 'verdana.ttf';

// Break it up into pieces 10 characters long
$lines = explode('|', wordwrap($string, 10, '|'));

// Starting Y position
$y = 450;

// Loop through the lines and place them on the image
foreach ($lines as $line)

imagestring($im,3, $px, $y, $string, $orange);

    // Increment Y so the next line is below the previous line
    $y += 23;


imagepng($im);
imagedestroy($im);



?>

问题是输出重复了三个短语而不是像这个屏幕截图那样破坏文本 ,有人可以帮忙解释一下是什么问题,我该怎么办?

【问题讨论】:

【参考方案1】:

您不会在循环内更改$string。不应该是:

imagestring($im,3, $px, $y, $line, $orange);
                            ^^^^^

改为?

【讨论】:

【参考方案2】:

可能替换

imagestring($im,3, $px, $y, $string, $orange);

imagestring($im,3, $px, $y, $line, $orange);

【讨论】:

以上是关于图像上的php gd文本中断的主要内容,如果未能解决你的问题,请参考以下文章

使用 GD 和 PHP 将多行文本居中对齐

如何使用GD在php中特定区域的图像上放置一些文本

当我尝试在 PHP + GD 库中添加图像时,文本消失了

如何使用 PHP GD 将文本写入不同大小的图像

PHP GD - 水平居中对齐文本并减小字体大小以将其保留在图像内

PHP-GD 使文本换行上的所有字体的行高兼容