主要分析CyberLink的Youcam 和e2esoft的VCam。
========================== CyberLink YouCam =============================
安装后的目录结构: C:/Program Files/CyberLink/YouCam
File Type in the main Folder
有上面的结构大致可以知道一个程序大概分成几个部分。
该应用程序起作用的部分为多数为跟目录下的DLL,和AX文件,还有一些INI文件用来记录配置信息。还有XML文件也是用来记录信息。另外两个声音文件用在拍照的动作的配音。
目录Skin里面存放应用程序中用到的所有的图片文件。
目录Profile里面存放所有应用程序的录制时候需要用到的Profiles。
目录Language里面存放界面上所有字符串信息,用来进行多国语言处理。
目录BigBang
目录EffectScript
目录MUITransfer
目录OLRSubmission
都跟特效作用相关。
细看Skin目录,会发现根目录下有很多XML文件,多是配置信息。
Skin Folder里面有一款对应于分辨率的皮肤1024*768的文件夹。进入该文件夹,我们看到下面的目录结构:
通过这个我们可以得知一般一个对话框分配一个文件夹,里面保存该对话框上用到的所有图片资源。而这些对话框图片资源文件夹,正好跟Skin根目录下的XML文件形成对应关系。我们在自己的项目中也可以参考这样的组织方式。
Tips: 图片资源文件夹中有个Common文件夹,用来放置一些需要用到的公共资源。因为在一个完整的Project中,很多通用的按钮并不需要分开保存。因为在每个对话框上面基本都可以用到。例如:OK按钮,Cancel按钮,最小化按钮,最大化按钮,关闭按钮等。
Profile文件夹
里面的配置文件用来录制WMV。在DIRECTSHOW部分有讲解。在WFS(windows media format SDK)里面有讲解。主要用来自定义录制视频文件的一些特定属性。否则调用的是系统中默认的配置文件。该SDK你可以安装WINDOWS MEDIA SERIALS 9的WFS就可以了。(我推测他录制WMV也是用DIRECTSHOW的Graph来录制,只是里面用到的ASF Writer Filter用自定义的Profile来配置。
Language文件夹
data_xxx.txt里面保存的UI界面上的所有字符串值;
YouCamxxx.htm里面是自述文件;
YouCamxxx.chm是用户帮组文档;
IMxxx.dll估计是用在YouCam处于IM模式涉及到的资源。(IM模式即用在MSN,SKYPE,QQ)
Avatar_Models文件夹:用来存放脸部跟踪部分的模型数据和模型图片。
EffectScript文件夹
静态相框和动画特效都保存在这个目录下面,其中每种特效一个文件夹。
特效的实现(每个特效文件夹的内部结构)
重点是cfd文件和XML配置文件,其他的图片文件有两个是图片文件,两位两个是默认的效果图片。
其他的文件夹有些是为了实现特定的功能而加入的,不一一分析了,而且有一些是DLL。
还有一个目录,它用来保存拍摄的照片,录制的视频。FileShare的临时文件,而且还有特效的摆列顺序的配置文档。
============================= e2esoft VCam ==================================
这个文件夹的目录结构比较明确和简明。另外红框的明显是安装包和卸载需要的信息。
另外还有个UIRES.SKN文件,在有些应用程序中,这些文件的后缀名可以改为.zip,然后再解压缩就可以看到文件夹里面的图片资源了。
在e2esoft里面的Skin目录都是这样的目录,它将图片资源都经过了压缩和隐藏。
在程序当中,需要做的工作就是如何从压缩的zip文件中读取正确的图片。
还值得一提的是,在特效方面它已经考虑直接使用swf文件。而不是加载图片去做复杂的动画效果。
ZLIB文件从网上流行的CXIMAGE中分离,看得出来它需要使用PNG图片资源。
其他的文件夹不分析。
======================================= Magic - I ========================================
一堆DLL和封装起来的文件。可供分析的很少。