2012-02-10 2 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 생성자에 파일 이름을 전달하고 있지만 실제로

1

_fi[i].FullName 했나 사용하여 파일의 전체 경로를 통과해야 당신은 .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(); 
관련 문제