いまさらWEBカメラ
いまさらWEBカメラを使ってみる
使うだけだと芸がないのでモザイク処理みたいなのをやっつけでつける
黒っぽいとこだけ映ります映るといいな
/**
* Copyright tak0294 ( http://wonderfl.net/user/tak0294 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/2NUB
*/
//いまさらWEBカメラを使ってみる
//使うだけだと芸がないのでモザイク処理みたいなのをやっつけでつける
//黒っぽいとこだけ映ります映るといいな
package {
import flash.geom.Rectangle;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.media.Camera;
import flash.media.Video;
import flash.events.*;
import flash.utils.*;
public class WebCamera extends Sprite
{
public var cam:Camera;
public var video:Video;
public var cameraTimer:Timer = new Timer(100);
public var frameBitmapData:BitmapData;
public var frameBitmap:Bitmap;
public const BLOCKSIZE:uint = 3;
public function WebCamera()
{
// write as3 code here..
cam = Camera.getCamera();
if ( cam != null )
{
// ビデオオブジェクト配置:サイズ指定
video = new Video( 400 , 320 );
// カメラ設定
video.attachCamera( cam );
// addChildで表示
//addChild( video );
}
//bitmapData準備.
frameBitmapData = new BitmapData(video.width, video.height, true, 0x00FFFFFF);
frameBitmap = new Bitmap(frameBitmapData);
addChild(frameBitmap);
cameraTimer.addEventListener(TimerEvent.TIMER, cameraTimerHandler);
cameraTimer.start();
}
private function cameraTimerHandler(e:TimerEvent):void
{
var bitmapData:BitmapData = new BitmapData(video.width, video.height, true, 0x00FFFFFF);
bitmapData.draw(video);
//frameBitmapData初期化.
frameBitmapData.fillRect(new Rectangle(0,0,video.width,video.height), 0x00FFFFFF);
for(var ii:uint=0;ii<video.width;ii+=BLOCKSIZE)
{
for(var jj:uint=0;jj<video.height;jj+=BLOCKSIZE)
{
var color:uint = bitmapData.getPixel32(ii,jj);
if(color < 0xFF444444)
color = 0xFFFF0000;
else
color = 0;
frameBitmapData.fillRect(new Rectangle(ii,jj,BLOCKSIZE,BLOCKSIZE), color);
}
}
bitmapData.dispose();
}
}
}