[vtkusers] how to output an avi file in VTK
Wang HJ
hjwang126 at hotmail.com
Mon May 29 04:30:56 EDT 2006
Hi,Marc
Thank you for your reply, I have done it like you said, now *.avi can be
created, the animation just contains one still image although the still
image can last sometime( not change anymore), why? Do I need another
statements? Looking forwards to receiving your new suggestion. Thanks ,
now my code is :
vtkWindowToImageFilter *imageFilter = vtkWindowToImageFilter::New();
imageFilter->ReadFrontBufferOff();
imageFilter->SetInput(renWin);// renwin is defined as vtkRenderWindow
*renWin
vtkAVIWriter *w=vtkAVIWriter::New();
w->SetInput(imageFilter->GetOutput());
w->SetFileName("c:/TestAVIWriter.avi");
w->Start();
for (i = 0; i < 9; ++i)
{
// Render the image and rotate the active camera by one degree
renWin->Render();
// aRenderer->GetActiveCamera()->Azimuth(10);
aRenderer->GetActiveCamera()->Elevation(-10);
aRenderer2->GetActiveCamera()->Elevation(10);
imageFilter->Update();
w->Write();
}
w->End();
HJ
>From: Marc Cotran <marc at cotran.ca>
>To: Wang HJ <hjwang126 at hotmail.com>
>Subject: Re: [vtkusers] how to output an avi file in VTK
>Date: Sun, 28 May 2006 23:58:39 -0400
>
>Wang HJ wrote:
>>Hi everybody
>>
>>I have a program to render images in a loop (so it looks like an
>>animation) in vtk, now I want to save those results in an avi file, I knew
>>I could use the class vtkAVIWriter, but I do not know how to use it, I
>>wrote my code like:
>>vtkAVIWriter *w=vtkAVIWriter::New();
>>w->SetFileName("c:/TestAVIWriter.avi");
>>w->Start();
>> for (i = 0; i < 9; ++i)
>> {
>> // Render the image and rotate the active camera by one degree
>> renWin->Render();
>> // aRenderer->GetActiveCamera()->Azimuth(10);
>> aRenderer->GetActiveCamera()->Elevation(-10);
>> aRenderer2->GetActiveCamera()->Elevation(10);
>> w->Write();
>> }
>> w->End();
>Hello,
>
>You have to specify the input as a vtkImageData object. What you are trying
>to do can be accomplished as follows:
>
> vtkWindowToImageFilter *imageFilter = vtkWindowToImageFilter::New();
> imageFilter->ReadFrontBufferOff();
> imageFilter->SetInput(myRenderWindowInstance);
>
> vtkAVIWriter *writer = vtkAVIWriter::New();
>
> writer->SetFileName("tester.avi");
> writer->SetInput(imageFilter->GetOutput());
> writer->Start();
>
> for (int i = 0; i < 30; i++)
> {
> do something;
> myRenderWindowInstance->Render();
> writer->Write();
> }
>
> writer->End();
>
>HTH,
>
>Marc
More information about the vtkusers
mailing list