项目中需要将渲染结果导出为图片。
(1) 一开始搜了vtk的方法,发现:
http://blog.csdn.net/lbluekey/article/details/3346312
中,使用了 vtkJPEGWriter、 vtkBMPWriter 、vtkTIFFWriter、 vtkPNGWriter 对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");
问题解决。