我有一个都是相同尺寸的位图目录。我想将这些位图转换为视频文件。我不在乎视频文件(编解码器)是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++];
}

如果观看用户可以访问图像,足够的资源将图像保留在内存中,不想等待视频编码并且可能需要不同的播放速度,则这种方法会很好地工作。

...只是把它扔在那里。

10-08 11:51