我開發了一個使用Java的Web應用程序,並在BackEnd中播放框架,在FrontEnd中使用AngularJS。集成指紋U.are.U SDK與Java Web應用程序的錯誤
我與U.are.U SDK進行了指紋掃描集成,但是在嘗試比較兩個相同的指紋時出現錯誤。
這是我在角部位代碼:
if(currentFormat == Fingerprint.SampleFormat.PngImage){
localStorage.setItem("imageSrc", "");
var samples = JSON.parse(s.samples); //parse json
var finger = Fingerprint.b64UrlTo64(samples[0]); // convertion to Base64
localStorage.setItem("imageSrc", "data:image/png;base64," + finger);
var vDiv = document.getElementById('imagediv');
vDiv.innerHTML = "";
var image = document.createElement("img");
image.id = "image";
image.src = localStorage.getItem("imageSrc");
vDiv.appendChild(image);
AuthService.fingerValidation(finger, vm.username, function(response){
showMessage("Login biométrico", response);
});
}
我在哪裏拍攝的這個SDK的JavaScript API的指紋。
然後,他發出了Base64編碼字符串到Web服務,並按照以下步驟進行:
UserFingerPrint print = fingerprintService.getFinderByUser(data.getUsername()); //Db data
if (print != null) {
String equals = "";
//'finger' is the base64 String from JavaScript
//Convert finger to byte[]
byte[] bytesImage = fingerprintService.getFMD(Base64.decodeBase64(finger), "first");
//Convert byte[] to FMD format from SDK with parameters of image example
Fmd fmd = UareUGlobal.GetEngine().CreateFmd(bytesImage, 320, 350, 500, 1, 3407615, Fmd.Format.ANSI_378_2004);
//Image from DB
byte[] imageDB = fingerprintService.resizeImage(print.getImage());
Fmd fmd2 = UareUGlobal.GetEngine().CreateFmd(imageDB, 320, 350, 500, 1, 3407615, Fmd.Format.ANSI_378_2004);
//The error is when comparing with the following method.
//The fingerprint is always different, even if it is the same image.
int falsematch_rate = UareUGlobal.GetEngine().Compare(fmd, 0, fmd2, 0);
int target_falsematch_rate = Engine.PROBABILITY_ONE/100000;
if (falsematch_rate < target_falsematch_rate) {
equals = "match success";
} else {
equals = "No match"
}
}
有沒有人轉換的圖像口蹄疫,可以幫助我嗎? 謝謝!
你的輸入圖像是PNG格式嗎?你如何獲得這張圖片?這張圖片是從哪裏來的? – LaurentY
是的,它是一個PNG圖像,這是通過javascript和相同的Digital Persona API獲得的前端。這個圖像是在Base64中生成的,我隨後建立了一個圖像以顯示在html –