本文实例讲述了Python基于identicon库创建类似Github上用的头像功能。分享给大家供大家参考,具体如下:
Identicon在很多大型IT网站上可以见到,比如Github,Sourceforge,Stackoveflow等等, 刚刚注册的账号的个人信息的默认图标都是一些看上去像七巧板拼凑的图案,对称又变化多端。
本人也是因为好奇才在网上搜了这个算法,主要是哈希算法,把邮箱或者IP的信息图形化,很直观。
这个算法有很多版本, php的, .net的, python的, ruby的, 因为咱们社区是python的, 所以这里给大家发一个python版本的.
使用示例:
1. 直接到 https://github.com/shnjp/identicon 下载identicon.py,
2. 将identicon.py放到你能找到的地方.
3. 然后在相同的目录里新建一个test.py
4. 打开test.py
输入以下代码:
1
2
3
|
import identicon
img = identicon.render_identicon( '123123' , 16 )
img.show()
|
这样就能够看到图像了, 大小是3*16=48. 即图片大小是48X48像素的尺寸.如果报错了, 就是你没有安装python的图像处理模块PIL, 安装之后再试.
保存图像
上面的代码只是简单的使用, 还没保存.保存代码如下:
1
2
3
|
import identicon
img = identicon.render_identicon( '123123' , 16 )
img.save( '123123.png' )
|
会在相同的目录保存一个png格式的图片
批量生成图片
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import identicon
def gen_identicon(code,size):
img = identicon.render_identicon(code, 16 )
#img.show()
img.save( '%s_%s.png' % (code,size))
for x in xrange ( 10000000 , 10000000 + 5 ):
gen_identicon(x, 16 )
for x in xrange ( 20000000 , 20000000 + 5 ):
gen_identicon(x, 16 )
for x in xrange ( 40000000 , 40000000 + 5 ):
gen_identicon(x, 16 )
for x in xrange ( 80000000 , 80000000 + 5 ):
gen_identicon(x, 16 )
for x in xrange ( 160000000 , 160000000 + 5 ):
gen_identicon(x, 16 )
|
说明:
1
|
identicon.render_identicon(code, 16 )
|
这里的code是一个数值, 或者字符串数值, 如果code比较大, 比如code=10000000, 生成的图片就是彩色的. code比较小, 比如code=1~100之间的, 生成的图片就是黑白色的.
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://blog.csdn.net/huyoo/article/details/40480289