原来有几个前辈贴过了一些关于这个技术的代码,有JAVA的,也有FLASH COM的。现在我把FLASH部分通过摄象头获得图象信息的代码贴出来。供大家参考。
这段代码是我参考了别人的代码自己写出来的。原来的那个网站里总共提供了两个类来实现这个问题。估计贴出来大多数人也会看的眼花缭乱不知所以(其实我也没太看明白)。所以按原来程序的思路自己重新写了一部分。大多数语句都写了注释。如果大家有什么不明白的,欢迎跟贴讨论
注意:本程序需要Video的支持。具体添加办法请搜索FLASH8帮助(这个东西是FLASH库本身自带的)
/*FLASH大头贴原程序
/*程序编写:Benmouse2005-12-01
importflash.display.BitmapData;//要应用这个对象。。必须要包含一下
myCrame=Camera.get();//创建摄象头对象
myVideo.attachVideo(myCrame);//显示视频
varimger:BitmapData=newBitmapData(myVideo._width,myVideo._height,false);
imgShow.attachBitmap(imger,this.getNextHighestDepth(),"auto",true);
varthehang:Number=0;
varID:Number;
varPX:Array=newArray();
btn1.onRelease=function()
{
imger.draw(myVideo);//imger是场景中一个空的组件,用来显示myVideo的图象
thehang=0;
_root.ID=setInterval(makeImg,5);
}
functionmakeImg()
{
varpix:Number;
varpixer:String;
PX[thehang]=newArray();
for(w=0;w<imgShow._width;w++)
{
pix=imger.getPixel(w,thehang);
pixer=pix.toString(16);
if(pix==0xFFFFFF)pixer="";//don’tsendblankpixel
PX[thehang].push(pixer);
}
thehang+=1;
if(thehang>=imgShow._height)
{
clearInterval(_root.ID);
imger.dispose();
sendVars();
}
}
functionsendVars()
{
sender=newLoadVars();
sender.w=myVideo._width;
sender.h=myVideo._height;
for(i=0;i<sender.h;i++)
{
sender["PX"+i]=_root.PX[i];
}
sender.send("send.php","_blank","POST");
}