« WCAN mini ActionScript Vol.3 | メイン | FIVe3D »

WCAN mini ActionScript Vol.3 のやつソース公開

del.icio.us it!   hatena bookmark

WEBカメラの画像を定期的にサーバーへアップするやつを発表したんだけど、結構仕組みを質問されたからソース公開しておく。

ちなみにこちらを参考にしました。

FICC LABS | Flashから画像ファイルを保存する
http://www.ficc.jp/labs/archives/ando/flash/

ソースはこちらから
http://un-q.net/2007/07/23/files/Camera2JPG.as.zip


以下のライブラリにcom.adobe.images.JPGEncoderってのがあるのでそれを使います
http://as3corelib.googlecode.com/

JPGEncoderはbitmapdataをJPGのByteArrayに変換してくれるので、それをサーバー側に投げてファイルにして保存してるだけです。

重要なのはこの辺かな。


bmd.draw(video); // カメラの内容をdraw
var jpge:JPGEncoder = new JPGEncoder(80);
var byteArr:ByteArray = jpge.encode(bmd);
urlRequest = new URLRequest(phpPath); // 保存用のPHP
urlLoader = new URLLoader();
urlRequest.contentType = "application/octet-stream";
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = byteArr;
urlLoader.load(urlRequest);

ちなみにPHPのソースは


$fileName = time()."-".round(rand(1,10000)).".jpg";
$fp = fopen("img/".$fileName, 'wb');
fwrite($fp, $GLOBALS['HTTP_RAW_POST_DATA']);
fclose($fp);
print $fileName;

だけ

WEBカメラ扱うのは、なかなかおもしろいっすな。



Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編] 集合知プログラミング ビジュアライジング・データ —Processingによる情報視覚化手法 御岳百草丸 1200T

トラックバック

このエントリーのトラックバックURL:
http://un-q.net/mt-tb.cgi/191

コメント (2)

高橋:

WCAN miniお疲れさまです。
アップルップルの高橋です。

>fwrite($fp, $GLOBALS['HTTP_RAW_POST_DATA']);
受け取ったデータを
そのままストリームに流し込む?みたいな感じでしょうか?
$GLOBALS['HTTP_RAW_POST_DATA']
というのは知りませんでした。
他にもいろいろ面白いことができそうですね。

{eL_e3電気を大切に:

$GLOBALS['HTTP_RAW_POST_DATA']はmimeが判定できないときだけアクセス可能な変数なので、php://inputの方をつかってストリームを開いたほうがいいですよ。

あと、com.adobe.images.JPGEncoderとcom.adobe.images.PNGEncoderは、Flex3からは標準になるみたいですね。

それぞれ、
mx.graphics.codec.PNGEncoder
mx.graphics.codec.JpegEncoder
と変更されてます、encode()メソッドがスタティックメソッドからインスタンスメソッドに代わってたりと微妙に変わってるっぽいです。

コメントを投稿