2012-02-10 11 views
4
private void button8_Click(object sender, EventArgs e) 
{ 
    List<long> averages; 
    long res = 0; 
    _fi = new DirectoryInfo(subDirectoryName).GetFiles("*.bmp"); 
    averages = new List<long>(_fi.Length); 
    for (int i = 0; i < _fi.Length; i++) 
    { 
     Bitmap myBitmaps = new Bitmap(_fi[i].Name); 
     //long[] tt = list_of_histograms[i]; 
     long[] HistogramValues = GetHistogram(myBitmaps); 
     res = GetTopLumAmount(HistogramValues,1000); 
     averages.Add(res); 
    } 
} 

例外がライン上にある:このコードで「パラメータが無効です」という例外が表示されるのはなぜですか?

Bitmap myBitmaps = new Bitmap(_fi[i].Name); 
+5

フルを含めてください例外メッセージ。 – jrummell

答えて

11

あなただけBitmapコンストラクタにファイル名を渡しているが、あなたが実際に_fi[i].FullName

1

たのを使用してファイルへのフルパスを渡す必要がありますお試しください.FullName?ディレクトリ全体を含める必要があります。

3

@Lesterは、正しい答え(1)ですが、私はあなたがあなたの実装を短くして、いくつかの機能プログラミングコンストラクトを使用して、それが少し読みやすく可能性が言いたいんでした:

var averages = new DirectoryInfo(subDirectoryName) 
    .GetFiles("*.bmp") 
    .Select(t => new Bitmap(t.FullName)) 
    .Select(GetHistogram) 
    .Select(v => GetTopLumAmount(v, 1000)) 
    .ToList(); 
関連する問題