簡體   English   中英

如何在數據庫android中存儲指紋數據

[英]how to store fingerprint data in database android

我正在使用咒語指紋掃描儀獲取指紋數據,我想將指紋數據存儲在mysql中。稍后我想與其他人進行比較。 我在將數據存儲在 mysql 中遇到問題。

這是掃描儀提供指紋數據后的代碼。

私人無效StartSyncCapture(){

    runOnUiThread(new Thread(new Runnable() {

        @Override
        public void run() {
            try {
                FingerData fingerData = new FingerData();
                int ret = mfs100.AutoCapture(fingerData, timeout, false,
                        true);
                if (ret != 0) {
                    Toast.makeText(getApplicationContext(), "StartSyncCapture " + mfs100.GetErrorMsg(ret), Toast.LENGTH_SHORT).show();
                } else {

                    if (fingerData.Quality() >= minQuality) {

                        final Bitmap bitmap = BitmapFactory.decodeByteArray(
                                fingerData.FingerImage(), 0,
                                fingerData.FingerImage().length);
                        imgFinger.post(new Runnable() {
                            @Override
                            public void run() {
                                imgFinger.setImageBitmap(bitmap);
                                imgFinger.refreshDrawableState();
                            }
                        });

                        Toast.makeText(getApplicationContext(), "Capture Success", Toast.LENGTH_SHORT).show();
                        String log = "\nQuality: " + fingerData.Quality()
                                + "\nNFIQ: " + fingerData.Nfiq()
                                + "\nWSQ Compress Ratio: "
                                + fingerData.WSQCompressRatio()
                                + "\nImage Dimensions (inch): "
                                + fingerData.InWidth() + "\" X "
                                + fingerData.InHeight() + "\""
                                + "\nImage Area (inch): " + fingerData.InArea()
                                + "\"" + "\nResolution (dpi/ppi): "
                                + fingerData.Resolution() + "\nGray Scale: "
                                + fingerData.GrayScale() + "\nBits Per Pixal: "
                                + fingerData.Bpp() + "\nWSQ Info: "
                                + fingerData.WSQInfo();

                        Toast.makeText(getApplicationContext(), "fingerData.Quality()" + fingerData.Quality() + "StartSyncCapture is " + fingerData.ISOTemplate().length, Toast.LENGTH_SHORT).show();
                        mFingerData = fingerData;

                        //////////////////// Extract ISO Image
                        int dataLen = 0;
                        byte[] tempData = new byte[(mfs100.GetDeviceInfo().Width() * mfs100.GetDeviceInfo().Height()) + 1078];
                        byte[] isoImage = null;
                        dataLen = mfs100.ExtractISOImage(fingerData.RawData(), tempData);
                        if (dataLen <= 0) {
                            if (dataLen == 0) {
                                Toast.makeText(getApplicationContext(), "Failed to extract ISO Image", Toast.LENGTH_SHORT).show();
                            } else {
                                Toast.makeText(getApplicationContext(), mfs100.GetErrorMsg(dataLen), Toast.LENGTH_SHORT).show();
                            }
                            return;
                        } else {
                            isoImage = new byte[dataLen];
                            System.arraycopy(tempData, 0, isoImage, 0, dataLen);

                            mISOImage = new byte[dataLen];
                            System.arraycopy(tempData, 0, mISOImage, 0, dataLen);


                        }

                    } else {
                        Toast.makeText(getApplicationContext(), "Please try again", Toast.LENGTH_SHORT).show();
                    }

                }

            } catch (Exception ex) {
                Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
            }
        }
    }));
}

指紋掃描儀只返回圖像,您可以將位圖存儲到數據庫中,也可以將圖像保存到本地存儲並將圖像路徑保存到數據庫中。

您可以使用外部庫將圖像轉換為細節並注冊和驗證為:

http://www.nist.gov/itl/iad/ig/nbis.cfm

http://www.neurotechnology.com/verifinger.html

具有不同類型的圖像,例如位圖、iso、wsq 等。通常,從照片查看器只能預覽位圖圖像。 但是如果你想預覽iso圖像(19794-4),那么你需要iso查看器,如果你想預覽wsq圖像那么你需要使用wsq查看器。

關於將圖像存儲到數據庫中,您需要使用 blob 數據類型,您需要將位圖圖像轉換為字節數組,然后您必須存儲到數據庫中。

但請記住,如果您想使用存儲的圖像進行驗證,那么您需要將 ISO 模板 (19794-2) 存儲到您的數據庫中。

要獲取 ISO 模板 (19794-2),您必須使用 SDK 的 mfs100.ExtractISOTemplate 函數。

也是在 Mantra 設備中存儲和重用指紋數據的最佳解決方案,因此將您的 ISO 寺廟保存為 base64 字符串並將base64字符串存儲在數據庫中並從數據庫中獲取指紋數據,因此創建從 base64 到 ISO 寺廟的文件

檢查這個 url Base 64 編碼和解碼示例代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM