There are so many possible answers. Nobody is going to waste their time making guesses. You need to explain why you think the image should be square - show some code, for example.Why the images are stretched?
Ahm... I don't quite understand what do you mean.If a post reaches the second page in the forum without a single reply it usually means that nobody can understand the question. In this case I think that the problem lies here ...
There are so many possible answers. Nobody is going to waste their time making guesses. You need to explain why you think the image should be square - show some code, for example.
show some code, for example.
'------------------------------------------- LETTORE BARCODE/QRCODE -----------------------------------
Private Sub CreateDetector (Codes As List)
Dim ctxt As JavaObject
ctxt.InitializeContext
Dim builder As JavaObject
builder.InitializeNewInstance("com/google/android/gms/vision/barcode/BarcodeDetector.Builder".Replace("/", "."), Array(ctxt))
Dim barcodeClass As String = "com/google/android/gms/vision/barcode/Barcode".Replace("/", ".")
Dim barcodeStatic As JavaObject
barcodeStatic.InitializeStatic(barcodeClass)
Dim format As Int
For Each formatName As String In Codes
format = Bit.Or(format, barcodeStatic.GetField(formatName))
Next
builder.RunMethod("setBarcodeFormats", Array(format))
detector = builder.RunMethod("build", Null)
Dim operational As Boolean = detector.RunMethod("isOperational", Null)
If operational = False Then
ToastMessageShow("Failed to create detector", True)
End If
End Sub
Private Sub StopCamera
Capturing = False
If camEx.IsInitialized Then
camEx.Release
End If
End Sub
Private Sub StartCamera
rp.CheckAndRequest(rp.PERMISSION_CAMERA)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result = False Then
ToastMessageShow("No permission!", False)
Return
End If
StartCameraShared
camEx.Initialize(qrcodeReader, False, Me, "Camera1")
Wait For Camera1_Ready (Success As Boolean)
If Success Then
camEx.SetContinuousAutoFocus
camEx.CommitParameters
camEx.StartPreview
'Log(camEx.GetSupportedFlashModes)
Sleep(200)
qrcodeReader.Visible = True
Else
ToastMessageShow("Error opening camera", False)
StopCamera
End If
End Sub
Private Sub StartCameraShared
qrcodeReader.Visible = True
Capturing = True
End Sub
Private Sub Camera1_Preview (data() As Byte)
If DateTime.Now > LastPreview + IntervalBetweenPreviewsMs Then
'Dim n As Long = DateTime.Now
Dim frameBuilder As JavaObject
Dim bb As JavaObject
bb = bb.InitializeStatic("java.nio.ByteBuffer").RunMethod("wrap", Array(data))
frameBuilder.InitializeNewInstance("com/google/android/gms/vision/Frame.Builder".Replace("/", "."), Null)
Dim cs As CameraSize = camEx.GetPreviewSize
frameBuilder.RunMethod("setImageData", Array(bb, cs.Width, cs.Height, 842094169))
Dim frame As JavaObject = frameBuilder.RunMethod("build", Null)
Dim SparseArray As JavaObject = detector.RunMethod("detect", Array(frame))
LastPreview = DateTime.Now
Dim Matches As Int = SparseArray.RunMethod("size", Null)
If Matches > 0 Then
StopCamera
Dim Barcode As JavaObject = SparseArray.RunMethod("valueAt", Array(0))
Dim raw As String = Barcode.GetField("rawValue")
QrCodeOK(raw)
End If
End If
End Sub
Private Sub StartCamera
rp.CheckAndRequest(rp.PERMISSION_CAMERA)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result = False Then
ToastMessageShow("No permission!", False)
Return
End If
StartCameraShared
camEx.Initialize(qrcodeReader, False, Me, "Camera1")
Wait For Camera1_Ready (Success As Boolean)
If Success Then
camEx.SetContinuousAutoFocus
camEx.CommitParameters
camEx.StartPreview
Dim cs As CameraSize = camEx.GetPreviewSize
Dim ratio As Float = cs.Width/cs.Height
qrcodeReader.Height = 100%y
qrcodeReader.Width = qrcodeReader.Height/ratio
'Log(camEx.GetSupportedFlashModes)
Sleep(200)
ComparsaLettoreQR
Else
ToastMessageShow("Error opening camera", False)
StopCamera
End If
End Sub
Sub ComparsaLettoreQR
btnNewOp.Enabled = False 'per evitare glitch grafico
Sleep(10)
pnlScanner.Top = 100%y
qrcodeReader.Top = 100%y
qrcodeReader.Left = 50%x-qrcodeReader.Width/2
pnlScanner.Visible = True
qrcodeReader.Visible = True
pnlScanner.SetLayoutAnimated(100, pnlScanner.Left, 0, pnlScanner.Width, pnlScanner.Height)
qrcodeReader.SetLayoutAnimated(100, qrcodeReader.Left, 0, qrcodeReader.Width, qrcodeReader.Height)
Sleep(110)
End Sub
I must say that I originally thought that you were worried that the imageview did not look square on your 'phone screen, not that the image inside it was not square.
It looks to me that the image in Erel's post is "stretched" because the phone (camera) is not perfectly parallel to the code sample. Is this a problem? It is not enough to stop a QR-code being interpreted by a reader.
Let's see if someone else can understand the problem better than I.