Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C#中的字节数组中获取数字角色fmd或fid?_C# - Fatal编程技术网

如何从C#中的字节数组中获取数字角色fmd或fid?

如何从C#中的字节数组中获取数字角色fmd或fid?,c#,C#,我有一个Xamarin表单中的应用程序,它使用数字角色,我成功地从Android Java的代码中改编了它 问题是这个应用程序只返回指纹的byte[]数组,所以我使用了一个接受byte数组的web服务,但我无法成功地将byte[]转换为fmd或fid来比较指纹 我正在尝试使用方法FeatureExtraction.CreateFmdFromRaw,但没有成功 public ActionResult validateLogin(ImageSend fimage,DataTable figerUse

我有一个Xamarin表单中的应用程序,它使用数字角色,我成功地从Android Java的代码中改编了它

问题是这个应用程序只返回指纹的byte[]数组,所以我使用了一个接受byte数组的web服务,但我无法成功地将byte[]转换为fmd或fid来比较指纹

我正在尝试使用方法
FeatureExtraction.CreateFmdFromRaw
,但没有成功

public ActionResult validateLogin(ImageSend fimage,DataTable figerUsers) {
ActionResult r = new ActionResult() { 
  Success = false, ResultCode = ResultCode.GeneralError 
  };

        try
        {

           // RawImage x = new RawImage(fimage.IMAGE_WIDTH, fimage.IMAGE_HEIGHT,75,10,fimage.data);
            byte[] x = Convert.FromBase64String(fimage.data);
           // Fmd fmd = new Fmd(x, 1, "1.0"); 
            // byte[] x = fimage.data;
            //duda cantidad de dpi
            //Fid.Fiv fiv = new Fid.Fiv(x);
           // DPCtlUruNet.IdentificationControl.FinishIdentification
            DataResult<Fmd> resultConversion = FeatureExtraction.CreateFmdFromRaw(x, 1,0,fimage.IMAGE_WIDTH,fimage.IMAGE_HEIGHT, 75, Constants.Formats.Fmd.ANSI); ;

            if (resultConversion.ResultCode == Constants.ResultCode.DP_SUCCESS)
            {
                Fmd fmd1 = resultConversion.Data;
                //Fmd fmd1 = fmd;
                Fmd fmd2 = null;
                CompareResult compareResult;

                foreach (DataRow row in figerUsers.Rows)
                {
                    fmd2 = Fmd.DeserializeXml(row["FINGER"].ToString());
                    compareResult = Comparison.Compare(fmd1, 0, fmd2, 0);
                    if (compareResult.Score < (PROBABILITY_ONE / (double)100000))
                    {
                        r.Success = true;
                        r.Message = "Login Correcto";
                        r.ResultCode = ResultCode.Success;
                        return r;
                    }
                }
            }
            else {
                r.Success = false;
                r.ResultCode = ResultCode.GeneralError;
                 r.Message = $"Error generando objeto de comparacion de huellas\n{x.Length} result: {resultConversion.ResultCode.ToString()}";
                //r.Message = $"Error generando objeto de comparacion de huellas\n{x.Length} result: {fmd.ToString()}";
            }


        }
        catch (Exception ex) {
            r.Success = false;
            r.ResultCode = ResultCode.GeneralError;
            r.Message = ex.Message+ex.StackTrace;
        }
        return r;
    }

public class ImageSend
{
    public string name;
    public string data;
    public int IMAGE_HEIGHT = 290;
    public int IMAGE_WIDTH;
}
公共操作结果验证登录(ImageSend fimage,DataTable figerUsers){
ActionResult r=新的ActionResult(){
Success=false,ResultCode=ResultCode.GeneralError
};
尝试
{
//RawImage x=新的RawImage(fimage.IMAGE\u宽度,fimage.IMAGE\u高度,75,10,fimage.data);
字节[]x=Convert.FromBase64String(fimage.data);
//Fmd Fmd=新Fmd(x,1,“1.0”);
//字节[]x=fimage.data;
//杜达康蒂达德新闻部
//Fid.Fiv Fiv=新Fid.Fiv(x);
//DPCTLURNET.IdentificationControl.FinishIdentification
DataResult resultConversion=FeatureExtraction.CreateFmdFromRaw(x,1,0,fimage.IMAGE_宽度,fimage.IMAGE_高度,75,Constants.Formats.Fmd.ANSI);
if(resultConversion.ResultCode==Constants.ResultCode.DP_成功)
{
Fmd fmd1=结果转换.Data;
//Fmd fmd1=Fmd;
Fmd fmd2=空;
比较结果比较结果;
foreach(figerUsers.Rows中的DataRow行)
{
fmd2=Fmd.DeserializeXml(第[“FINGER”].ToString()行);
比较结果=比较。比较(fmd1,0,fmd2,0);
如果(比较结果分数<(概率1/(双)100000))
{
r、 成功=真实;
r、 Message=“Login Correcto”;
r、 ResultCode=ResultCode.Success;
返回r;
}
}
}
否则{
r、 成功=错误;
r、 ResultCode=ResultCode.GeneralError;
r、 Message=$“Error generando objeto de comparicion de huellas\n{x.Length}结果:{resultConversion.ResultCode.ToString()}”;
//r、 Message=$“Error generando objeto de comparicion de huellas\n{x.Length}结果:{fmd.ToString()}”;
}
}
捕获(例外情况除外){
r、 成功=错误;
r、 ResultCode=ResultCode.GeneralError;
r、 Message=ex.Message+ex.StackTrace;
}
返回r;
}
公共类ImageSend
{
公共字符串名称;
公共字符串数据;
公共int图像_高度=290;
公共int图像宽度;
}
它返回DP_INVALID_FID