// Function to convert ZfmStatus to human readable string. private string ZfmStatusToString(Zfm20Fingerprint.ZfmStatus inStatus) { switch (inStatus) { case Zfm20Fingerprint.ZfmStatus.ZsUnknownError: return(@"Unknown error has occurred."); case Zfm20Fingerprint.ZfmStatus.ZsTimeout: return(@"Communication timeout with sensor."); case Zfm20Fingerprint.ZfmStatus.ZsNoFinger: return(@"Finger is not available."); case Zfm20Fingerprint.ZfmStatus.ZsFingerCollectError: return(@"Finger collection error."); case Zfm20Fingerprint.ZfmStatus.ZsBadResponse: return(@"Communication failure with sensor."); case Zfm20Fingerprint.ZfmStatus.ZsDataError: return(@"Data format error."); case Zfm20Fingerprint.ZfmStatus.ZsIoError: return(@"Data I/O error occurred."); case Zfm20Fingerprint.ZfmStatus.ZsMemoryError: return(@"Memory error has been occurred."); default: return(string.Empty); } }
private void btnSave_Click(object sender, EventArgs e) { try { dlgSave.FileName = string.Empty; if (dlgSave.ShowDialog() == System.Windows.Forms.DialogResult.OK) { // Check fingerprint image is already available in the UI. if ((imgPreview.Image != null) && (imgPreview.Image.Width == ImageWidth) && (imgPreview.Image.Height == ImageHeight)) { imgPreview.Image.Save(dlgSave.FileName); } else { // Get fingerprint image from sensor ImageBuffer and save it to specified file. Zfm20Fingerprint.ZfmStatus saveStatus = _zfmSensor.SaveFingerprintToFile(dlgSave.FileName); if (saveStatus != Zfm20Fingerprint.ZfmStatus.ZsSuccessful) { MessageBox.Show(ZfmStatusToString(saveStatus), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } catch (Exception ex) { MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnDownload_Click(object sender, EventArgs e) { try { if (UpdateSensorSettings()) { IntPtr dataBuffer; uint dataBufferSize; Zfm20Fingerprint.ZfmStatus downloadStatus = _zfmSensor.GetFingerprintBuffer(out dataBuffer, out dataBufferSize); if (downloadStatus == Zfm20Fingerprint.ZfmStatus.ZsSuccessful) { if (dataBufferSize > 0) { // Create output bitmap buffer object. Bitmap outputImage = new Bitmap(ImageWidth, ImageHeight); byte[] colorBuffer = new byte[dataBufferSize]; int bufferPos = 0; Marshal.Copy(dataBuffer, colorBuffer, 0, (int)(dataBufferSize - 1)); // Paint bitmap buffer with received data buffer content. for (int yPos = 0; yPos < ImageHeight; yPos++) { for (int xPos = 0; xPos < ImageWidth; xPos++) { outputImage.SetPixel(xPos, yPos, Color.FromArgb(colorBuffer[bufferPos], colorBuffer[bufferPos], colorBuffer[bufferPos])); bufferPos++; } } // Flush data buffer and show bitmap on UI. _zfmSensor.FreeFingerprintBuffer(ref dataBuffer); imgPreview.Image = outputImage; } else { MessageBox.Show(@"Fingerprint image data is not available from the sensor library.", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show(ZfmStatusToString(downloadStatus), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } catch (Exception ex) { MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnCapture_Click(object sender, EventArgs e) { try { if (UpdateSensorSettings()) { Zfm20Fingerprint.ZfmStatus captureStatus = _zfmSensor.Capture(); if (captureStatus != Zfm20Fingerprint.ZfmStatus.ZsSuccessful) { MessageBox.Show(ZfmStatusToString(captureStatus), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } catch (Exception ex) { MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btScan_Click(object sender, EventArgs e) { try { if (radioRight.Checked || radioLeft.Checked) { if (_zfmSensor == null) { MessageBox.Show("กรุณาเลือกพอร์ตก่อนทำการสแกน", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string msgText = _zfmSensor.IsAvailable() ? @"Fingerprint sensor is available." : "Fingerprint sensor is not available.\nCheck sensor configuration options."; if (msgText != null) { //MessageBox.Show(msgText, Text, MessageBoxButtons.OK, MessageBoxIcon.Information); if (_zfmSensor.IsAvailable() != true) { MessageBox.Show("พอร์ตไม่ถูกต้อง", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { Zfm20Fingerprint.ZfmStatus captureStatus = _zfmSensor.Capture(); if (captureStatus != Zfm20Fingerprint.ZfmStatus.ZsSuccessful) { //MessageBox.Show(ZfmStatusToString(captureStatus), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { IntPtr dataBuffer; uint dataBufferSize; Zfm20Fingerprint.ZfmStatus downloadStatus = _zfmSensor.GetFingerprintBuffer(out dataBuffer, out dataBufferSize); if (downloadStatus == Zfm20Fingerprint.ZfmStatus.ZsSuccessful) { if (dataBufferSize > 0) { // Create output bitmap buffer object. Bitmap outputImage = new Bitmap(ImageWidth, ImageHeight); byte[] colorBuffer = new byte[dataBufferSize]; int bufferPos = 0; Marshal.Copy(dataBuffer, colorBuffer, 0, (int)(dataBufferSize - 1)); // Paint bitmap buffer with received data buffer content. for (int yPos = 0; yPos < ImageHeight; yPos++) { for (int xPos = 0; xPos < ImageWidth; xPos++) { outputImage.SetPixel(xPos, yPos, Color.FromArgb(colorBuffer[bufferPos], colorBuffer[bufferPos], colorBuffer[bufferPos])); bufferPos++; } } // Flush data buffer and show bitmap on UI. _zfmSensor.FreeFingerprintBuffer(ref dataBuffer); Bitmap bmp = new Bitmap(outputImage); bmp.RotateFlip(RotateFlipType.Rotate180FlipNone); pictureBox_Finger.Image = bmp; byte[] gg = Relm.Converters.Converter.ToByteArray(pictureBox_Finger.Image); base64String = Convert.ToBase64String(gg); Console.WriteLine(base64String); } } } } } else { MessageBox.Show("กรุณาเลือกหมายเลขพอร์ต"); } } else { MessageBox.Show("กรุณาเลือกลักษณะลายนิ้วมือ", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } catch (Exception ex) { MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }