为了账号安全,请及时绑定邮箱和手机立即绑定

中控智慧将3个指纹C#与ZKFingerSDK合并

中控智慧将3个指纹C#与ZKFingerSDK合并

C#
慕村225694 2023-08-13 16:02:10
我一直在开发一个小应用程序,用于在扫描 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的实现。


查看完整回答
反对 回复 2023-08-13
  • 1 回答
  • 0 关注
  • 183 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信