ウェブカメラと画像を含む単純なアクション スクリプト ファイルがあります。私がやろうとしているのは、ボタンがクリックされたときに、その瞬間のウェブカメラと画像をキャプチャして、ブラウザの DIV にレンダリングしたいということです。どうすればそれをキャプチャできますか? bitmapdata を使用する必要があると推測しています。コードでこれを行いたい
質問する
4414 次
1 に答える
6
これが私がこの質問に答えるために書いたものです。Chrome、FF、IE9 でテスト済み。
Base64 エンコーダー (1 つはこちら) と png/jpg エンコーダー (たとえば、Flex ライブラリから) が必要です。
AS コード:
package
{
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.external.ExternalInterface;
import flash.media.Camera;
import flash.media.Video;
[SWF(width="640", height="480", backgroundColor="#000000")]
public class CameraToJS extends Sprite
{
private var camera:Camera;
private var video:Video;
public function CameraToJS()
{
addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
stage.addEventListener(MouseEvent.CLICK, saveSnapshot);
}
protected function addedToStageHandler(event:Event):void
{
camera = Camera.getCamera();
video = new Video();
video.attachCamera(camera);
addChild(video);
}
protected function saveSnapshot(event:MouseEvent):void
{
var bmData:BitmapData = new BitmapData(video.width, video.height);
bmData.draw(video);
var encoder:PNGEncoder = new PNGEncoder();
ExternalInterface.call("image", Base64.encodeByteArray(encoder.encode(bmData)));
}
}
}
Javascript コード:
function image(data)
{
document.getElementById("img").src = "data:image/png;base64,"+ data;
}
于 2012-05-17T11:49:52.017 に答える