Skip to content

Instantly share code, notes, and snippets.

@agirault
Last active November 16, 2015 15:15
Show Gist options
  • Save agirault/22d73187089d41bf0e54 to your computer and use it in GitHub Desktop.
Save agirault/22d73187089d41bf0e54 to your computer and use it in GitHub Desktop.
Example of vtkRenderWindow OffScreenRendering for Image export
// Enable OffScreen Rendering
renderWindow->OffScreenRenderingOn();
// Set renderWindow size
const int* windowSize = renderWindow->GetSize();
int W = windowSize[0];
int H = windowSize[1];
renderWindow->SetSize(d->exportWidthSpinBox->value(),d->exportHeightSpinBox->value());
// Get Image
vtkNew<vtkWindowToImageFilter> w2i;
w2i->SetInput(renderWindow);
// Create Writer
vtkNew<vtkPNGWriter> imageWriter;
imageWriter->SetInputConnection(w2i->GetOutputPort());
imageWriter->SetFileName("screenshot.png");
// Render
renderWindow->Render();
// Update filter
w2i->Modified();
w2i->Update();
// Write screenshot
imageWriter->Write();
// Reset renderwindow size
renderWindow->SetSize(W, H);
// Back to screen rendering
renderWindow->OffScreenRenderingOff();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment