我一直在开发一个小应用程序,用于在扫描 3 次后获取指纹。我使用了 ZKFingerSDK,当尝试获取注册指纹时,它会将图像恢复为黑色。我使用的是ZK9500设备if (RegisterCount >= REGISTER_FINGER_COUNT && !bIdentify){ RegisterCount = 0; ret = GenerateRegisteredFingerPrint(); // <--- GENERATE FINGERPRINT TEMPLATE if (zkfp.ZKFP_ERR_OK == ret) { ret = AddTemplateToMemory(); // <--- LOAD TEMPLATE TO MEMORY if (zkfp.ZKFP_ERR_OK == ret) // <--- ENROLL SUCCESSFULL { string fingerPrintTemplate = string.Empty; zkfp.Blob2Base64String(newRegTmp, cbCapTmp, ref fingerPrintTemplate); newRegTmp = zkfp.Base64String2Blob(fingerPrintTemplate); Bitmap bmp2; MemoryStream ms2 = new MemoryStream(); BitmapFormat.GetBitmap(newRegTmp, mfpWidth, mfpHeight, ref ms2); bmp2 = new Bitmap(ms2); this.pictureBox1.Image = bmp2; Console.WriteLine("finger print" + fingerPrintTemplate); textRes.AppendText("merged " + fingerPrintTemplate + "\n"); } }}
1 回答
森林海
TA贡献2011条经验 获得超2个赞
我假设ret = AddTemplateToMemory();
将模板加载到 newRegTmp 中。
zkfp.Blob2Base64String(newRegTmp, cbCapTmp, ref fingerPrintTemplate);
从这一行我了解到您在 newRegTmp 处拥有指纹的原始数据,并且您正在将 cbCapTmp 的大小提取到 FingerPrintTemplate 中。
在这种情况下,您不应在下一行中使用 newRegTmp newRegTmp =zkfp.Base64String2Blob(fingerPrintTemplate);
,这会用 Base64 字符串覆盖实际数据。您可以使用 Base64 字符串在带有 img 标签的网页上显示图像。但要将原始数据转换为图像,您需要将实际数据传递给 GetBitMap。
如果上述建议不起作用,请分享AddTemplateToMemory的实现。
- 1 回答
- 0 关注
- 183 浏览
添加回答
举报
0/150
提交
取消