不知大家有没有玩过“QQ秀”?玩过的话一定会想自己也做一个类似的功能。不过没有玩过也没关系,你可以看看下面的演示。用户可以在列出的图片中自由定制自己的形象,用在论坛社区、留言本等地方的形象显示可是个不错的主意哦!怎么样?心动了吧?那让我们看看这东西到底是怎么回事吧
演示:
实际上,左边“形象预览”的形象是由多幅图片一层一层拼成的,呵呵,了解Photoshop的层技术就很容易理解了。每层图片的大小一样,必要显示的地方都调整在特定范围,其他地方都是透明的。在换形象时,只要把相应层的图片替换掉就可以了。不难理解,演示中只有20幅用于拼凑形象的图片(原始的形象有4幅),却可以拼出54=625个形象!
我们用一个特定格式的字符串来记录用户的形象配置,也是根据该字符串来显示虚拟形象,该字符串暂且称为配置码。存取形象时,就存取该配置码即可。因为这十分简单,所以这里不讨论服务器端语言的操作。配置码的格式举个例子就容易明白,例如“df>2>1>0”表示第一层图片名为“df.gif”,第二层名为“2.gif”,第三层名为“1.gif”,没有第四层。所以不要给图片起名为“0.gif”。
下面我们看看虚拟形象具体是如何实现的。演示中用了四层拼凑一个形象(其际上您可以用更用层):第一层裤子,第二层上衣,第三层发型,第四层帽子。各层供选图片都放在各自的目录中,目录名分别为1、、2、3、4,即和层数相同。另外列表中的图片和拼凑形象的图片不相同,列表中的只是缩略图。大图“1.gif”对应的缩略图是“1x.gif”,依此类推。另外每个目录都有一个图片“df.gif”,是该层的默认原始图片。
照此这安置好图片后,开始编写代码,为了便于理解,以下代码的顺序并不完全按照演示中的顺序:
点击“保存形象”将向服务器提交配置码变量“userequip”,可用服务器端语言进行处理。要在其他地方显示该形象,则可根据注释选取上面代码中的部分代码就行了。
有兴趣的朋友可点击这里(注:将example.htm和equipment打包供下载,因为读者看不到图片放置格式)下载演示的源文件及图片。