PHP实现首字母头像
短信预约 -IT技能 免费直播动态提醒
';function letter_avatar($text){ $total = unpack('L', hash('adler32', $text, true))[1]; $hue = $total % 360; list($r, $g, $b) = hsv2rgb($hue / 360, 0.3, 0.9); $bg = "rgb({$r},{$g},{$b})"; $color = "#ffffff"; $first = mb_strtoupper(mb_substr($text, 0, 1)); $class="lazy" data-src = base64_encode(''); $value = 'data:image/svg+xml;base64,' . $class="lazy" data-src; return $value;}function hsv2rgb($h, $s, $v){ $r = $g = $b = 0; $i = floor($h * 6); $f = $h * 6 - $i; $p = $v * (1 - $s); $q = $v * (1 - $f * $s); $t = $v * (1 - (1 - $f) * $s); switch ($i % 6) { case 0: $r = $v; $g = $t; $b = $p; break; case 1: $r = $q; $g = $v; $b = $p; break; case 2: $r = $p; $g = $v; $b = $t; break; case 3: $r = $p; $g = $q; $b = $v; break; case 4: $r = $t; $g = $p; $b = $v; break; case 5: $r = $v; $g = $p; $b = $q; break; } return [ floor($r * 255), floor($g * 255), floor($b * 255) ];}
- 定义了一个
letter_avatar
函数,接收一个参数$text
,表示要生成头像的文字。- 使用
hash
函数计算出$text
的哈希值,并将其解包为一个无符号长整型数。- 将哈希值对360取余得到一个色相值
$hue
。- 使用
hsv2rgb
函数将色相、饱和度和亮度转换为RGB分量值。- 根据RGB值生成背景颜色
$bg
。- 设定文字颜色
$color
为白色。- 使用
mb_strtoupper
函数将$text
的首字母转为大写。- 使用SVG语法生成一个正方形的背景和一个居中的文字。
- 使用
base64_encode
函数将SVG代码转为Base64编码。- 将Base64编码和前缀
data:image/svg+xml;base64,
拼接成完整的图片路径。- 返回生成的图片路径。 注意:这段代码只是生成了一个头像图片的路径,并没有将图片输出到页面中。如果要在页面中显示头像,需要将生成的图片路径作为
标签的
class="lazy" data-src
属性值。
来源地址:https://blog.csdn.net/weixin_39934453/article/details/132107961
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341