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