Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. override fun onOpened(camera: CameraDevice) {
  2. val barcodeDetector = BarcodeDetector.Builder(context!!)
  3. .setBarcodeFormats(Barcode.QR_CODE or Barcode.DATA_MATRIX)
  4. .build()
  5.  
  6. if (!barcodeDetector.isOperational) {
  7. // TODO
  8. }
  9.  
  10. val imgReader = ImageReader.newInstance(desiredWidth, desiredHeight, ImageFormat.JPEG, 1)
  11. imgReader.setOnImageAvailableListener({ reader ->
  12. val cameraImage = reader.acquireNextImage()
  13.  
  14. val buffer = cameraImage.planes.first().buffer
  15. val bytes = ByteArray(buffer.capacity())
  16. buffer.get(bytes)
  17.  
  18. val bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.count(), null)
  19. val frameToProcess = Frame.Builder().setBitmap(bitmap).build()
  20. val barcodeResults = barcodeDetector.detect(frameToProcess)
  21.  
  22. if (barcodeResults.size() > 0) {
  23. Log.d(TAG, "Barcode detected!")
  24. Toast.makeText(context!!, "Barcode detected!", Toast.LENGTH_SHORT).show()
  25. } else {
  26. Log.d(TAG, "No barcode found")
  27. }
  28.  
  29. cameraImage.close()
  30. }, cameraBkgHandler)
  31.  
  32.  
  33. val captureStateCallback = object : CameraCaptureSession.StateCallback() {
  34. override fun onConfigured(session: CameraCaptureSession) {
  35. val builder = camera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW)
  36.  
  37. builder.addTarget(binding.cameraPreview.holder.surface)
  38. builder.addTarget(imgReader.surface)
  39. session.setRepeatingRequest(builder.build(), null, null)
  40. }
  41.  
  42. override fun onConfigureFailed(session: CameraCaptureSession) {
  43. // TODO
  44. Log.d(TAG, "onConfigureFailed")
  45. }
  46. }
  47.  
  48. camera.createCaptureSession(
  49. listOf(binding.cameraPreview.holder.surface, imgReader.surface),
  50. captureStateCallback,
  51. cameraBkgHandler
  52. )
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement