【发布时间】:2016-09-27 15:54:47
【问题描述】:
我有一个函数可以根据字体大小、字体颜色、文本坐标、文本字符串本身和背景图像成功地将文本插入图像。该功能运行良好。但是,我可以选择将用户名与一些示例文本连接起来,以便可以在图像中生成字符串。这以两种不同的方式发生:
1.Username + Text -> 这是要在图像中生成的文本。
2.Text + Username -> 这是要在图像中生成的文本。
这是选项的代码示例:
//option 1
$textValue = $username . ' ' . $textValue;
//option 2
$textValue = $textValue . ' ' . $username;
所以这应该可以完美地工作,因为 PHP 以这种方式连接字符串(对吗?)
请参阅下图中的结果:
因此,您在第一行中看到用户名在文本之前,结果非常好,但在第二行中,文本被弄乱了。
我正在使用 PHP GD 将文本写入图像。它与西里尔字符无关。我用西里尔字符测试过,问题是一样的。我已经删除了测试图像的实际用户名,并将其替换为字符串“用户名”只是为了得到这个想法。
【问题讨论】:
-
检查字符串的长度是否有区别,看起来文本只是在同一行上换行。
-
长度还可以,我正在使用github.com/kus/php-image 类进行图像处理。所选区域在两种方式中的大小相同。
-
我的意思是:使用较短的字符串,看看覆盖效果是否消失。如果是这样,您将不得不将字符串拆分为适合图像长度的部分,并将每个部分的光标重新定位到下方。
-
仍然不能正常工作..较短的字符串是可以的,但随着字符串变长,文本大小会自动减小。但是如果用户名在字符串之后,它就不起作用。它只有在用户名是第一位的情况下才有效..
-
如果您在实际调用 ->text() 函数的位置添加代码,也许我可以提供帮助。
标签: php string image concatenation