方法一:
vtkSmartPointer<vtkWindowToImageFilter> windowToImageFilter =
vtkSmartPointer<vtkWindowToImageFilter>::New();
windowToImageFilter->SetInput(renWin);
//windowToImageFilter->SetInputBufferTypeToRGBA(); //also record the alpha (transparency) channel
windowToImageFilter->SetInputBufferTypeToRGB();
windowToImageFilter->ReadFrontBufferOff(); // read from the back buffer
windowToImageFilter->Update();
vtkNew<vtkJPEGWriter> writer;
writer->SetFileName("test.jpg");
writer->SetInputConnection(windowToImageFilter->GetOutputPort());
writer->SetQuality(100);
writer->Write();
方法二:
vtkNew<vtkRenderLargeImage> renderLarge;
renderLarge->SetInput(render);
renderLarge->SetMagnification(1);
renderLarge->Update();
vtkNew<vtkJPEGWriter> writer;
writer->SetFileName("test.jpg");
writer->SetInputConnection(renderLarge->GetOutputPort());
writer->SetQuality(100);
writer->Write();