如何使用C#创建for循环以将图像加载到我的应用程序?
我有一个应用程序,需要将文件夹中的一些图像作为bmp位图图像加载到该应用程序中,为此,我使用以下代码: 然后我需要逐行迭代抛出每个图像,并为每个图像(列表1、列表2等)创建一个单独的列表,其中只包含0和1(图像仅为黑白)如何使用C#创建for循环以将图像加载到我的应用程序?,c#,image,C#,Image,我有一个应用程序,需要将文件夹中的一些图像作为bmp位图图像加载到该应用程序中,为此,我使用以下代码: 然后我需要逐行迭代抛出每个图像,并为每个图像(列表1、列表2等)创建一个单独的列表,其中只包含0和1(图像仅为黑白) 我的问题是,对于有限数量的图像,我可以复制相同的代码(例如5个图像)五次,但是对于大量图像(例如100个图像)是不可能的,我只是想知道如何在一个for循环中转换此代码,以查找大量图像(例如100个),并得到不同的列表(列表1、列表2、列表3等)作为输出。假设路径中的所有文件都是
我的问题是,对于有限数量的图像,我可以复制相同的代码(例如5个图像)五次,但是对于大量图像(例如100个图像)是不可能的,我只是想知道如何在一个for循环中转换此代码,以查找大量图像(例如100个),并得到不同的列表(列表1、列表2、列表3等)作为输出。假设路径中的所有文件都是图像,则可以执行以下操作:
var images = new List<Bitmap>();
var files = Directory.GetFiles(path);
for (int i = 0; i < files.Count(); i++)
{
string nextimage = files[i];
Bitmap bmp1 = Bitmap.FromFile(nextimage) as Bitmap
images.Add(bmp1); //to keep images in RAM for later process
bmp1.Save(somePath + "\\bmp" + i.ToString()); // to save images on disc
}
假设路径中的所有文件都是图像,则可以执行以下操作:
var images = new List<Bitmap>();
var files = Directory.GetFiles(path);
for (int i = 0; i < files.Count(); i++)
{
string nextimage = files[i];
Bitmap bmp1 = Bitmap.FromFile(nextimage) as Bitmap
images.Add(bmp1); //to keep images in RAM for later process
bmp1.Save(somePath + "\\bmp" + i.ToString()); // to save images on disc
}
假设路径中的所有文件都是图像,则可以执行以下操作:
var images = new List<Bitmap>();
var files = Directory.GetFiles(path);
for (int i = 0; i < files.Count(); i++)
{
string nextimage = files[i];
Bitmap bmp1 = Bitmap.FromFile(nextimage) as Bitmap
images.Add(bmp1); //to keep images in RAM for later process
bmp1.Save(somePath + "\\bmp" + i.ToString()); // to save images on disc
}
假设路径中的所有文件都是图像,则可以执行以下操作:
var images = new List<Bitmap>();
var files = Directory.GetFiles(path);
for (int i = 0; i < files.Count(); i++)
{
string nextimage = files[i];
Bitmap bmp1 = Bitmap.FromFile(nextimage) as Bitmap
images.Add(bmp1); //to keep images in RAM for later process
bmp1.Save(somePath + "\\bmp" + i.ToString()); // to save images on disc
}
您需要一组
Bitmap
对象,然后只需遍历目录中的文件即可加载所有对象。也许是这样的:
var images = new List<Bitmap>();
foreach (var file in Directory.GetFiles(@"C:\myfolder\"))
images.Add(Bitmap.FromFile(file) as Bitmap);
var images=newlist();
foreach(目录.GetFiles(@“C:\myfolder\”)中的var文件)
添加(位图.FromFile(文件)作为位图);
如果目录中包含不希望作为位图加载的其他文件,您可以选择添加以缩小搜索范围。您需要一组
位图
对象,然后只需遍历目录中的文件即可全部加载。也许是这样的:
var images = new List<Bitmap>();
foreach (var file in Directory.GetFiles(@"C:\myfolder\"))
images.Add(Bitmap.FromFile(file) as Bitmap);
var images=newlist();
foreach(目录.GetFiles(@“C:\myfolder\”)中的var文件)
添加(位图.FromFile(文件)作为位图);
如果目录中包含不希望作为位图加载的其他文件,您可以选择添加以缩小搜索范围。您需要一组
位图
对象,然后只需遍历目录中的文件即可全部加载。也许是这样的:
var images = new List<Bitmap>();
foreach (var file in Directory.GetFiles(@"C:\myfolder\"))
images.Add(Bitmap.FromFile(file) as Bitmap);
var images=newlist();
foreach(目录.GetFiles(@“C:\myfolder\”)中的var文件)
添加(位图.FromFile(文件)作为位图);
如果目录中包含不希望作为位图加载的其他文件,您可以选择添加以缩小搜索范围。您需要一组
位图
对象,然后只需遍历目录中的文件即可全部加载。也许是这样的:
var images = new List<Bitmap>();
foreach (var file in Directory.GetFiles(@"C:\myfolder\"))
images.Add(Bitmap.FromFile(file) as Bitmap);
var images=newlist();
foreach(目录.GetFiles(@“C:\myfolder\”)中的var文件)
添加(位图.FromFile(文件)作为位图);
如果目录中包含不希望作为位图加载的其他文件,您可以选择添加以缩小搜索范围。是否尝试在100个图片框中同时显示所有100个图像(或有多少个图像)?是的。但最重要的是将它们导入应用程序以便处理它们。您是否试图在100个图片框中同时显示所有100个图像(或有多少个图像)?是的。但最重要的是将它们导入应用程序以便处理它们。您是否试图在100个图片框中同时显示所有100个图像(或有多少个图像)?是的。但最重要的是将它们导入应用程序以便处理它们。您是否试图在100个图片框中同时显示所有100个图像(或有多少个图像)?是的。但最重要的是将它们导入应用程序以进行处理。谢谢您的评论,但正如我在问题中提到的,我需要将图像加载为bmp1、bmp2等,并相应地显示在我的图片框中。@user3384676:然后您需要声明每个单独的变量,并一次加载一个。对于100幅图像,这将是大量重复的代码。在这种情况下,您的问题是什么?@user3384676:好吧,如果需要为导入的每个图像运行该代码,那么您应该将其包装在一个循环中,循环遍历图像集合。这将在循环中用类似于
images[i]
的内容替换bmp1
。谢谢您的评论,但正如我在问题中提到的,我需要将图像加载为bmp1、bmp2等,并相应地显示在我的图片框中。@user3384676:然后您需要声明每个单独的变量,并一次加载一个。对于100幅图像,这将是大量重复的代码。在这种情况下,您的问题是什么?@user3384676:好吧,如果需要为导入的每个图像运行该代码,那么您应该将其包装在一个循环中,循环遍历图像集合。这将在循环中用类似于images[i]
的内容替换bmp1
。谢谢您的评论,但正如我在问题中提到的,我需要将图像加载为bmp1、bmp2等,并相应地显示在我的图片框中。@user3384676:然后您需要声明每个单独的变量,并一次加载一个。对于100幅图像,这将是大量重复的代码。在这种情况下,您的问题是什么?@user3384676:好吧,如果需要为导入的每个图像运行该代码,那么您应该将其包装在一个循环中,循环遍历图像集合。这将在循环中用类似于images[i]
的内容替换bmp1
。谢谢您的评论,但正如我在问题中提到的,我需要将图像加载为bmp1、bmp2等,并相应地显示在我的图片框中。@user3384676:然后您需要声明每个单独的变量,并一次加载一个。对于100幅图像,这将是大量重复的代码。在这种情况下,您的问题是什么?@user3384676:好吧,如果需要为导入的每个图像运行该代码,那么您应该将其包装在一个循环中,循环遍历图像集合。这将用以下内容替换bmp1