【发布时间】:2019-12-05 23:35:43
【问题描述】:
我想根据姓名的首字母创建徽标或个人资料头像,例如 Google。有什么方法或服务可以做到吗?
我试图学习有关使用 php 制作图像的代码,但这很难。有一次我发现了一个关于这个动态图像文本的网站,但我没有找到。
【问题讨论】:
我想根据姓名的首字母创建徽标或个人资料头像,例如 Google。有什么方法或服务可以做到吗?
我试图学习有关使用 php 制作图像的代码,但这很难。有一次我发现了一个关于这个动态图像文本的网站,但我没有找到。
【问题讨论】:
您可以在网上找到的最简单的示例将使用 PHP 的 imagecreate 和 imagestring 函数,例如这个:
https://phppot.com/php/how-to-convert-text-to-image-using-php/
这是我根据上面的链接整理的一个快速示例代码,它创建了一个类似于 Google 头像的图像:
$img = imagecreate(250, 250);
$textbgcolor = imagecolorallocate($img, 52, 152, 219);
$textcolor = imagecolorallocate($img, 255, 255, 255);
$txt = "AB";
$fontfile = "/arial.ttf";
imagettftext($img, 100, 0, 35, 170, $textcolor , $fontfile, $txt);
ob_start();
imagepng($img);
printf('<img src="data:image/png;base64,%s"/ width="100">', base64_encode(ob_get_clean()));
您需要将 arial.ttf 字体文件与您的 PHP 文件放在同一目录中才能正常工作。
但是,在大多数美观的字体中,字母的宽度并不相同。因此,您会发现很难将文本居中,因为您不能对字谜“MM”和“II”使用相同的 X 值。我建议您使用具有扩展功能的库,例如将文本居中对齐,我的赌注是gd-text。
【讨论】: