我试图将给定目录中的所有png图像转换为avi文件但我的内存不足。我现在目录中没有超过20张图片,一台4GB的RAM。但我仍然得到这个错误。我错过了什么?
这是我目前的代码:
var item = (Invitation)e.ClickedItem;
this.Frame.Navigate(typeof(MainPage), item.Id);
答案 0 :(得分: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 :(得分:1)
Directory.EnumerateFiles是延迟评估的。您正在将源视频所在的文件夹中的视频文件写入。这意味着您的输出文件也将被枚举。这将导致视频文件传递给图像加载器。
尝试通过扩展名输出到不同的文件夹或过滤文件。