指纹图像转换为字节c#
本文关键字:字节 转换 指纹图 图像 指纹 | 更新日期: 2023-09-27 18:11:54
我一直在做一个指纹项目。下面的代码可以将指纹图像转换为字节数组,但是如果您取三个人的指纹,那么将提交的值是相同的,它不是唯一的。它应该是每个人唯一的,因为我们需要用它来验证每个人。如有任何帮助,将不胜感激。
public void btnSave_Click(object sender, EventArgs e)
{
@fname = txtfname.Text;
@lname = txtlname.Text;
byte[] @img1 = Encoding.UTF8.GetBytes(Convert.ToString(pictureBox1.Image));
con = new SqlConnection(@"Data Source=DESKTOP-400N4CL;Initial Catalog=test;Integrated Security=True");
con.Open();
cmd = new SqlCommand("INSERT INTO dbo.fingerp " + " (fname,lname,finprint) " + " VALUES(@fname,@lname,@img1)", con);
cmd.Parameters.AddWithValue("@fname", txtfname.Text);
cmd.Parameters.AddWithValue("@lname", txtlname.Text);
cmd.Parameters.AddWithValue("@img1", @img1);
cmd.ExecuteNonQuery();
MessageBox.Show("Your details is captured successfully");
////txtfname.Text = "";
txtlname.Text = "";
pictureBox1.Image = null;
}
Convert.ToString()
不会获得图像的字节数组,而是类型(System.Drawing.Bitmap)。尝试以下方法将图像转换为字节数组:
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
using (var ms = new MemoryStream())
{
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
}
无论如何,如果您要将存储的图像与新图像进行比较以进行识别,恐怕这不会起作用,因为同一指纹的2个扫描图像不会共享相同的字节。
编辑
在你的评论中,你说你有另一个问题:当你将字节数组添加到参数时,行没有被保存。你不能用AddWithValue
,你需要这样的参数:
cmd.Parameters.Add(new SqlParameter("@img1", SqlDbType.VarBinary,0, ParameterDirection.Input, false, 0, 0, "img1", DataRowVersion.Current, DBNull.Value));