2016-06-21 5 views
0

giveディレクトリのすべてのpng画像をaviファイルに変換しようとしていますが、メモリが不足しています。私は現在、ディレクトリに20以上の画像、4GB RAMの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が評価怠け者です。また、ソースがあるのと同じフォルダにビデオファイルを書き込んでいます。つまり、出力ファイルも列挙されます。これにより、画像ファイルが画像ローダに渡されます。

拡張子で別のフォルダまたはフィルタファイルに出力してみます。

関連する問題