所以我在这里有这段代码,它从 AVI 文件中提取帧,克隆它们,并将它们存储在一个数组中。几百次后,我收到一条错误消息“参数无效”。我已经四处寻找答案,但所有答案都是针对某件事曾经奏效,但随后不再奏效的情况。在此错误发生之前,此行平均执行这些行 490 次。我想知道你们中是否有人能告诉我这里出了什么问题?此外,file = null 实际上稍后在代码中更改为具有值,以防您认为这是我得到错误的地方。
帮助:我正在使用 AForge.Video.VFW;对于 AVIWriter 和 Reader,我在另一个线程中调用该 void。
对不起,如果这还不够好。这是我在这里问的第一个问题。
AVIWriter writer = new AVIWriter("wmv3");
AVIReader reader = new AVIReader();
string file = null;
Bitmap[] AVIImages = new Bitmap[1];
int imagesProcessed = 0;
double progressValue = 0;
private void getImages()
{
reader.Open(file);
while (reader.Position - reader.Start < reader.Length)
{
Application.DoEvents();
AVIImages[imagesProcessed] = (Bitmap)reader.GetNextFrame().Clone();
imagesProcessed++;
progressValue = (int)((double)imagesProcessed / (double)reader.Length * 100);
Array.Resize(ref AVIImages, imagesProcessed + 1);
Thread.Sleep(10);
}
reader.Close();
picWaiting.Visible = false;
lblWaiting.Text = "Done!";
timeUpdateProgressBar.Stop();
}