I'm trying to make an app that open the camera and shade all the screen except a rectangle
the user must place that rectangle on something then press take picture button
i want to crop the image only to the not grayed area
this is what i tried
how could i crop the token image so it marches the rectangle on all devices regardless of screen size or camera resolution of the device !?
btw the rectangle is an image view
ImageView1.Top = 0
ImageView1.Left = 0
ImageView1.Width = 100%x
ImageView1.Height = 80%y
here is the rectangle png
the user must place that rectangle on something then press take picture button
i want to crop the image only to the not grayed area
this is what i tried
B4X:
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("main")
Cam1.Initialize(pnlCamera, "Cam1")
End Sub
Sub Activity_Resume
Activity.AddMenuItem("flash","mnuFlashOn")
Activity.AddMenuItem("crop","crop")
End Sub
Sub Activity_Pause (UserClosed As Boolean)
Cam1.StopPreview
Cam1.Release
End Sub
Sub mnuFlashOn_Click
Cam1.FlashOn()
End Sub
Sub Cam1_Ready (Success As Boolean)
'camera is ready
If Success Then
Cam1.Oriportrait
Cam1.PictureSize(480,320)
Cam1.StartPreview
Else
ToastMessageShow("Cannot open camera.", True)
End If
End Sub
Sub Cam1_PictureTaken2 (Data() As Byte)
Dim dt As String
Try
File.MakeDir(File.DirRootExternal, "pics/")
Catch
End Try
DateTime.DateFormat = "yyyyMMddHHmmssSSS" ' See this page regarding uppercase letters.
dt = DateTime.Date(DateTime.Now)
Dim Out As OutputStream
Try
ToastMessageShow("Saving huge file now",True)
Activity.Invalidate
DoEvents()
Out = File.OpenOutput(File.DirRootExternal & "/pics/", "out.jpg", False)
Out.WriteBytes(Data, 0, Data.Length)
Out.Flush
Out.Close
Catch
Msgbox("Bombs out copying photo to DirRootExternal","Error")
End Try
Cam1.StartPreview
Button1.Visible = True
Button1.Invalidate
Activity.Invalidate
DoEvents()
End Sub
Sub mnuTakePicture_Click
button1_click
End Sub
Sub mnuFocusMode_Click
'Cam1.setFocusMode = "MACRO"
End Sub
Sub button1_click
Button1.Visible = False
Button1.Invalidate
Activity.Invalidate
DoEvents()
'Cam1.Quality = 50
'Cam1.Quality = 70
Cam1.FocusMode = "MACRO"
Cam1.Quality = 100
Cam1.TakePicture2(90)
End Sub
how could i crop the token image so it marches the rectangle on all devices regardless of screen size or camera resolution of the device !?
btw the rectangle is an image view
ImageView1.Top = 0
ImageView1.Left = 0
ImageView1.Width = 100%x
ImageView1.Height = 80%y
here is the rectangle png