2016-06-21 3 views
0

주어진 디렉토리의 모든 png 이미지를 avi 파일로 변환하려고하는데 메모리가 부족합니다. 현재 디렉토리에 20 개 이상의 이미지가 없으며 4GB 램 PC입니다. 하지만 여전히이 오류가 발생합니다. 내가 뭘 놓치고 있니?png 이미지를 비디오로 변환

여기에 내 현재 코드입니다 :

using (var writer = new VideoFileWriter()) 
      { 
       writer.Open(Path.Combine(dest_path, "output.avi"), width, height, frameRate, VideoCodec.Raw); 

       foreach (string file in Directory.EnumerateFiles(dest_path)) 
       { 
        var img = (Bitmap) Image.FromFile(file); 
        writer.WriteVideoFrame(img); 
       } 
       writer.Close(); 
      } 

답변

2

aForget.net 포럼에서이 요구되는 비트 맵에 배치 할 수 있다고 말한다.

방문일 : http://www.aforgenet.com/forum/viewtopic.php?f=2&t=2912

using (var frame = BitmapImage2Bitmap(e.ColorFrame.BitmapImage)) 
    using (var thumb = ResizeBitmap(frame, 320, 240)) 
    { 
     writer.WriteVideoFrame(thumb); 
    } 
} 

시도 :

using (var writer = new VideoFileWriter()) 
{ 
    // create new video file 
    writer.Open(Path.Combine(dest_path, "output.avi"), width, height, frameRate, VideoCodec.Raw); 

    foreach (string file in Directory.EnumerateFiles(dest_path)) 
    { 
     using(var img = (Bitmap) Image.FromFile(file)) { 
      writer.WriteVideoFrame(img); 
     } 
    } 
    writer.Close(); 
} 
1

Directory.EnumerateFiles 평가 게으른입니다. 그리고 소스가있는 폴더에 비디오 파일을 쓰고 있습니다. 즉, 출력 파일도 열거됩니다. 그러면 이미지 파일이 이미지 로더로 전달됩니다.

확장자별로 다른 폴더 또는 필터 파일로 출력 해보십시오.