想将指纹图像保存在数据库中,也想检索相同的图像

Posted

技术标签:

【中文标题】想将指纹图像保存在数据库中,也想检索相同的图像【英文标题】: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;

【问题讨论】:

【参考方案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表中查询路径,获取该路径下的图片数据。保存文件的方法你可以参考这样的问题:***.com/questions/33842761/… 感谢您的 commt,看到我正在创建验证指纹的 Windows 应用程序,所以我需要将我的手指图像存储在数据库中。我已经将它以二进制格式保存在数据库中以供数学计算。现在我需要仅如何从表中检索二进制数据并使用给定图像进行验证。

以上是关于想将指纹图像保存在数据库中,也想检索相同的图像的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Alamofire 将用户配置文件图像保存到 MYSQL 数据库,然后在以下屏幕上检索

如何使用“imageWithData”保存和检索UIImages保持正确的图像格式?

Django 将图像路径保存到数据库

将二进制指纹数据保存在数据库表中

网站如何通过指纹登录?

如何从图库中选择图像并保存到 xamarin 中的 sql 数据库