在按钮单击事件中使用图像控件显示图像

时间:2011-05-09 06:22:31

标签: asp.net

我正在创建基于Web的应用程序的图像比较(图像存在于目录中)。它将特定目录中存在的图像与提供的图像进行比较它将每个图像与匹配的百分比进行比较,但不显示来自相关目录的图像,即使我已经将图像URL给予该图像。当我写response.write然后它显示与匹配的图像匹配的百分比,但不显示图像。 我已经为此编写了如下代码:

     protected void btnnew_Click(object sender, EventArgs e)
       {

           Bitmap searchImage;
           try
           {
//Image for comparing other images that are exists in directory             
searchImage = new Bitmap(@"D:\kc\ImageCompare\Images\img579.jpg");
           }
           catch (ArgumentException)
           {
               return;
           }

           string dir = "D:\\kc\\ImageCompare\\Images";

         DirectoryInfo dir1 = new DirectoryInfo(dir);
           FileInfo[] files = null;
           try
           {
               files = dir1.GetFiles("*.jpg");
           }
           catch (DirectoryNotFoundException)
           {
               Console.WriteLine("Bad directory specified");
               return;
           }

           double sim;
           foreach (FileInfo f in files)
           {
               sim = Math.Round(GetDifferentPercentageSneller(searchImage, new Bitmap(f.FullName)), 3);
               if (sim >= 0.95)
               {
                   Image1.ImageUrl = dir + files[0];
                   Image2.ImageUrl = dir + files[1];

                   Response.Write("Perfect match with Percentage" + " " + sim + " " + f);
                   Response.Write("</br>");

               }
               else
               {
                   Response.Write("Not matched" + sim);

               }

           }
       }

1 个答案:

答案 0 :(得分:0)

ASP.NET页面遵循基于控件的开发 - 通常,您不直接写入响应,而是更新控件的文本,例如label或literal。

就图像而言,要使图像在浏览中可见,您需要设置可从浏览器访问的URL。在上面的代码中,您将设置物理文件路径,并且不能作为来自相同/不同计算机的URL访问。您需要将虚拟目录映射到图像存储位置,然后生成相同的URL(通过附加虚拟目录路径和文件名)或编写文件服务处理程序(ashx),这将获取图像部分路径和提供图像(即将其数据发送到浏览器)。