public override IScanResult Decode(CVPixelBuffer pixelBuffer)
        {
            var decoder = PerformanceCounter.Start();

            unsafe
            {
                var rawData         = (byte *)pixelBuffer.BaseAddress.ToPointer();
                int rawDatalen      = (int)(pixelBuffer.Height * pixelBuffer.Width * 4);
                int width           = (int)pixelBuffer.Width;
                int height          = (int)pixelBuffer.Height;
                var luminanceSource = new CVPixelBufferBGRA32LuminanceSource(rawData, rawDatalen, width, height);
                var res             = _reader.Decode(luminanceSource);
                var result          = new ZXingResult();
                if (res == null)
                {
                    result.Success   = false;
                    result.Timestamp = DateTime.Now.Ticks;
                }
                else
                {
                    result.Success   = true;
                    result.Timestamp = res.Timestamp;
                    result.Text      = res.Text;
                }
                PerformanceCounter.Stop(decoder, "ZXing Decoder take {0} ms.");
                return(result);
            }
        }
Example #2
0
        public override IScanResult Decode(Bitmap image)
        {
            var decoder = PerformanceCounter.Start();
            var res     = _reader.Decode(image);
            var result  = new ZXingResult();

            if (res == null)
            {
                result.Success   = false;
                result.Timestamp = DateTime.Now.Ticks;
            }
            else
            {
                result.Success   = true;
                result.Timestamp = res.Timestamp;
                result.Text      = res.Text;
            }
            PerformanceCounter.Stop(decoder, "ZXing Decoder take {0} ms.");
            return(result);
        }