2016-04-08 8 views
1

検索はほぼ完了しましたが、適切な解決策が見つかりませんでした。私はSilverlightベースの私の勝利8.1の電話アプリケーションのためのQR読み込みモジュールを開発しています(8.1の電話ネイティブに勝たないでください)。勝利電話8.1(silverlight)のWriteableBitmapをcom.google.zxingのBinaryBitmapに変換します

私はQRモジュールを追加するためにzxing libを使用しています。私は、オブジェクトWriteableBitmapのカメラ(MediaCapture)からのイメージがあり、api QRCodeReader.decode(BinaryBitmap bb)を使用したいという要点に達しました。

それはシルバーベースのアプリケーションには有効ではありませんどのSystem.Windowsへの参照を必要として(ほとんどの記事で述べたように、私はRGBLuminanceSourceを使用して試してみましたが、それは、ネイティブアプリで動作します。

を誰かがしWriteableBitmapを変換する上で私を導くことができる

BinaryBitmap?

答えて

0

私はフォトカメラクラスを使用してzxingと前のウィンドウフォン8.1に次のコードを使用しました。今、私は、これはまだあなたの目的のために有効であるかどうかわからないんだけど、ここでLuminanceSource派生クラスである。

internal class PhotoCameraLuminanceSource : LuminanceSource 
{ 
    public byte[] PreviewBufferY { get; private set; } 

    public PhotoCameraLuminanceSource(int width, int height) 
     : base(width, height) 
    { 
     PreviewBufferY = new byte[width * height]; 
    } 

    public override byte[] Matrix 
    { 
     get { return (byte[])(Array)PreviewBufferY; } 
    } 

    public override byte[] getRow(int y, byte[] row) 
    { 
     if (row == null || row.Length < Width) 
     { 
      row = new byte[Width]; 
     } 

     for (int i = 0; i < Height; i++) 
      row[i] = (byte)PreviewBufferY[i * Width + y]; 

     return row; 
    } 
} 

これはこのように使用されます。 _luminanceタイプのPhotoCameraLuminanceSource

ある

PhotoCamera.GetPreviewBufferY(_luminance.PreviewBufferY); 

var binarizer = new HybridBinarizer(_luminance); 

var binBitmap = new BinaryBitmap(binarizer); 

//Use readers to decode possible barcodes. 
var result = _QRCodeReader.decode(binBitmap); 

関連する問題