/// <summary> Event handler. Called by IdentificationVisuel for load events. </summary> /// <remarks> Thomas LAURE, 05/12/2017. </remarks> /// <param name="sender"> Source of the event. </param> /// <param name="e"> Event information. </param> private void IdentificationVisuel_Load(object sender, EventArgs e) { Load_identificationVisuel.Hide(); Txt_chargementMetro.Hide(); Lbl_infoutilisateur.Hide(); Img_previewUserReconnu.Hide(); Btn_continuerToMdp.Hide(); Btn_continuerToMdp.Enabled = false; //// Chemin vers le dossier temporaire de l'application. cheminVersDossierTemp = cheminRacine + "\\temp"; //// Liste les caméras. listCams = Cam_Visuel1.GetVideoCaptureDevices().ToList <WebCameraId>(); foreach (WebCameraId camera in listCams) { List_Camera.Items.Add(camera.Name); } List_Camera.SelectedIndex = 0; try { Cam_Visuel1.StartCapture(listCams[0]); } catch (Exception ex) { MessageBox.Show(ex.Message, "ATTENTION !", MessageBoxButtons.OK, MessageBoxIcon.Information); } //// Crée le dossier temporaire s'il n'existe pas. if (!System.IO.Directory.Exists(cheminVersDossierTemp)) { Directory.CreateDirectory(cheminVersDossierTemp); } //// Supprime le cache. RemoveCache(); }
/// <summary> Tests image. </summary> /// <remarks> Thomas LAURE, 05/12/2017. </remarks> /// <param name="cheminVersImageTemp"> The chemin vers image temporary. </param> private async void TestImage(string cheminVersImageTemp) { TraitementBdd.EventInfo(1337, "Un utilisateur est en train de s'identifier visuellement"); Load_identificationVisuel.Show(); Txt_chargementMetro.Show(); Btn_RetourVisuel.Enabled = false; Btn_VérifierVisuel.Enabled = false; //Cam_Visuel1.StopCapture(); //// Affichage sur le coté gauche de l'image de l'utilisateur. string imgPrev = System.IO.Path.Combine(Application.StartupPath, cheminVersImageTemp); Bitmap bmp = new Bitmap(imgPrev); Img_identificationVisuelPreview.Image = bmp; Img_previewUserReconnu.Image = bmp; try { JObject resultatPhotoTemporaire = await ReconnaissanceFaciale.FaceRecCreateFaceIdTempAsync(cheminVersImageTemp); string faceId = Convert.ToString(resultatPhotoTemporaire.GetValue("faceId")); JObject compareFace = await ReconnaissanceFaciale.FaceRecCompareFaceAsync(faceId); //// Comparaison du retour. //// Si le visage a été reconnu. if (compareFace != null && Convert.ToInt32(compareFace.GetValue("confidence")) >= 0.6) { Cam_Visuel1.Hide(); Img_previewUserReconnu.Show(); Img_identificationVisuelPreview.Hide(); faceIdReconnu = Convert.ToString(compareFace.GetValue("persistedFaceId")); if (TraitementBdd.RecupStatus(faceIdReconnu) == 0) { MetroFramework.MetroMessageBox.Show(this, "Utilisateur révoqué !", "REVOQUE", MessageBoxButtons.OK, MessageBoxIcon.Exclamation & MessageBoxIcon.Warning); TraitementBdd.EventErreur(TraitementBdd.RecupIdUtilisateur(faceIdReconnu), "L'utilisateur révoqué a essayé de s'identifier."); Form identificationVisuel = new Identification1(); identificationVisuel.Location = this.Location; identificationVisuel.StartPosition = FormStartPosition.Manual; identificationVisuel.Show(); this.Close(); } else if (compareFace != null && Convert.ToInt32(compareFace.GetValue("confidence")) == 42) { MetroFramework.MetroMessageBox.Show(this, "Votre profil a été supprimé !", "SUPPRIME", MessageBoxButtons.OK, MessageBoxIcon.Exclamation & MessageBoxIcon.Error); TraitementBdd.EventErreur(TraitementBdd.RecupIdUtilisateur(faceIdReconnu), "Le profil de l'utilisateur qui a essayé de se connecter a été supprimé."); Form identificationVisuel = new Identification1(); identificationVisuel.Location = this.Location; identificationVisuel.StartPosition = FormStartPosition.Manual; identificationVisuel.Show(); this.Close(); } else { MetroFramework.MetroMessageBox.Show(this, "Vous avez bien été reconnu !", "RECONNU", MessageBoxButtons.OK, MessageBoxIcon.Question); AffichageInfoVisage(resultatPhotoTemporaire); TraitementBdd.EventSucces(TraitementBdd.RecupIdUtilisateur(faceIdReconnu), "L'utilisateur a été reconnu visuellement."); Load_identificationVisuel.Hide(); Txt_chargementMetro.Hide(); Btn_continuerToMdp.Show(); Btn_continuerToMdp.Enabled = true; } } else { //// Si le visage n'a pas été reconnu. MetroFramework.MetroMessageBox.Show(this, "Aucun utilisateur reconnu !", "NON RECONNU", MessageBoxButtons.OK, MessageBoxIcon.Exclamation & MessageBoxIcon.Warning); ReconnaissanceFaciale.MailErreur(imgPrev); ReloadPage(); } } catch (Exception ex) { MetroFramework.MetroMessageBox.Show(this, "ERREUR : " + ex.Message, "ERREUR", MessageBoxButtons.OK, MessageBoxIcon.Error & MessageBoxIcon.Stop); ReloadPage(); } return; }