如何解决将上传的文件转换为asp.net中的位图图像
| 我有一个FileUpload
盒子和button
。在我的情况下,将要上传的文件是图像文件。我想将这些图像文件转换为位图,并将它们临时存储在缓冲区中。
我有一个函数,需要两个位图输入,并告诉我们两个文件是否匹配。
其中一个文件来自ButtonClick
事件上的FileUpload
控件,另一个位图将从数据库中读取。
谁能告诉我如何将这些文件转换为位图并将这两个位图对象都传递给函数。
解决方法
您可以按以下方式获取上载图像的位图:
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);
另请注意,此处未解决错误处理,因此可能必须将其纳入最终代码中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。