新闻详情

新闻详情

首页 / 资讯中心 / 详情

PHP实现首字母(截取第一个汉字)生成头像图片

发布时间:2026/9/26 21:51:50来源:尧图网络
PHP实现首字母(截取第一个汉字)生成头像图片
会员系统中用户如果不上传自定义头像使用固定图片作为头像未免有些单调。PHP可以实现生成用户名首字母或者第一个汉字第一个字符的头像图片不使用第三方API第三方虽然图片比较多但是会有超时。设计思路定义了一个letter_avatar函数接收一个参数$text表示要生成头像的文字。使用hash函数计算出$text的哈希值并将其解包为一个无符号长整型数。将哈希值对360取余得到一个色相值$hue。使用hsv2rgb函数将色相、饱和度和亮度转换为RGB分量值。根据RGB值生成背景颜色$bg。设定文字颜色$color为白色。使用mb_strtoupper函数将$text的首字母转为大写。使用SVG语法生成一个正方形的背景和一个居中的文字。使用base64_encode函数将SVG代码转为Base64编码。将Base64编码和前缀data:image/svgxml;base64,拼接成完整的图片路径。返回生成的图片路径。 注意这段代码只是生成了一个头像图片的路径并没有将图片输出到页面中。如果要在页面中显示头像需要将生成的图片路径作为img标签的src属性值。完整代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899//1、方法调用测试letter_avatar(hello)//2、生成图片方法functionletter_avatar($text){$total unpack(L, hash(adler32,$text, true))[1];$hue$total% 360;list($r,$g,$b) hsv2rgb($hue/ 247, 0.3, 0.9);$bgrgb(247,186,11);$color#ffffff;$first mb_strtoupper(mb_substr($text, 0, 1));$srcbase64_encode(svg xmlnshttp://www.w3.org/2000/svg version1.1 height100 width100rect fill.$bg. x0 y0 width100 height100/recttext x50 y50 font-size50 text-copyfast fill.$color. text-anchormiddle text-rightsadmin dominant-baselinecentral.$first./text/svg);// 确保图片保存的路径存在$tempPath WEB_PATH .temp. DS .avatar. DS;$filename md5(avatar_. uniqid());// 生成图片链接returnbase64_to_image_url(data:image/svgxml;base64,.$src,$tempPath,$filename);}/details//3、生成https访问链接functionbase64_to_image_url($base64_string,$output_folder,$image_name){$datasubstr($base64_string,strpos($base64_string,,) 1);// 对数据进行Base64解码$fileDatabase64_decode($data);// 创建输出目录如果它不存在if(!file_exists($output_folder)) {mkdir($output_folder, 0755, true);}// 将解码后的数据保存到文件$file$output_folder.$image_name..svg;if(file_put_contents($file,$fileData)) {// 返回图片的URLreturnbase_url() .temp. DS .avatar. DS .$image_name..svg;}returnfalse;}//4、RGBfunctionhsv2rgb($h,$s,$v){$r$g$b 0;$ifloor($h* 6);$f$h* 6 -$i;$p$v* (1 -$s);$q$v* (1 -$f*$s);$t$v* (1 - (1 -$f) *$s);switch($i% 6) {case0:$r$v;$g$t;$b$p;break;case1:$r$q;$g$v;$b$p;break;case2:$r$p;$g$v;$b$t;break;case3:$r$p;$g$q;$b$v;break;case4:$r$t;$g$p;$b$v;break;case5:$r$v;$g$p;$b$q;break;}return[floor($r* 255),floor($g* 255),floor($b* 255)];}总结到此这篇关于PHP实现首字母截取第一个汉字生成头像图片的文章就介绍到这了
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

告别模板丑站:免费网站维护的5款神器与实操指南 2026/9/26 22:35:59

告别模板丑站:免费网站维护的5款神器与实操指南

告别模板丑站:免费网站维护的5款神器与实操指南 还在为那个从网上扒来的模板网站发愁?看着满屏的默认配色、错位的布局,连客户都嫌土气,自己更没法见人。这种“模板网站太丑不够用”的困境,几乎每个刚入行做网站的新手都踩过坑。别急着花钱找外包,也别…

阅读更多 →
实战案例复盘:怎么用本机ip做网站安全避坑指南 2026/9/26 22:35:52

实战案例复盘:怎么用本机ip做网站安全避坑指南

实战案例复盘:怎么用本机ip做网站安全避坑指南 备案流程一头雾水?别慌,这其实是很多刚入行或者想省点服务器成本的站长们遇到的第一个拦路虎。…

阅读更多 →
成都网站开发收费揭秘:不会代码想建站,多少钱才不踩坑 2026/9/26 22:35:52

成都网站开发收费揭秘:不会代码想建站,多少钱才不踩坑

成都网站开发收费揭秘:不会代码想建站,多少钱才不踩坑 很多老板心里有个结:我想做个官网,但我完全不懂代码,也不懂服务器,到底要花多少钱?在2024年的成都市场,这个问题没有标准答案,但有标准陷阱。你听到的“998元全包”和“3万起步”都是真…

阅读更多 →
江西网站开发多少钱避坑指南与保姆级建站教程 2026/9/26 22:35:39

江西网站开发多少钱避坑指南与保姆级建站教程

江西网站开发多少钱避坑指南与保姆级建站教程 找建站公司怕被坑高价?在江西,很多老板花几万块做出来的网站,不仅丑还慢,最后SEO排名还上不去。今天这篇保姆级建站教程,直接给你拆解江西网站开发的真实成本结构,让你心里有底,不再做冤大头。…

阅读更多 →
IDA 7.0逆向实战:固件加载、脚本化与动态调试全解析 2026/9/26 22:34:53

IDA 7.0逆向实战:固件加载、脚本化与动态调试全解析

简介:IDA Pro 7.0是一款面向逆向工程与安全研究人员的交互式反汇编利器,广泛应用于恶意软件分析、漏洞挖掘、二进制审计与软件破解等场景。资源包约200.83MB,共1002个文件,含283个dll插件模块、174个sig签名库、107个py脚本、87个…

阅读更多 →
Ollama 本地部署完整指南:模型目录、GGUF 导入与 AnythingLLM 接入 2026/9/26 22:34:53

Ollama 本地部署完整指南:模型目录、GGUF 导入与 AnythingLLM 接入

简介:针对Ollama本地私有化部署的安装指导小资源,适合需要在Linux/macOS环境快速完成大模型运行平台搭建的中初级开发者或运维人员。压缩包仅13KB,由3个文件构成,包括1个txt说明文档、1个sh安装脚本和1个php下载入口脚本&#xff…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉