2

PNG画像(580画像)だけでいっぱいのディレクトリを取得しました。この機能で画像をメモリにロードします

private List<Bitmap> images = new List<Bitmap>();

foreach (String s in Directory.GetFiles(@"frames\", "*.png"))
     {
        images.Add(new Bitmap(s));
     }

しかし、ロードした後、これですべての画像をhddに保存しようとすると:

System.IO.Directory.CreateDirectory("result");
for (int i = 0; i < images.Count; i++)
   {
      images[i].Save(Application.StartupPath + "\\result\\img" + i + ".png", ImageFormat.Png);
   }

一部の画像は、メモリにロードする前とは間違った順序で保存されます。

何が問題なのでしょう?

4

2 に答える 2

2

ファイル名を並べ替える必要がある場合は、GetFilesがファイル名を返す順序が保証されていないため、手動で行う必要があります。

つまり、名前で並べ替えるだけです。

foreach (String s in Directory.GetFiles(@"frames\", "*.png").OrderBy(t=>t))
{
 ...
}
于 2012-03-14T20:56:50.017 に答える
0

これをご覧ください

http://www.codeproject.com/Articles/33310/C-Save-and-Load-Image-from-Database

于 2012-03-14T21:03:13.673 に答える