FlashのActionScriptでWebcamからの映像にモザイク処理

| | コメント(0) | トラックバック(0)

Flashで、ウェブカムからの画像にモザイク処理をかけるコードです。





FLAファイルはこちら

以下を参考にさせていただきました。
http://d.hatena.ne.jp/rsakane/20081220/image_processing



import flash.display.*;
import flash.geom.*;
import flash.filters.*;

var cam:Camera;

//加工無しのウェブカム映像を表示
var vid:Video;

var _bmpd:BitmapData;

var i = 0;
var SIZE = 20;

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

cam = Camera.get();
cam.setMode(160,120,15);

vid._xscale=-200;
vid._x=320;
vid.attachVideo(cam);

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

//bitmapdataを貼り付けるムービークリップ
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc._x = 320;

onEnterFrame = function () {
	//ムービークリップにbitmapdataを貼り付け
	mc.attachBitmap(_bmpd,10);
	//ビデオ画像をビットマップデータにdraw
	_bmpd.draw(vid, new Matrix(-2, 0, 0, 2, 320, 0));
	for (var i = 0; i<_bmpd.width; i += this.SIZE) {
		for (var j = 0; j<_bmpd.height; j += this.SIZE) {
			pixelization(i,j,SIZE,SIZE);
		}
	}
};

function pixelization(x, y, width, height) {
	var pixel = 0;
	var red = 0;
	var green = 0;
	var blue = 0;
	var count = 0;

	for (var i = x; i<x+width; i += 5) {
		for (var j = y; j<y+height; j += 5) {
			if (i>=x+width || j>=y+height) {
				continue;
			}

			//bitmapdataのピクセルを取得
			pixel = _bmpd.getPixel(i, j);
			red += pixel >> 16 & 0xFF;
			green += pixel >> 8 & 0xFF;
			blue += pixel & 0xFF;
			count++;
		}
	}
	red /= count;
	green /= count;
	blue /= count;

	for (i=x; i<x+width; i++) {
		for (j=y; j<y+height; j++) {
			pixel = 0;
			pixel += red << 16;
			pixel += green << 8;
			pixel += blue;
			
			//bitmapdataに処理後のピクセルをセット
			_bmpd.setPixel(i,j,pixel);
		}
	}
}

トラックバック(0)

このブログ記事を参照しているブログ一覧: FlashのActionScriptでWebcamからの映像にモザイク処理

このブログ記事に対するトラックバックURL: http://www.amatiny.com/mt/mt-tb.cgi/51

コメントする


画像の中に見える文字を入力してください。

ADs by Google

このブログ記事について

このページは、tamaが2009年1月31日 18:32に書いたブログ記事です。

ひとつ前のブログ記事は「AIXでのシスログ(syslog)の設定手順」です。

次のブログ記事は「FlashのActionScriptでWebcamからの映像にぼかし処理」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01