您可以按照以下方式获取上传图像的位图:
System.Drawing.Bitmap bmpPostedImage = new System.Drawing.Bitmap(userFileUpload.PostedFile.InputStream);
然后您会得到存储的副本(希望它以字节数组的形式存储,并且您有一个ID来获取它),然后按照以下方式将其转换为位图
byte[] byteArrayStoredImage = ImageService.GetImageData(imageID);
MemoryStream imgStream = new MemoryStream(byteArrayStoredImage);
System.Drawing.Bitmap bmpStoredImage = new Bitmap(imgStream);
有了两个位图(bmpPostedImage和bmpStoredImage),您可以调用函数进行比较。首先,您可以尝试从
http://www.dreamincode.net/code/snippet2859.htm中使用此函数,并查看它的效果。可能有更有效的函数来进行比较,尝试使用Google搜索会是一个好主意。
编辑:
以下是从数据库检索图像的代码,假设我在下面的评论中提到:
public byte[] GetImageData(string imageID)
{
string connectionString = ConfigurationManager.ConnectionStrings["connectionstringname"];
SqlConnection connection = SqlConnection(connectionString);
connection.Open();
SqlCommand command1 = new SqlCommand("select imgfile from myimages where imgname=@imageId", connection);
SqlParameter myparam = command1.Parameters.Add("@imageId", SqlDbType.NVarChar, 30);
myparam.Value = imageID;
byte[] img = (byte[])command1.ExecuteScalar();
connection.Close();
return img;
}
然后将 ImageService.GetImageData(imageID) 改为 GetImageData(imageID);
同时需要注意的是,此处未涉及错误处理,因此您可能需要考虑在最终代码中加入相关处理。