创建AVI容器时反转位图

时间:2015-04-12 11:50:26

标签: c# image bitmap stream avi

我的程序中有一个图像列表,我正在从它们生成一个AVI视频。为此,我使用avifilewrapper_src库来处理视频的创建。 创建过程是:

        Bitmap bitmap;
        //load the first image
        bitmap = (Bitmap)imageSequence[0];

        //create a new AVI file
        AviManager aviManager = new AviManager(paths.outputVideo, false);
        //add a new video stream and one frame to the new file
        VideoStream aviStream =
                    aviManager.AddVideoStream(true, (double)nud_picturePerSec.Value, bitmap);

        if(chb_audio.Checked)
            aviManager.AddAudioStream(paths.sampleAudio, 0);


        int count = 0;
        for (int n = 0; n < imageSequence.Count; n++) {
            bitmap = (Bitmap)imageSequence[n];
            aviStream.AddFrame(bitmap);
            bitmap.Dispose();
            count++;
        }

        aviManager.Close();

如果我继续提供不同的图像,它可以正常工作。但是,如果我放了两个相似的图像,则视频显示第二张图像上下颠倒(左/右侧是正确的)。通过两个相似的图像,我的意思是创建第二个图像并从第一个图像复制它。

我感觉这与流有某种联系,但我无法找到图像反转的原因。

1 个答案:

答案 0 :(得分:1)

嗯,我没有设法找到这种行为的原因。但是在每次使用之间进行擦拭都可以很好地进行修正。

bitmap.RotateFlip(RotateFlipType.RotateNoneFlipY);