Identicon:实现根据用户账号生成像素头像php版

上github或者其它一些技术社区,经常可以看到这种像素效果的头像:

5F82B78F-A89E-4D06-967B-A0B492C85CF6.png

v2ex社区的像素头像

这种头像一般是为了让没有上传头像的用户能呈现多样化的效果,避免清一色默认头像的尴尬。

这种头像有个专门的术语:Identicon。所以要找这方面的资料搜Identicon就可以了。

我想要的是一个php版本的,对比了很多个项目,发现只有yzalis/Identicon做的比较好。其实现的效果如下:

9D5180AF-D753-425C-A595-0DE8261CF785.png

但是这个库使用对于新手来说存在一点问题。

1.yzalis/Identicon文档中介绍的使用方法用到了composer.json这样的方式,很多人不太会,包括我,而且用这个库也是作为小工具来使用的,按照文档那种配置太麻烦了。

2.yzalis/Identicon源码中使用了use关键字,php版本较低的话不支持,需要php5.3。ps:奇怪的是我php5.4居然也会报错~

下面就介绍一种非常传统的php写法来使用这个库。

其实就是要解决上面的两个问题。

首先文档中提到的composer.json是为了解决依赖管理的问题,这个根本不用管,包括下面的代码你都不用管:

<?php
require 'vendor/autoload.php';

依赖我们完全可以用require_once来解决。

还有就是use的问题,去掉源码中所有的use,namespace关键字,使用到use的地方我们用require_once替代,而namespace直接去掉即可。

如果你不知道怎么做,直接下载一个我修改之后的版本就可以了https://github.com/jianghejie/Identicon 。

修改后的项目里面,index.php是使用这个库的例子。

要看效果直接输入url:http://www.xxxx.com/Identicon/index.php?string=test&size=48