public int prSaveMRZImage() { try { if (_doc.IsValid()) { /* Saving the MRZ image */ gxImage img = _doc.FieldImage((int)(PR_DOCFIELD.PR_DF_MRZ1 & PR_DOCFIELD.PR_DF_MRZ2)); if (img.IsValid()) { img.Save("mrz.jpg", (int)GX_IMGFILEFORMATS.GX_JPEG); } //_doc.Free(); //_doc = null; //_pr.ResetDocument(); } } catch (Exception e) { _errorMessage = e.Message + " --- prSaveMRZImage()"; return(1305); } return(0); }
private void scan_verso() { //PassportReader pr = new PassportReader(); try { //pr.UseDevice(0, (int)PR_USAGEMODE.PR_UMODE_FULL_CONTROL); pr.Capture(); if (File.Exists(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "verso.jpeg")) { File.Delete(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "verso.jpeg"); } pr.SaveImage(0, (int)PR_LIGHT.PR_LIGHT_WHITE, (int)PR_IMAGE_TYPE.PR_IT_DOCUMENT, Environment.ExpandEnvironmentVariables("%TEMP%/") + "verso.jpeg", (int)GX_IMGFILEFORMATS.GX_JPEG); prDoc doc = pr.Recognize(0); gxImage img = doc.FieldImage((int)PR_DOCFIELD.PR_DF_VIZ_FACE); if (img != null) { if (File.Exists(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "PhotoIdentite.jpeg")) { File.Delete(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "PhotoIdentite.jpeg"); } img.Save(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "PhotoIdentite.jpeg", (int)GX_IMGFILEFORMATS.GX_JPEG); } string temp; temp = doc.Field((int)PR_DOCFIELD.PR_DF_MRZ1) + doc.Field((int)PR_DOCFIELD.PR_DF_MRZ2) + doc.Field((int)PR_DOCFIELD.PR_DF_MRZ3); if (!temp.Equals("")) { MRZ = temp; } else { Program.LogFich.Info("[ScannerPiece] pas de piste MRZ sur le verso"); } } catch (Exception ex) { Program.LogFich.Error("[ScannerPiece] n'a pas pu lire le verso du document : " + ex.ToString()); } finally { //pr.CloseDevice(); //pr.Close(); //pr.Dispose(); //pr = null; } }
/// <summary> /// Chup hinh nhan dang /// </summary> /// <param name="pTransactionID"></param> /// <param name="pLaneID"></param> public int CaptureImage(string pTransactionID, string pLaneID) { int retValue = 0; try { // Unlock all locked frames if there is any //mFxCamera.UnlockFrames((ushort)FXCAM_UNLOCK_FLAGS.FXCAM_UNLOCK_RELEASE_ALL, 0, 0); // Start capture mFxCamera.StartCapture(); //Waiting for the end of the camera initialization Thread.Sleep(DELAY_DURATION); // Wait for valid frame //mFxCamera.GetCaptureInfo(); int cap_frameix = mFxCamera.GetPropertyInt("captureinfo/newestframeix"); gxImage image = new gxImage(); for (int i = 1; i <= NumPictures; i++) { // Save image at local folder mFxCamera.GetFrame((int)FXCAM_GETFRAME_FLAGS.FXCAM_GETFRAME_NEWEST, 0, image); if (image.GetPixelFormat() != (int)GX_PIXELFORMATS.GX_GRAY) { image.Convert((int)GX_PIXELFORMATS.GX_RGB); // color image } image.Save(DefaultFileName, (int)GX_IMGFILEFORMATS.GX_JPEG); ///TEST LOG //WriteLogFile(this.GetType() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Start save image at server"); // Save image at server string pFileName = pTransactionID + "_" + pLaneID + "_" + i.ToString(); string subfolder = string.Empty; string[] temp = pFileName.Split('_'); string path = string.Empty; if (System.IO.Directory.Exists(RootFolder)) { path = RootFolder; path += @"\" + pFileName.Substring(0, 10); path += @"\" + temp[1];//004 if (!System.IO.Directory.Exists(path)) { //Neu thu muc chua ton tai->tao thu muc do' Directory.CreateDirectory(path); } ///TEST LOG //WriteLogFile(this.GetType() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Check exists recog folder"); if (System.IO.Directory.Exists(path)) { using (Image tempPic = Image.FromFile(DefaultFileName)) //chỗ này nếu ko chụp dc hình thì phải tạo 1 ảnh tạm { string pFullPath = path + @"\" + pFileName + ".jpg"; tempPic.Save(pFullPath); } } else { WriteLogFile(this.GetType() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Cannot create folder: " + path); return(-1); //Khong copy hinh len server duoc } } else { WriteLogFile(this.GetType() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Folder " + RootFolder + " doesn't exist"); } } // Stop capture mFxCamera.StopCapture(); ///TEST LOG //WriteLogFile(this.GetType() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Stop Capture"); retValue = 1; } catch (Exception ex) { WriteLogFile(this.GetType() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, ex.Message); } return(retValue); }
public string scanner_piece() { prDoc doc; try { //if (!pr.IsCalibrated((int)PR_WINDOW_ID.PR_OW_DEFAULT)) // pr.Calibrate((int)PR_WINDOW_ID.PR_OW_DEFAULT); pr.Capture(); /*if (pr.TestDocument((int)PR_WINDOW_ID.PR_OW_DEFAULT) == (int)PR_TESTDOC.PR_TD_IN) * { * MessageBox.Show("OK"); * pr.Capture(); * } * else * { * MessageBox.Show("PAS OK"); * pr.CloseDevice(); * pr.Close(); * return ""; * }*/ } catch (Exception ex) { MessageBox.Show("Impossible de se connecter au scanner de pièces d'identité"); Program.LogFich.Error("[ScannerPiece] Impossible de se connecter au scanner de pièces d'identité"); Program.LogFich.Error(ex.ToString()); //pr.CloseDevice(); //pr.Close(); return(""); } try { if (File.Exists(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "recto.jpeg")) { File.Delete(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "recto.jpeg"); } doc = pr.Recognize(0); pr.SaveImage(0, (int)PR_LIGHT.PR_LIGHT_WHITE, (int)PR_IMAGE_TYPE.PR_IT_DOCUMENT, Environment.ExpandEnvironmentVariables("%TEMP%\\") + "recto.jpeg", (int)GX_IMGFILEFORMATS.GX_JPEG); } catch (Exception ex) { MessageBox.Show("Erreur : " + ex.ToString()); Program.LogFich.Error("[ScannerPiece] Erreur : " + ex.ToString()); //pr.CloseDevice(); //pr.Close(); return(""); } try { //pr.SelfTest((int)PR_SELFTEST_ELEMENTS.PRV_ST_LIGHT_SWITCH); gxImage img = doc.FieldImage((int)PR_DOCFIELD.PR_DF_VIZ_FACE); if (img != null) { if (File.Exists(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "PhotoIdentite.jpeg")) { File.Delete(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "PhotoIdentite.jpeg"); } img.Save(Environment.ExpandEnvironmentVariables("%TEMP%\\") + "PhotoIdentite.jpeg", (int)GX_IMGFILEFORMATS.GX_JPEG); img.Dispose(); } MRZ = doc.Field((int)PR_DOCFIELD.PR_DF_MRZ1) + doc.Field((int)PR_DOCFIELD.PR_DF_MRZ2) + doc.Field((int)PR_DOCFIELD.PR_DF_MRZ3); if (MRZ.Equals("")) { Program.LogFich.Info("[ScannerPiece] pas de piste MRZ sur le recto"); } /*if (MessageBox.Show("Pour Scanner le verso, tournez la pièce et cliquer sur Oui.", "Scan Verso", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) * { * pr.CloseDevice(); * //pr.Close(); * scan_verso(); * }*/ if (this.MRZ.Equals("") && visiteurID.Equals("")) { MessageBox.Show("Le Document n'a pas de piste MRZ"); Program.LogFich.Info("[ScannerPiece] Le Document n'a pas de piste MRZ"); } return(MRZ); } catch (Exception ex) { Program.LogFich.Error("[ScannerPiece] n'a pas pu lire le recto du document : " + ex.ToString()); return(""); } finally { if (pr != null) { pr.ResetDocument(); //pr.CloseDevice(); //pr.Close(); //pr.Dispose(); } } }