1

検索にほぼ 1 日を費やしましたが、適切な解決策を見つけることができませんでした。Silverlight ベースの win 8.1 phone アプリ用の QR 読み取りモジュールを開発しています (win 8.1 phone native ではありません)。

私はzxing libを使用してQRモジュールを完成させています。オブジェクト WriteableBitmap のカメラ (MediaCapture) からの画像があり、api QRCodeReader.decode(BinaryBitmap bb) を使用したいところまで来ました。

ほとんどの記事で述べられているように RGBLuminanceSource を使用してみましたが、ネイティブ アプリで動作します (Silverlight ベースのアプリでは無効な System.Windows への参照が必要なためです。

WriteableBitmap を BinaryBitmap に変換する方法を教えてもらえますか?

4

1 に答える 1

0

PhotoCamera クラスを使用して、zxing を使用して pre window phone 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;
    }
}

それは次のように使用されます。

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);

_luminanceタイプはどこですかPhotoCameraLuminanceSource

于 2016-04-10T01:27:51.907 に答える