使用 LetterAvatar 实现纯前端生成字母头像

mengkun 39.3K 82

偶然发现码云上有个非常人性化的细节:会自动给没头像的用户生成一个昵称首字符的彩色头像,关键是打开控制台一看,发现这头像居然还是在前端实时生成的[aru_7] 这就很有意思了!

使用 LetterAvatar 实现纯前端生成字母头像

码云上的字符头像

以前知道 WordPress 有一款插件 WP First Letter Avatar 能实现类似的功能,但采用的是 php 在后端生成头像,使用起来不是很灵活。

仔细研究了码云的前端代码,发现它使用的是一个叫 LetterAvatar 的 JS 插件。它的原理是利用动态创建的 canvas 生成图像,然后显示在 img 标签中。具体的代码以及调用示例可以直接看下面的在线演示:[aru_47]

在线演示 原版地址

WordPress 插件版

为了方便大家的使用,我基于该代码编写了一个 WordPress 插件,该插件会自动将评论区无头像用户的头像显示成昵称首字符的彩色头像。整个插件大小只有不到 5kb,无需任何配置,上传启用即可生效,并且不会在服务器产生任何缓存文件,纯净好用!具体运行效果可以参考本站的留言区。

Github 地址 直链下载

↑↑↑ 最后,别忘了帮忙点个 star 哦~[aru_12]

发表评论 取消回复
表情 图片 链接 代码

  1. 夜影小窝
    夜影小窝 Lv 1

    git主题启用了也不行,能看看怎么回事吗?

  2. 呵呵
    呵呵 Lv 1

    呵呵

  3. 乐乐
    乐乐 Lv 1

    这个评论也是

  4. 夜影小窝
    夜影小窝 Lv 1

    git主题启用了也行,呵呵

  5. 火钳刘明
    火钳刘明 Lv 1

    看看效果

  6. AEMOM
    AEMOM Lv 1

    厉害了[aru_7]这插件 贼爽,测试了在dux主题失效[流泪](默认主题wordstar也是)...

    • 笨孩纸
      笨孩纸 Lv 1

      @AEMOMdux主题用不了

      • AEMOM
        AEMOM Lv 1

        @笨孩纸哈哈[斜眼笑]稍微改下DUX主题就可以用了!只是访客读者墙还不知如何改调用[小纠结]

      • Steven
        Steven Lv 1

        @AEMOM请问怎么修改的呢?求指点

      • AEMOM
        AEMOM Lv 1

        @Steven我看到知更鸟的能用便拿来参考改!把头像改为根据评论者来调用get_avatar( $comment, 64, '', get_comment_author() ); 然后本身我也同时用了zm-first-letter-avatar插件,里面也有alt可能就刚好匹配吧[托腮]。

  7. 四驱牛牛
    四驱牛牛 Lv 1

    已star

  8. 职业群主
    职业群主 Lv 1

    以前用的默认头像,有时就会出现无法显示的情况 这个解决方案好

  9. 使用 LetterAvatar 实现纯前端生成字母头像-CPMan.Studio
    使用 LetterAvatar 实现纯前端生成字母头像-CPMan.Studio Pingback

    […] 本文作者为mengkun,转载请注明。 […]

  10. 和拖鞋
    和拖鞋 Lv 1

    测试头像

  11. 爱猫的男孩
    爱猫的男孩 Lv 1

    感觉可以把流言墙的样式弄成这样的,比正方形好看。哈哈#(滑稽)

  12. Time丨Brand
    Time丨Brand Lv 1

    欢迎留言,广告绕道。随缘回复! →_→

    • mengkun
      mengkun 站长

      @Time丨Brand欢迎留言,广告绕道。随缘回复! →_→

  13. Kengwang
    Kengwang Lv 1

    哈,这个功能搞得好!一堆懒得设头像的人的福音

  14. crasp
    crasp Lv 1

    这个头像溜得很

  15. Pony Ma
    Pony Ma Lv 1

    你好,欢迎来腾讯上班!

    • mengkun
      mengkun 站长

      @Pony Ma我也想啊~[aru_149]

  16. SaoDaye
    SaoDaye Lv 1

    ?!?!?好像大佬你网站评论也有点问题,我没重复提交,也提示 频率过快。。

    啊对了。插件启用了,貌似也没有生效。。。[aru_7]

    • mengkun
      mengkun 站长

      @SaoDaye你明明……重复提交了……
      启用了但没生效可能是因为你的主题的头像输出不是使用的 wp 标准函数 get_avatar()

  17. SaoDaye
    SaoDaye Lv 1

    谢谢大佬。但启用插件后,似乎没有生效。[aru_2]

  18. ‍♀️12
    ‍♀️12 Lv 1

    测试头像

    • mengkun
      mengkun 站长

      @‍♀️12emoji 没办法绘制在 canvas 上[aru_2]……还有……这个头像很绿[斜眼笑]

  19. 龙笑天
    龙笑天 Lv 3

    评论框下面的这个微博图床又挂了...[aru_7]

    • mengkun
      mengkun 站长

      @龙笑天自己建一个图床的 API 吧[呲牙]

      • 龙笑天
        龙笑天 Lv 3

        @mengkun[aru_2]改用loli图床了啊~

  20. 不朽千秋
    不朽千秋 Lv 1

    这将解决不会设置头像的评论者一大福音[aru_21]

    • Gmc
      Gmc Lv 1

      @不朽千秋所以敢问大哥该怎么设置头像[aru_15]

  21. 阿仁
    阿仁 Lv 1

    占楼

  22. 杨小杰博客
    杨小杰博客 Lv 3

    连头像都没有,如何服众

  23. 野人
    野人 Lv 2

    坤坤,太优秀了吧,头像太好看了

  24. 洒洒水
    洒洒水 Lv 1

    可以可以

  25. 李大锤
    李大锤 Lv 1

    滴~看头像

  26. 尹华峰博客
    尹华峰博客 Lv 1

    很nice

  27. 腾讯视频
    腾讯视频 Lv 1

    震惊!!

  28. 杰新博客
    杰新博客 Lv 3

    占楼[aru_8]

  29. 完美者
    完美者 Lv 5

    我是不是用不上这个?

  30. 完美者
    完美者 Lv 5

    随缘占楼

分享