簡體   English   中英

如何使用C#創建for循環以將圖像加載到我的應用程序?

[英]How can I make a for loop to load images to my application using C#?

我有一個應用程序,我需要將一些圖像從我的文件夾加載到應用程序作為bmp位圖圖像,為此我使用以下代碼:

然后我需要迭代逐行拋出每個圖像並為每個圖像(list1,list2等)創建一個單獨的列表,其中只包含0和1(圖像只有黑色和白色)

我的問題是有限數量的圖像我可以復制相同的代碼(例如5個圖像)五次,但是對於大量的圖像(例如100個圖像)是不可能的,我只是想知道如何轉換這個代碼在尋找多個圖像(例如100)的for循環中,我得到不同的列表(list1,list2,list3等)作為輸出。

假設路徑中的所有文件都是Images,您可以執行以下操作:

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
}

並且一個接一個地加載(n)圖像並不是一個好主意,因為你只會看到最后一個。 所以你最好展示其中一個,例如:

pictureBox1.Image = Bitmap.FromFile(files[files.Count() - 1]) as Bitmap;

您需要一組Bitmap對象,然后只需遍歷目錄中的文件即可加載它們。 也許是這樣的:

var images = new List<Bitmap>();
foreach (var file in Directory.GetFiles(@"C:\myfolder\"))
    images.Add(Bitmap.FromFile(file) as Bitmap);

如果目錄包含您不希望作為位圖加載的其他文件,則可以選擇向Directory.GetFiles()添加過濾器和其他選項以縮小搜索范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM