将视频转化成位图,而你无法区分看到的是位图而不是视频

import flash.media.Camera;
import flash.display.BitmapData;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.filters.BlurFilter;
import flash.filters.ConvolutionFilter;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.media.Video;
import flash.system.Security;
import flash.system.SecurityPanel;


var cam:Camera;
var vid:Video;
var bmpd:BitmapData;
var flakes:Array;

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

cam = Camera.getCamera();
Security.showSettings(SecurityPanel.CAMERA);
//视频大小和质量(宽度,高度,每秒帧数15对目前设置来看还算可以);
cam.setMode(320,240,15);
vid = new Video(320,240);
vid.attachCamera(cam);
//创建一个模糊滤镜
vid.filters=[new ConvolutionFilter(1,3,[0,4,-4]),new BlurFilter()];

var vid2:Video = new Video(320,240);
vid2.attachCamera(cam);
vid2.scaleX = -1;
vid2.x = 320;
addChild(vid2);

bmpd = new BitmapData(320,240,false);

flakes=new Array();
addEventListener(Event.ENTER_FRAME,onEnter);

function onEnter(event:Event):void
{
 bmpd.draw(vid,new Matrix(-1,0,0,1,bmpd.width,0));
 bmpd.threshold(bmpd,bmpd.rect,new Point(),"<",0x00220000,0xff000000,0x00ff0000,true);

 var snow:Snow=new Snow();
 snow.x = Math.random() * bmpd.width;
 addChild(snow);
 flakes.push(snow);

 for (var i:int=flakes.length-1; i>=0; i--)
 {
  snow = flakes[i] as Snow;
  if (bmpd.getPixel(snow.x,snow.y) == 0)
  {
   snow.update();
   if (snow.y > bmpd.height)
   {
    removeChild(snow);
    flakes.splice(i,1);
   }


  }
 }
}

 

snow.as雪的例子就不贴了,网上找下吧

转载于:https://www.cnblogs.com/cobrenda/archive/2012/07/09/2583708.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值