【问题标题】:want to save finger print image in database and also want to retrieve the same image想将指纹图像保存在数据库中,也想检索相同的图像
【发布时间】:2019-08-21 06:26:59
【问题描述】:

这是我的代码,我将指纹图像从图片框保存到文件夹,然后想以二进制格式保存。之后,当用户从生物识别扫描仪输入指纹时,验证选项将检查指纹图像和保存的图像数据库。但我不明白如何保存我的图像以及如何检索? 如果有任何错误,请帮助我。

         string fname = ID.Text + ".jpg";

     string folder="C:/Users/SATYASHANTI/Desktop/ARMSPROJECT/rupak/personal"; 
       string pathstring = System.IO.Path.Combine(folder, fname);
       Image a = picFinger.Image;
       a.Save(pathstring);


        string imglog = "";
        byte[] img = null;
        FileStream fs = new FileStream(imglog, FileMode.Open, FileAccess.Read);
        BinaryReader br = new BinaryReader(fs);
        img= br.ReadBytes((int)fs.Length);
        cmd.CommandText = "insert into finger_check(emp_uniqueID,leftThum) values('"+ ID_combobox.Text+"',@leftThum)";
        cmd.Parameters.Add(new SqlParameter("@leftThum",img));
        cmd.Connection = con;

        con.Open();
        cmd.ExecuteNonQuery();

        ID_combobox.Text = string.Empty;
        picFinger.Image = null;

【问题讨论】:

    标签: c# sql asp.net sql-server


    【解决方案1】:

    要从数据库中检索图像,您可以进行选择查询以从数据库中获取图像数据。 .net 中 sql 图像类型的类型是 Byte[]。您可以参考 MS 文档 (SQL Server Data Type Mappings)。下面是示例代码:

    USER_INPUT:来自扫描仪的指纹图像数据

    IS_FINGERPRINT_MATCH:一个函数返回布尔值,检查 2 个图像是否相同指纹。您应该参考您使用的扫描仪文档,看看是否提供了这样的功能。如果没有,你必须找到相关的算法或API来完成你的任务。

    cmd.CommandText = "select emp_uniqueID  ,leftThum from finger_check";
    cmd.Connection = con;
    
    con.Open();
    using (SqlDataReader reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            var tempEmpId= reader["emp_uniqueID"];
            var storedFingerPrintBinary = (byte[])reader["leftThum"];
    
            if(IS_FINGERPRINT_MATCH(storedFingerPrintBinary, USER_INPUT))
            {
               //do something
               break;
            }
        }
    }
    

    【讨论】:

    • 谢谢,但我只想检索图像数据而不是路径,因为我使用生物识别扫描仪扫描指纹,所以如果我检索路径,它将无法验证任何手指。
    • 您可以使用文件目录路径在C#中检索图像二进制数据,然后用于验证。
    • 但是我如何保存我的图像二进制数据路径?
    • 这取决于您的设置。如果您想这样做,托管数据库的计算机应该能够连接到站点的主机(例如,在同一网络中)。首先将图像保存到数据库的目录,然后将路径作为字符串保存到数据库表中。需要图片时,从db表中查询路径,获取该路径下的图片数据。保存文件的方法你可以参考这样的问题:stackoverflow.com/questions/33842761/…
    • 感谢您的 commt,看到我正在创建验证指纹的 Windows 应用程序,所以我需要将我的手指图像存储在数据库中。我已经将它以二进制格式保存在数据库中以供数学计算。现在我需要仅如何从表中检索二进制数据并使用给定图像进行验证。
    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多