「crocro.jscam」の導入の仕方
「crocro.jscam」をWebページに組み込む方法を解説します。
注意点があります。WebカメラやHTML5のセキュリティの問題から、サーバー上でしか動作いたしません。ローカルでは実行することができません。
そのためまずは、サンプルをローカルで強制的に実行する方法を解説します。
ローカルで実行する方法
ローカルでサーバーを起動する際は、山本祐次様が、MITライセンスで公開している「HTTP Server Anywhere」が便利です。
配布ページには「1.0.1」と「1.0.0」があるので、「1.0.1」を使うのがよいでしょう。
「HTTP Server Anywhere」をダウンロードしたら、ZIPフォルダ内にある「server.jar」をサンプルフォルダに入れてください。
Java実行環境がある場合は、「server.jar」をダブルクリックすることでサーバーが起動します。
「http://127.0.0.1/index.html」を開くと、同じフォルダの「index.html」が、サーバー上のセキュリティで閲覧できます。
自分のWebページで利用する際
以下のようなファイル構成にします(ファイル構成の変更法は後述)。
- target.html - (導入したいHTMLページ)
- jscam.js
- jscam.swf
まずは、「body」タグ内の、Webカメラを表示したい場所に以下のように書きます。
<script language="javascript"> crocro.jscam.write(); </script>
また、キャプチャした画像をHTML5のCanvasに取得するので、「canvas」タグもid付きで書いておきます。
さらにここでは、コールバックで取得したデータを書き出す場所(resData)を「div」タグで用意しています。
<input type="button" onClick="captureImg()" value="キャプチャ"> <br> <canvas id="cnvsCap" width="320" height="240"></canvas> <div id="resData"></div>
次に、ヘッダー内に「jscam.js」を読み込むためのタグを書きます。
<script type="text/javascript" src="jscam.js"></script>
最後にカメラの初期化です。こちらは、ヘッダー内の「script」タグ内に書いてください。ここではjQueryを使用した例です。
ボタンをクリックすると、キャプチャが行われます。
また、以下のようなデータや処理を設定しています。詳しい使い方は、サンプルやリファレンスをご覧ください。
メソッド | 内容 |
---|---|
setFilter | FlashのWebカメラに処理させる内容。配列で指定。 |
setBackDataType | キャプチャ時にコールバックで取得するデータの種類。配列で指定。 |
setExtrFnc | キャプチャ時にコールバックでデータを受け取るためのfunctionオブジェクト。 |
var cap; $(document).ready(function() { // JSカメラ初期化 crocro.jscam.initSwfCam(); crocro.jscam.setFilter(["bin", "label", "hidePaint"]); cap = crocro.jscam.makeCaptureObject("cnvsCap"); // コールバックの設定 cap.setBackDataType(["pixelSwf", "labelData"]); cap.setExtrFnc(function(resObj){ // 各戻り値ごとの処理 var resArr = []; if ("labelData" in resObj) { var ld = resObj.labelData; resArr.push("labelData.length : " + ld.length); for (var i = 0; i < ld.length; i ++) { var s = ""; $.each(ld[i], function(k, v) {s += k + ":" + v + ", "}); resArr.push("labelData[" + i + "] : " + s); } } $("#resData").html(resArr.join("<br>")); }) }); // キャプチャ function captureImg() { cap.capture(); // キャプチャ }
完全なソースコードは、サンプル シンプルをご覧ください。
ファイル構成を変える
以下のようなファイル構成にしたいとします。
- target.html - (導入したいHTMLページ)
- js_lib/jscam.js
- js_lib/jscam.swf
この場合は、設定を以下のように変更します。
<script type="text/javascript" src="js_lib/jscam.js"></script>
<script language="javascript"> crocro.jscam.write({dir: "js_lib/"}); </script>