ZXing QR-код в Silverlight Web

У меня возникли проблемы с использованием ZXing в Silverlight.

Я использую этот порт ZXing: http://zxingnet.codeplex.com/

Мой проект может получать видеопоток с веб-камеры, но я застрял на этой линии.

Вот как я получаю ленту:

CaptureSource _capture = new CaptureSource();
        _capture.VideoCaptureDevice = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
        videoBrush = new VideoBrush();
        videoBrush.Stretch = Stretch.Uniform;
        videoBrush.SetSource(_capture);
        webcam.Fill = videoBrush;
        if (CaptureDeviceConfiguration.AllowedDeviceAccess||CaptureDeviceConfiguration.RequestDeviceAccess())
        {
            try
            {
                _capture.Start();
            }
            catch (Exception E)
            {
                MessageBox.Show(E.Message);
            }
        }


LuminanceSource source = new RGBLuminanceSource(,webcam.Width, webcam.Height);

В нем говорится, что ему нужен массив байтов, «rbgRawBytes».

Я получил видеокисть, которая содержит поток веб-камеры, я думаю :), и я получил прямоугольник веб-камеры, который отображает вывод.


person Jazerix    schedule 15.08.2013    source источник
comment
Какой порт Silverlight для zxing вы используете? Пожалуйста, опубликуйте более полный фрагмент кода, который показывает ваш источник изображения (видеокисть) и конкретные типы.   -  person Michael    schedule 15.08.2013
comment
извините за это, я только что обновил его :)   -  person Jazerix    schedule 15.08.2013
comment
Есть ли причина, по которой вы используете RGBLuminanceSource вместо Bitmap LS? Вы можете легко извлечь растровое изображение из CaptureSource/VideoBrush, а затем передать его конструктору BitmapLuminanceSource.   -  person Kasper Holdum    schedule 15.08.2013


Ответы (1)


Вы должны использовать метод CaptureImageAsync и событие CaptureImageCompleted. В обработчике события вы получаете WriteableBitmap в аргументах события. WriteableBitmap — это захваченное изображение с веб-камеры. Используйте экземпляр WriteableBitmap напрямую с методом Decode класса BarcodeReader. Не делайте этого вручную с помощью RGBLuminanceSource.

Вот хороший пример использования CaptureImageAsync и CaptureImageCompleted: http://channel9.msdn.com/coding4fun/articles/FaceLight--Silverlight-4-Real-Time-Face-Detection

person Michael    schedule 15.08.2013