我有一个都是相同尺寸的位图目录。我想将这些位图转换为视频文件。我不在乎视频文件(编解码器)是wmv还是avi。我唯一的要求是指定帧速率。不需要跨平台,仅Windows(Vista和XP)。我已经阅读了一些有关使用Windows Media SDK或DirectShow的信息,但是其中没有一个关于提供代码示例的明确说明。
谁能提供一些见识或宝贵的资源来帮助我在C#中做到这一点?
最佳答案
冒着被否决的危险,我将提供一个可能的替代选择-缓冲的位图动画。
double framesPerSecond;
Bitmap[] imagesToDisplay; // add the desired bitmaps to this array
Timer playbackTimer;
int currentImageIndex;
PictureBox displayArea;
(...)
currentImageIndex = 0;
playbackTimer.Interval = 1000 / framesPerSecond;
playbackTimer.AutoReset = true;
playbackTimer.Elapsed += new ElapsedEventHandler(playbackNextFrame);
playbackTimer.Start();
(...)
void playbackNextFrame(object sender, ElapsedEventArgs e)
{
if (currentImageIndex + 1 >= imagesToDisplay.Length)
{
playbackTimer.Stop();
return;
}
displayArea.Image = imagesToDisplay[currentImageIndex++];
}
如果观看用户可以访问图像,足够的资源将图像保留在内存中,不想等待视频编码并且可能需要不同的播放速度,则这种方法会很好地工作。
...只是把它扔在那里。