2013-04-26 6 views
6

を増補しました。私はアイコンと写真を画面に置き、電話で撮影した写真を操作することができます。しかし、私がする必要があるのは、スナップが撮られる前にカメラの画面をリアルタイムで読むことができることです。のWindows Phone 8枚のレンズは私がレンズやカメラ機能、約果たしていると、これはすべてが順調と良いですのWindows Phone 8用のARレンズを作成で探しています現実

例:Face Lensは、生きているカメラ画面上で、誰かの鼻/目/などがどこに鼻や眼鏡などを置くべきかを計算するために、私が想定しているピクセルをチェックしてライブスクリーンをスキャンする必要があります。

私は絵でこれを行うことができますが、写真を取ることなく、カメラに現在のフレームにアクセスする方法を見つけるように見えることはできません。基本的には、カメラアプリに表示されている各フレームごとに各ピクセルをスキャンしたいと考えています。私はそれが可能であることを知っている、他のレンズはこれを行うが、これにアクセスする正しい方法を見つけるためにどこを見なければならないか。

答えて

5

これは確かに可能です。これを行うための鍵は、PhotoCamera.GetPreviewBufferArgb32()機能を使用することです。

基本的な考え方は、フォトカメラオブジェクトからプレビューバッファを取得することです。これは次のようになります。

int[] pixelData = new int[(int)(camera.PreviewResolution.Width * camera.PreviewResolution.Height)]; 
camera.GetPreviewBufferArgb32(pixelData); 
return pixelData; 

これは、圧縮されていない.bmpのような画像を取得します。そのデータにアクセスして、フィーチャーを識別したり、フィーチャーをペイントすることができます。

データを変更した後、それはこのようにそれを表示するためのWriteableBitmap()にプッシュ:

int[] previewBuffer = GetPreviewBuffer(); 
pixelData.CopyTo(previewWriteableBitmap.Pixels, 0); 
previewWriteableBitmap.Invalidate(); 

免責事項:これのほとんどは、MicrosoftのオーバーLive Camera exampleから取られました。 Greyscale Camera exampleを見てください。特に、写真を撮るときにイベントを処理する場合には注意が必要です。

+1

この回答のサンプルはどこでも検索しましたが、何も出ませんでした。とても有難い。 – anothershrubery

+0

ありがとうございました! – likeitlikeit

関連する問題