制作仿“QQ秀”的虚拟形象

不知大家有没有玩过“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”,是该层的默认原始图片。

照此这安置好图片后,开始编写代码,为了便于理解,以下代码的顺序并不完全按照演示中的顺序:

<!-- 在要显示形象预览的地方放置以下这句代码 -->
<div id="bodyshow" style="border:1px solid #000000;padding:0;POSITION: relative; Left: 0px; TOP: 0px; HEIGHT: 226px; WIDTH: 140px;"></div>
<!-- 这是提交表单,把代表用户形象的字符串赋到隐藏域 userequip 提交 -->
<form name="equipform" method="post" action="">
<input name="userequip" type="hidden" value="">
<input name="saveequip" type="submit" value="保存形象" >
<input name="toreequip" type="button" value="原始形象" >
</form>

<script language="javascript">
<!--
var myequip="df>df>df>0"; file://最初显示的配置码,可由服务器读取并输出。

function shoiwit(equip){ file://这个函数由配置码为参数,显示虚拟形象
showlayers=equip.split('>'); file://以“>”为分隔符,分配各层图片名到一个数组 showlayers[]
str="";
for(i=0;i<showlayers.length;i++){
if(showlayers[i]!='0'&&showlayers[i]!=''){ file://如果图片名为0或空值则该层不显示。
str+="<img src='equipment/"+(i+1)+"/"+showlayers[i]+".gif' style='padding:0;position:absolute;top:0;left:0;width:140;height:226;z-index:"+(i+1)+";'>";
}
}
file://最后在最上一层覆盖一幅完全透明的图片,这样用户在上面右链>另存为也只能保存这幅图了:
str+="<img src='http://edu.cnzz.cn/NewsInfo/equipment/blank.gif' style='padding:0;position:absolute;top:0;left:0;width:140;height:226;z-index:100;'>";
if(equipform.userequip) equipform.userequip.value=myequip=equip; file://把配置码赋值到隐藏域中
bodyshow.innerHTML=str; file://显示各层图片。
}
file://页面加载后先显示最初的虚拟形象:
document.body.onload=new Function("shoiwit(myequip)");

function dressit(layer,img){ file://这个函数用于更换配置,参数为 层数,图片名
showlayers=myequip.split('>');
newequip="";
for(i=0;i<showlayers.length;i++){
if(i+1==layer){
if(img==showlayers[i]) newequip+="df"; file://如果该层已是这幅图片,则恢复为原始图片
else newequip+=img; file://否则换为这幅图
}
else newequip+=showlayers[i]; file://其他层图片不变
if(i+1!=showlayers.length) newequip+=">";
}
shoiwit(newequip); file://显示最新配置
}

-->
</script>

<!--
以下是供选图片列表,点击一幅图则更改相应的层的这幅图片
注意链接路径,javascript:dressit(4,1) 表示第4层换上/脱下图片"1.gif",依此类推;
不过要注意若要第4层换上/脱下图片“df.gif”,则应加引号,写成 javascript:dressit(4,'df')
-->
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="84"><a href="javascript:dressit(4,1)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/4/1x.gif" width="84" height="84" border="0"></a></td>
<td width="84"><a href="javascript:dressit(4,2)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/4/2x.gif" width="84" height="84" border="0"></a></td>
<td width="84"><a href="javascript:dressit(4,3)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/4/3x.gif" width="84" height="84" border="0"></a></td>
<td width="84"><a href="javascript:dressit(4,4)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/4/4x.gif" width="84" height="84" border="0"></a></td>
</tr>
<tr>
<td><a href="javascript:dressit(3,1)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/3/1x.gif" width="84" height="84" border="0"></a></td>
<td><a href="javascript:dressit(3,2)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/3/2x.gif" width="84" height="84" border="0"></a></td>
<td><a href="javascript:dressit(3,3)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/3/3x.gif" width="84" height="84" border="0"></a></td>
<td><a href="javascript:dressit(3,4)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/3/4x.gif" width="84" height="84" border="0"></a></td>
</tr>
<tr>
<td><a href="javascript:dressit(2,1)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/2/1x.gif" width="84" height="84" border="0"></a></td>
<td><a href="javascript:dressit(2,2)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/2/2x.gif" width="84" height="84" border="0"></a></td>
<td><a href="javascript:dressit(2,3)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/2/3x.gif" width="84" height="84" border="0"></a></td>
<td><a href="javascript:dressit(2,4)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/2/4x.gif" width="84" height="84" border="0"></a></td>
</tr>
<tr>
<td><a href="javascript:dressit(1,1)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/1/1x.gif" width="84" height="84" border="0"></a></td>
<td><a href="javascript:dressit(1,2)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/1/2x.gif" width="84" height="84" border="0"></a></td>
<td><a href="javascript:dressit(1,3)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/1/3x.gif" width="84" height="84" border="0"></a></td>
<td><a href="javascript:dressit(1,4)"><img src="http://edu.cnzz.cn/NewsInfo/equipment/1/4x.gif" width="84" height="84" border="0"></a></td>
</tr>
</table>

点击“保存形象”将向服务器提交配置码变量“userequip”,可用服务器端语言进行处理。要在其他地方显示该形象,则可根据注释选取上面代码中的部分代码就行了。

时间: 2025-01-19 16:02:44

制作仿“QQ秀”的虚拟形象的相关文章

腾讯QQ秀第三届虚拟形象创意大赛

腾讯QQ秀"虚拟形象创意大赛",是由全球最大的虚拟时尚平台--QQ秀,整合官方机构.联手国内权威人士.时尚界.设计院校.时尚媒体.网络红人等共同打造一场最具标志性和影响力的中国虚拟时尚盛事! 生活需要爱,设计融入爱.2010,推出"爱.烙印"为主题的QQ秀第三届虚拟形象创意大赛.无论是养育之恩的爱,相濡以沫的爱,淳朴无私的爱,大爱无疆的爱--让我们一起以"爱"为元素,推崇大爱.和谐.健康的生活态度,以作品来诠释生活中每一处爱的烙印. 本届大赛将整

js实现仿QQ秀换装效果的方法_javascript技巧

本文实例讲述了js实现仿QQ秀换装效果的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="www.w3.org/1999/xhtml"> <he

注销QQ秀恢复成未注册状态 附QQ秀注销地址

  越来越多的游戏绝版QQ秀真是让人眼花缭乱,就连 QQ红钻免费保存已下架绝版QQ秀 或 九钻QQ秀制作工具V3.0 一键制作九钻真人秀 可能也满足不了你的需求了.那么今天小编就来分享个让QQ秀注销恢复成未注册形象.特别适合不想买QQ秀,又不想穿裤衩的朋友! QQ秀未注册形象 如下图: 操作方法: 1.打开注销QQ秀地址 http://show.qq.com/qqshow_close_step1.html 点击"我要注销QQ秀". 2.填写完关闭问卷调查即可成功注销QQ秀了.如下图:

jQuery制作仿腾讯web qq用户体验桌面_jquery

jquery ui制作仿腾讯web qq用户界面,酷炫个性的desktop桌面特效展示支持各大主流浏览器IE6以上.jQuery用户体验设计,web qq桌面十分动感酷炫. 查看演示: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <

价值达百万QQ秀被盗网友欲请律师状告腾讯

有的绝版Q Q秀网上叫价甚至高达88800元. "还我绝版QQ秀!"前日上午,十余名 网友来到南山飞亚达大厦腾讯公司维权.事因他们精心收藏的绝版QQ秀,竟在几小时之内被人洗劫一空. 据网友不完全统计,被盗Q Q秀按照网上交易价格计算的话已高达百万.用户们认为这是由于腾讯Q号申诉制度存在致命技术缺陷而导致的,腾讯公司则表示他们无法调查此事,应该向有关网监部门报案. 据了解,Q Q秀被盗的现象虽然一直都存在,但近四个月来变得非常猖狂,盗窃者专挑价格昂贵 的 绝 版Q Q秀 下手,先是盗取用

网友价值百万QQ秀被盗欲请律师状告腾讯

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 有的绝版Q Q秀网上叫价甚至高达88800元. "还我绝版QQ秀!"11月30日上午,十余名网友来到南山飞亚达大厦腾讯公司维权.事因他们精心收藏的绝版QQ秀,竟在几小时之内被人洗劫一空. 据网友不完全统计,被盗QQ秀按照网上交易价格计算的话已高达百万.用户们认为这是由于腾讯Q号申诉制度存在致命技术缺陷而导致的,腾讯公司则表

畅想未来,一起来装扮一个独特的QQ秀

QQ秀的起源 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;      QQ秀最初来源于韩国,后来被腾讯公司引进到中国开始火起来. QQ秀是一个QQ虚拟形象设计系统,您可以选择QQ秀商城的虚拟服饰.场景和人物形象来装扮您在QQ.QQ聊天室.腾讯社区.QQ交友等服务中显示的虚拟形象.参与QQ秀,您在互联网虚拟世界中将同样可以体验到现实生活的自由和乐趣.不过得花钱. QQ秀还有红钻服务,每月交纳10Q币就可使用,红钻

把你的QQ秀同步显示在网页、论坛上

很多时候,我们希望能在个人主页上挂上自己QQ的形象秀.并且达到同步的效果.其实这个功能挺容易的.因为QQ秀的图片不是虚拟的图片共用而是实际存在的.如:以下是我的QQ秀:     使用代码:<IMG src="http://qqshow-user.tencent.com/120673406/10/00/">     主要你将其中的120673406换成你的QQ号码就OK了. 全身QQ秀: http://qqshow-user.tencent.com/你的QQ号码/10/00/

jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果

jquery图片特效制作仿腾讯QQ商城首页banner焦点图片轮播切换效果,带索引按钮控制和左右按钮控制图片切换,实例代码如下,感兴趣的朋友可以参考下哈   复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jquery图片