Bezdepbonusu7Программирование: статьи и ответы

Вопрос

ZXing QR-код в Silverlight Web

Автор вопроса: JazerixОтветов: 1

У меня возникли проблемы с использованием 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".

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

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

zxingwebcamsilverlight

Ответы

Ответ 1 · Michael

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы