您好,登錄后才能下訂單哦!
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類即可。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。