Here is my solution to the questions asked here:
https://www.b4x.com/android/forum/t...-based-on-google-play-services-vision.118983/
https://www.b4x.com/android/forum/threads/crop-cameraex-preview.114596/
And question #5 here https://www.b4x.com/android/forum/t...on-google-play-services-vision.89705/#content
I too, needed to limit the focus since our shop paper contains many barcodes close together. This modification of Erel's barcode solution does as he suggested and creates a bitmap from the camera data and crops it. It also draws a box on the screen to show the user where to place the barcode.
Note, my original thought was place another window on the screen with the cropped area in it but I found it lagged too much. The code for that is still there but commented out. Edit: While driving today I realized my thought here lagged because I put it inside the sampling timer - duh. move it B4 the timer and it should work.
The relevant code is in Camera1_Preview.
As an aside, one of the things I did to help avoid reading the wrong code is wait until the same code is read twice before finalizing (that code is not apart of this example so here is what I did
Also want to mention that with tablets - in this case a Lenovo 8 inch I have had a very hard time getting clean reads on 2d barcodes. That is why we added 3d codes to out Traveler's. I have found it reads MUCH better when the reading area is limited as I have done here.
Since all of this took me some time to figure out I thought sharing this might save someone some time.
Note: I have only done the Android version.
https://www.b4x.com/android/forum/t...-based-on-google-play-services-vision.118983/
https://www.b4x.com/android/forum/threads/crop-cameraex-preview.114596/
And question #5 here https://www.b4x.com/android/forum/t...on-google-play-services-vision.89705/#content
I too, needed to limit the focus since our shop paper contains many barcodes close together. This modification of Erel's barcode solution does as he suggested and creates a bitmap from the camera data and crops it. It also draws a box on the screen to show the user where to place the barcode.
Note, my original thought was place another window on the screen with the cropped area in it but I found it lagged too much. The code for that is still there but commented out. Edit: While driving today I realized my thought here lagged because I put it inside the sampling timer - duh. move it B4 the timer and it should work.
The relevant code is in Camera1_Preview.
As an aside, one of the things I did to help avoid reading the wrong code is wait until the same code is read twice before finalizing (that code is not apart of this example so here is what I did
B4X:
Private Sub FoundBarcode (msg As String)
#IF DEBUG
Toast.Show($"Found [Color=Blue][b][plain]${msg}[/plain][/b][/Color]"$, Null)
#End If
Log(msg)
If ReadTxt = "" Then
ReadTxt = msg
Return
Else If ReadTxt2 = "" Then
ReadTxt2 = msg
If ReadTxt = ReadTxt2 Then 'we are done reading
StopCamera
Toast.Show(ReadTxt2, Null)
Else 'try again
ReadTxt = ""
ReadTxt2 = ""
Return
End If
End If
.
.
.
Also want to mention that with tablets - in this case a Lenovo 8 inch I have had a very hard time getting clean reads on 2d barcodes. That is why we added 3d codes to out Traveler's. I have found it reads MUCH better when the reading area is limited as I have done here.
Since all of this took me some time to figure out I thought sharing this might save someone some time.
Note: I have only done the Android version.
Attachments
Last edited: