專案中需要將渲染結果匯出為圖片。

(1)  一開始搜了vtk的方法,發現:

http://blog.csdn.net/lbluekey/article/details/3346312

http://www-sop.inria.fr/asclepios/software/vtkINRIA3D/dashboard/Doxygen/html/vtkKWSnapshotHandler_8cxx-source.html

中,使用了  vtkJPEGWritervtkBMPWriter 、vtkTIFFWritervtkPNGWriter 對vtkRenderWindow 進行結果匯出。在我的機子上,程式碼可以執行,但匯出的.jpg、.png圖片都提示”格式損壞“,而無法開啟,只有 .bmp 正常。查看了之前編譯的vtk原始碼,發現vtkpng \vtkjpg 兩個專案均正常編譯,匯出lib和dll正常。google了好久,也沒有解決。

(2) 按老大提醒, 由於繪製結果放在QVTKWidget中,本質上是一個QWidget,因此可以使用 QPixmap的截圖方法,直接將該結果匯出為QPixmap物件,然後使用其save()方法,儲存為任意想要的格式,程式碼如下:

 QPixmap pixmap = QPixmap::grabWidget(this);
pixmap.save("result.bmp");
// pixmap.save("result.jpg");
// pixmap.save("result.png");

問題解決。