网站里面经常会用到头像,不少网站上都使用Flsh来生成,今天正好看到一个Flash做得还不错,于是开始研究它的实现原理,下面是分析过程,不感兴趣的请直接跳过,到最后去下载源码包(在沙加的神舟本上测试通过),测试时请将 avatar_test 上传至网站根目录, 使用如果不正常的话多半是目录没有写权限, 请开启 avatar开头的三个子目录写权限. 特别申明, AvatarEditor.swf 由 bai.sohu.com 开发,版权归搜狐公司所有. 转载本文请注明出自 darkangle.cnblogs.com 谢谢

要分析它如何使用先从调用代码开始, 用firebug分别找到上传图片和摄像头的调用代码,大概是象这样的一段:
<embed height="464" width="514" flashvars="type=photo&photoUrl=http://pic7.bai.sohu.com.cn/a/2009/05/26/09/43/1217a5c86c_0.jpg&photoId=167&postUrl=http://upload.bai.sohu.com/camera.do?snstoken=007eae692e8c665ea195d6702cf59d55*13L6RgykIeLsXCkoxJG_0D45NrXNbrepW0Lpy2-wDqfKYhnrFqBlt_pg3gi575FB&saveUrl=http://upload.bai.sohu.com/icon.do?snstoken=007eae692e8c665ea195d6702cf59d55*13L6RgykIeLsXCkoxJG_0D45NrXNbrepW0Lpy2-wDqfKYhnrFqBlt_pg3gi575FB" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptaccess="always" quality="high" src="http://s1.bai.itc.cn/r/f_v1243271361/album/avatar/AvatarEditor.swf"/>
给这个flash传进去几个参数,具体是什么意思暂不清楚, 往下慢慢分析.

从IE缓存文件中找到AvatarEditor.swf, 使用Sothink SWF Decompiler (特别版网上可以找到,我用的5.0版) 反编之, 虽然以前没做过flash, 不过看了一下里面的脚本,也不是太难,找到两个关键脚本: AvatarEditor.as 和 BinaryTransfer.as , 其中BinaryTransfer负责以二进制向指定的地址传送数据.

上面的几个参数:photoUrl是原始图片的URL,不论是用摄像头拍摄还是上传方式,服务器端需要返回一个原始图片的地址供AvatarEditor编辑使用, type=photo是上传方式或者是使用头像相册中的图片. type=camera时是使用摄像头, camera.do 是保存摄像头拍摄照片的脚本地址,注意后面需要加参数(因为拼接地址需要),这个示例中不需要,所以用一个无意义的radom参数代替, 否则最后请求的地址不正确.

icon.do是保存缩略图的地址. photoId 是原始图片的id.

为了更清楚地了解post数据过程可以装一个fiddler, 监视post的地址以及返回值.

图片被保存后返回的是一些json数据,AvatarEditor根据这些数据决定上传成功还是失败,并通过外部js接口调用通知浏览器.

通过fiddler查看结合 BinaryTransfer 代码的分析得知 AvatarEditor 会把生成的jpg以二进制方式Post到服务器端,这样的话接收方式就有一些区别,而不是传统的表单上传文件的接收方式,调查一番后发现可以通过file_get_contents("php://input")来获取上传的二进制数据,再使用 file_put_contents(SD_ROOT.'./'.$new_avatar_path,file_get_contents("php://input")); 就可以写入目录文件内容,到此保存文件的问题就解决了,再用json返回一些必要数据给AvatarEditor

我在源码中已经添加了详细的注释请注意阅读。
源代码打包下载

效果图:

转自:http://www.cnblogs.com/darkangle/archive/2009/05/26/flash_avatar_maker.html

使用Flash在线制作头像相关推荐

  1. 【将web进行到底之长大在线系列教程】(四) === 第三章 FLASH动画制作

    第三章 FLASH动画制作 3.1 概述 Flash是美国Macromedia公司所设计的一种二维动画软件.现在,Flash已经被Adobe公司购买,用于设计和编辑Flash文档,以及Flash Pl ...

  2. 在线制作GIF图片项目愿景与范围

    在线制作GIF图片项目愿景与范围 a. 业务需求 a.1 背景 在当今社会中,随着聊天软件和web网站的普及,原创动画制作越来越吸引人们的眼球,一个好的动态图片,可能就会为你的网站或本人赢得更多人的认 ...

  3. 分享几个在线制作APP应用的网站

    随着移动化设备在网络中的普及,智能手机.平板电脑这些电子产品越来越成为了当今上网使用最频繁的工具,所以网站拥有一个属于自己的APP客户端应用也势在必行!这里我就给大家介绍几个在线制作APP应用的网站. ...

  4. 各种艺术字、图片在线制作

    制作印章:http://www.makepic.com/print.php 邮址图片生成:http://www.makepic.com/email.php 条形码生成:http://www.makep ...

  5. 在线制作流程图的实用工具网站

    在线制作流程图的实用工具网站 2009-12-18 07:05:54   来源:菠菜博  1, Tersus 是一款基于 AJAX 的在线绘图工具,支持手绘以及任意图表的制作,可以方便的创建各类流程图 ...

  6. 怎样在线将视频生成二维码?二维码在线制作工具使用教程

    很多小伙伴都喜欢通过生成二维码的方式来分享内容,比如视频.图片.文件等等,那么视频转二维码有没有无需下载,通过浏览器来在线制作二维码的工具呢?接下来就让小编把自己平时使用的二维码制作(https:// ...

  7. 有数Bizhelp帮助文档在线制作软件官方

    名称:有数Bizhelp帮助文档在线制作软件官方 软件大小:6 MB 软件语言:简体中文 软件官网:http://www.xiazai.com/ 软件授权:共享版 应用平台:Win8/Win7/Win ...

  8. 计算机专业的教学内容落后实例,中职《Flash动画制作》课程教学改革

    中职<Flash动画制作>课程教学改革 来源:用户上传 作者: 李绍园 作者简介:李绍园(1981-),女,广东惠州市博罗中等专业学校计算机助理讲师.研究方向:计算机教育教学.(广东 惠州 ...

  9. 影集制作php源码_2018最新仿720全景在线制作云平台网站PHP源码(新增微信支付+打赏+场景红包+本地存储)...

    源码介绍 最新仿720全景在线制作云平台网站|720云全景系统源码|全景在线制作网站源码是一款基于php+mysql开发制作的全景在线制作网站源码,包含全景图片,全景视频等.数据存储全部存于OSS云端 ...

  10. java在线制作视频,调用ffmpeg(具备影大师、爱美客在线制作视频等功能)

    最近在学校准备一个乡土文化教育竞赛项目,大部分的项目交互都是采用的论坛的形式展现,我打算采用视频交互的形式,针对于大部分人群,他们没有视频制作基础,视频制作对于他们来说太过于困难,为了服务这部分人群, ...

最新文章

  1. 三星android功能怎么用,三星GALAXY S II升级Android 4.0新功能介绍及使用技巧
  2. python调用zabbix api接口实时展示数据
  3. java C语言内存占用_使用Cgroup限制Java使用的内存量-思路
  4. 关于开发自我训练课程
  5. VS2012+WDK8.0搭建WDF驱动开发环境
  6. 全球及中国生物医药产业供给需求前景与运营风险分析报告2022版
  7. java开源笔记软件下载_开发常用软件笔记 - ZhaoQian's Blog - OSCHINA - 中文开源技术交流社区...
  8. 目录的操作 c# 1614532397
  9. PHP加速 eAccelerator配置和使用指南
  10. 怎么定义int_面试官问:MySQL的自增ID用完了,怎么办?!
  11. Android P2P语音通话实现(思路探讨)
  12. python Selenium启动chromedriver
  13. FME入门视频教程:第三节 FME界面及常用设置
  14. 主流编程语言的介绍及特点
  15. Spring 拾遗补阙
  16. 如何更换您的Gmail地址
  17. mysql select from user_select * from user 这条 SQL 语句,背后藏着哪些不可告人的秘密?...
  18. 2023最新健身俱乐部会员管理系统的设计与实现(毕业设计+论文+开题报告+运行)
  19. 论文总结3-Sub-center ArcFace: Boosting Face Recognition by Large-scale Noisy Web Faces
  20. 深圳各区对企业制定行业标准和国家标准的补贴,奖励5-200万

热门文章

  1. ACTS:首屈一指的软件测试策略是什么?
  2. 红杉资本合伙人Maguire:Crypto将是未来30年最大趋势
  3. 二期开发立项申请书,已经提交,等待批准!
  4. Windows 文件夹或文件名 太长无法删除怎么办? 一招教你怎样解决.
  5. 财务大数据课程要学python吗_大数据不用学python吗?
  6. FPGA之道(11)FPGA芯片的供电系统
  7. 麦子学院项目-懒人天气App思维导图、素材下载
  8. WIN2008R2修改远程桌面端口(不重启系统)
  9. 网络三定律:摩尔定律、吉尔德定律和迈特卡夫定律
  10. 六兆年と一夜物語 jzoj3501 最短路