7 #include "imstkVTKScreenCaptureUtility.h" 8 #include "imstkLogger.h" 10 #include <vtkPNGWriter.h> 11 #include <vtkRenderWindow.h> 12 #include <vtkWindowToImageFilter.h> 16 VTKScreenCaptureUtility::VTKScreenCaptureUtility(vtkRenderWindow*
const rw,
const std::string prefix ) :
17 ScreenCaptureUtility(prefix),
18 m_windowToImageFilter(vtkSmartPointer<vtkWindowToImageFilter>::New()),
19 m_pngWriter(vtkSmartPointer<vtkPNGWriter>::New())
30 if (m_renderWindow ==
nullptr)
32 LOG(WARNING) <<
"Render window has not been set yet! ";
36 if (m_windowToImageFilter->GetInput() ==
nullptr)
38 m_windowToImageFilter->SetInput(m_renderWindow);
40 m_windowToImageFilter->SetScale(1);
41 m_windowToImageFilter->SetInputBufferTypeToRGB();
42 m_windowToImageFilter->ReadFrontBufferOff();
43 m_windowToImageFilter->Update();
45 m_pngWriter->SetInputConnection(m_windowToImageFilter->GetOutputPort());
48 m_windowToImageFilter->Modified();
50 std::string filename = captureName +
".png";
52 m_pngWriter->SetFileName(filename.data());
55 LOG(INFO) <<
"Screen shot " << m_screenShotNumber <<
" saved as " << captureName <<
"\n";
std::string saveScreenShot()
Saves a screenshot with a name of <prefix><screenshotNumber>.<implementationImageType> the <Implement...