最近在做一个网页,avatar系统, 就象是qq秀, 用户点击选择脸,眉毛, 等等,然后组合成一个虚拟形象,现在我实现了在网页上显示这些,但问题是现在仅仅是一张图片覆盖在另一张图片上,当用户在图片上点击另存为的时候存的是最外层的图片,求问怎么把这些图片合成起来,合成起来能保存在服务器端也可以(不显示给用户也可以),谢谢,怎么通过代码来实现啊?

解决方案 »

  1.   

    ·双线主机 100M/35元/年,免费送数据库(自选MY/MSSQL) 
    ·详情请访问:http://www.515dns.com 
      

  2.   

    var myequip="df>df>df>0"; //最初显示的配置码,可由服务器读取并输出。 function shoiwit(equip){ //这个函数由配置码为参数,显示虚拟形象
    showlayers=equip.split('>'); //以“>”为分隔符,分配各层图片名到一个数组 showlayers[]
    str="";
    for(i=0;i<showlayers.length;i++){
    if(showlayers[i]!='0'&&showlayers[i]!=''){ //如果图片名为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)+";'>";
    }
    }
    //最后在最上一层覆盖一幅完全透明的图片,这样用户在上面右链>另存为也只能保存这幅图了:
    str+="<img src='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; //把配置码赋值到隐藏域中
    bodyshow.innerHTML=str; //显示各层图片。
    }
    //页面加载后先显示最初的虚拟形象:
    document.body.onload=new Function("shoiwit(myequip)"); function dressit(layer,img){ //这个函数用于更换配置,参数为 层数,图片名
    showlayers=myequip.split('>');
    newequip="";
    for(i=0;i<showlayers.length;i++){
    if(i+1==layer){
    if(img==showlayers[i]) newequip+="df"; //如果该层已是这幅图片,则恢复为原始图片
    else newequip+=img; //否则换为这幅图
    }
    else newequip+=showlayers[i]; //其他层图片不变
    if(i+1!=showlayers.length) newequip+=">";
    }
    shoiwit(newequip); //显示最新配置
    }这是我的代码,希望指点一下,怎么才能让图片融为一体,谢谢