如何截取VTK中window的場景
阿新 • • 發佈:2018-04-19
屏幕截取 vtkRenderWindow GetRGBAPixelData vtk的vtkRenderWindowInteractor中的Initialize函數初始化了可交互的窗口,但是實際工程中,往往需要把窗口拿出來在別的頁面上顯示,如存為png圖片等等。具體方法可看vtkRenderWindow類介紹。
本文主要介紹如何截取當前窗口的畫面。
本文主要介紹如何截取當前窗口的畫面。
//renWin:當前活動窗口; //pdata:截圖後返回的數據指針,RGBA,32位,存儲格式為RGBARGBA.... //maxlen: 防止pdata開辟的空間不夠 bool GetOutput(vtkRenderWindow *renWin,unsigned char* pdata, int maxlen) { int w = renWin->GetSize()[0]; int h = renWin->GetSize()[1]; if (maxlen<w*h * 4) return false; vtkSmartPointer<vtkUnsignedCharArray> pixels = vtkSmartPointer<vtkUnsignedCharArray>::New(); pixels->SetArray(pdata, w*h * 4, 1); renWin->GetRGBACharPixelData(0, 0, h - 1, w - 1, 1, pixels); return true; }
通過上述代碼可以截取所需窗口的當前場景,除此方式外,也可以存為png格式只需調用vtk的png類即可。
如何截取VTK中window的場景