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