2011-05-09 44 views
1

我正在創建圖像比較(圖像存在於目錄中)基於Web的應用程序。它將特定目錄中的圖像與提供的圖像進行比較。它會將每個圖像與匹配的百分比進行比較,但不會顯示來自相關目錄的圖像,即使我已將圖像網址也提供給該圖像。當我寫入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); 

       } 

      } 
     } 

回答

0

ASP.NET頁面遵循基於控制發展 - 所以一般,你不會直接寫入到一個迴應,而更新的控制,如標籤或文字文本。

就圖像而言,要使圖像在瀏覽中可見,您需要設置可從瀏覽器訪問的網址。在上面的代碼中,您正在設置物理文件路徑,哪些不能作爲來自相同/不同機器的URL訪問。您需要將虛擬目錄映射到映像存儲位置,然後爲此生成一個url(通過附加虛擬目錄路徑&文件名)或編寫文件服務處理程序(ashx),該文件服務處理程序將採用映像部分路徑並提供服務圖像(即將其數據發送到瀏覽器)。