使用 imagettftext() 右对齐图像中的文本,PHP
我正在为我的用户设置动态论坛签名图像,我希望能够将他们的用户名放在图像上。我可以很好地做到这一点,但是由于用户名长度不同并且我想右对齐用户名,当我必须设置 x & 时我该如何做呢? y 坐标。
$im = imagecreatefromjpeg("/path/to/base/image.jpg");
$text = "Username";
$font = "Font.ttf";
$black = imagecolorallocate($im, 0, 0, 0);
imagettftext($im, 10, 0, 217, 15, $black, $font, $text);
imagejpeg($im, null, 90);
I am setting up dynamic forum signature images for my users and I want to be able to put their username on the image. I am able to do this just fine, but since usernames are different lengths and I want to right align the username, how can I go about doing this when I have to set x & y coordinates.
$im = imagecreatefromjpeg("/path/to/base/image.jpg");
$text = "Username";
$font = "Font.ttf";
$black = imagecolorallocate($im, 0, 0, 0);
imagettftext($im, 10, 0, 217, 15, $black, $font, $text);
imagejpeg($im, null, 90);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用 stil/gd-text 类。免责声明:我是作者。
您还可以绘制多行文本。只需在传递给
draw()
方法的字符串中使用\n
即可。使用此类生成的示例:
You can use stil/gd-text class. Disclaimer: I am the author.
You can also draw multilined text. Just use
\n
in the string passed todraw()
method.Example generated with this class:
使用 imagettfbbox() 预先计算用户名的大小。
从那里获得的宽度,您可以扣除文本需要开始的 x 位置。
Pre-calculate the size of the user's name using imagettfbbox().
From the width you get from there, you can then deduct the x position at which your text needs to start.
这会起作用............
This will work...............
我增强了 sujithayur 代码,并创建了允许所有对齐(左、中、右)和对齐的函数。 (顶部、中心、中间)及其组合。它还使用文本阴影。
I enhanced sujithayur code, and created function which allows all aligns (left, center, right) & (top, center, middle) and its combinations. It also uses text shadow.
使用 imagettfbbox 函数获取字符串的宽度,然后从图像的宽度中减去该宽度以获得起始 x 坐标。
Use the imagettfbbox function to get the width of the string and then subtract that from the width of the image to get the starting x-coordinate.