我使用JavaScript SDK使用URU 4500设备和3.2 Digital Persona SDK获取指纹。图片是.png,我将它发送到base64中的服务器。
在服务器上,图像被转换为字节,并将其提供给FeatureExtraction.CreateFmdFromRaw()
以进一步生成FMD,我正在使用Compare()
方法比较2个FMD。
获取图像的Javascript代码:
localStorage.setItem("imageSrc", "");
var samples = JSON.parse(s.samples);
document.getElementById("fingerCounts").innerHTML = "Finger Counts = " +
enrollmentCount;
if (identify) {
$.ajax({
type: "POST",
url: '/Biometric/Compare',
data: { fingerData:Fingerprint.b64UrlTo64(samples[0]), studentId: 1 },
dataType: "json",
success: function (data) {
if (data === true)
alert('You are matched.');
else {
alert('You are not matched');
}
},
error: function () {
alert('Error');
}
});
}
这是C#代码,我在其中比较两个手指,一个来自DB,另一个来自请求:
public JsonResult Compare(string fingerData, int studentId)
{
byte[] bytes = Convert.FromBase64String(fingerData);
var storeData = _context.StudentBiometricData.SingleOrDefault(x=>x.StudentId == studentId);
DataResult<Fmd> currentFinger = FeatureExtraction.CreateFmdFromRaw(bytes, 1,
3407615, 500, 550, 700, Constants.Formats.Fmd.ANSI);
Fmd recorderFmd = Fmd.DeserializeXml(storeData.FingerFMD);
CompareResult compareResult = Comparison.Compare(currentFinger.Data, 0,
recorderFmd, 1);
return Json(false);
}
当我使用CreateFmdFromRaw
从原始图像创建FMD时,它主要给出DP_Faluir
。Compare()
方法返回INVAID_PARAMETER。我哪里做错了什么?所提供的示例WPF应用程序运行良好,没有出现任何错误,运行良好。我想这是因为我使用的是图像而不是FID?
嘿,任何人都能做到这一点"获取.png指纹图像并使用.NET添加和验证获取的指纹";在DigitalPersona中。