public void OnPictureTaken(byte[] data) { Matrix m = new Matrix(); m.PostRotate(270); Bitmap scaledBitmap = Bitmap.CreateScaledBitmap((BitmapFactory.DecodeByteArray(data, 0, data.Length)), 640, 480, false); Bitmap rotatedBitmap = Bitmap.CreateBitmap(scaledBitmap, 0, 0, scaledBitmap.Width, scaledBitmap.Height, m, false); MemoryStream stream = new MemoryStream(); rotatedBitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, stream); byte[] newpicdata = stream.ToArray(); Task.Run(async() => { try { isProcessing = true; Console.WriteLine("face detected: "); await CruzeBioHelper.ProcessCameraCapture(newpicdata); } finally { isProcessing = false; } }); }
protected async override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); SetContentView(Resource.Layout.activity_main); Android.Support.V7.Widget.Toolbar toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar); SetSupportActionBar(toolbar); // Wire up the controls mPreview = FindViewById <CameraSourcePreview>(Resource.Id.preview); mGraphicOverlay = FindViewById <GraphicOverlay>(Resource.Id.faceOverlay); mStatusText = FindViewById <TextView>(Resource.Id.statusText); mAuthenticationStatusImageView = FindViewById <ImageView>(Resource.Id.authenticationStatusImageView); mAuthenticationStatusImageView.Visibility = ViewStates.Visible; StatusImage = mAuthenticationStatusImageView; StatusText = mStatusText; FloatingActionButton fab = FindViewById <FloatingActionButton>(Resource.Id.fab); fab.Click += FabOnClick; if (ActivityCompat.CheckSelfPermission(this, Manifest.Permission.Camera) == Permission.Granted) { CreateCameraSource(); CruzeBioHelper.Init(); CruzeBioHelper.AuthenticationStatusImageCallback = (resourceId) => { RunOnUiThread(() => MainActivity.StatusImage.SetImageResource(resourceId)); //mStatusText.Text = StatusText; }; await CruzeBioHelper.RegisterFaces(); } else { RequestCameraPermission(); } }