我想显示给定目录中的所有图像。为此,我已经给出了图像控件来显示图像,但我想根据该目录中的图像自动显示带有该URL的图像控件。假设在我的目录中存在5个图像,那么应该在我的按钮点击事件中显示5个图像控件。 我在button_click事件中编写了代码,只显示给定目录中的两个图像,如下所示:
protected void btncompare_Click(object sender, EventArgs e)
{
Bitmap searchImage;
searchImage = new Bitmap(@"D:\kc\ImageCompare\Images\img579.jpg");
string dir = "D:\\kc\\ImageCompare\\Images";
DirectoryInfo dir1 = new DirectoryInfo(dir);
FileInfo[] files = null;
files = dir1.GetFiles("*.jpg");
double sim;
foreach (FileInfo f in files)
{
sim = Math.Round(GetDifferentPercentageSneller(searchImage, new Bitmap(f.FullName)), 3);
if (sim >= 0.95)
{
string imgPath = "Images/" + files[0];
string imgPath1 = "Images/" + files[1];
Image1.ImageUrl = "~/" + imgPath;
Image2.ImageUrl = "~/" + imgPath1;
Response.Write("Perfect match with Percentage" + " " + sim + " " + f);
Response.Write("</br>");
}
else
{
Response.Write("Not matched" + sim);
Response.Write("</br>");
}
}
}
答案 0 :(得分:0)
好像你正试图在这里把一个方形钉子装进一个圆孔里。 Image控件旨在显示单个图像。
如果要显示多个图像,请使用多个图像控件。我怀疑你不这样做的原因是因为你不知道你需要显示多少张图片。
如果我遇到同样的问题,我会将图像目录的内容转换为可以绑定到Repeater的内容。每个ItemTemplate都包含自己的Image控件,允许您根据需要显示任意数量的图像,而无需使用hackery。