<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Shekhar wrote:
<blockquote cite="mid:47D141E2.1070405@sci.monash.edu.au" type="cite">
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
Hi Manuel,<br>
  <br>
Thats normal as far as my experience goes. You will need to get VTK to
pull the OpenGL stuff out of the window. Use the vtkWindowToImageFilter
class like:<br>
</blockquote>
No !!!<br>
If you completely do not take care of performance and complexity, then
let it be.<br>
But there is a more elegant, straightforward and clear solution - <br>
<br>
<tt>&nbsp;&nbsp;&nbsp; vtkRenderWindow* aWindow = anInteractor-&gt;getRenderWindow();<br>
&nbsp;&nbsp;&nbsp; unsigned char *aData = aWindow-&gt;GetRGBACharPixelData( 0, <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
theHorizontalWindowDimension - 1, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
theVerticalWindowDimension - 1, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 );<br>
&nbsp;&nbsp;&nbsp; QImage anImage( aData, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; theHorizontalDimension, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; theVerticalDimension, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QImage::Format_ARGB32 );<br>
<br>
&nbsp;&nbsp;&nbsp; // OpenGL gives ABGR (i.e. RGBA backwards); Qt wants ARGB<br>
&nbsp;&nbsp;&nbsp; anImage = anImage.rgbSwapped();<br>
<br>
&nbsp;&nbsp;&nbsp; anImage = anImage.mirrored();<br>
<br>
</tt>But surely, it will be much better if someone will show us a way,
when it could be done automatically through overriding of some QWidget
methods ...<br>
<blockquote cite="mid:47D141E2.1070405@sci.monash.edu.au" type="cite">vtkWindowToImageFilter
*windowToImage = vtkWindowToImageFilter::New();<br>
QVTKWidget *windowVTK = qobject_cast&lt;QVTKWidget *&gt;(activeWindow);<br>
  <br>
///Capture Window<br>
windowToImage-&gt;SetInput(windowVTK-&gt;GetRenderWindow());<br>
windowToImage-&gt;Update();<br>
  <br>
///Write/Save as PNG<br>
vtkPNGWriter *writer = vtkPNGWriter::New();<br>
writer-&gt;SetInputConnection(windowToImage-&gt;GetOutputPort());
//Cant group outside if's GCC compiler error<br>
writer-&gt;SetFileName(filename.toStdString().c_str());<br>
windowVTK-&gt;GetRenderWindow()-&gt;Render();<br>
writer-&gt;Write();<br>
writer-&gt;Delete();<br>
  <br>
Hope that helps. <br>
Cheers Shakes.<br>
  <br>
Manuel Feige wrote:
  <blockquote cite="mid:003401c88036$883f53a0$14b2a8c0@tarox"
 type="cite">
    <meta http-equiv="Content-Type" content="text/html; ">
    <meta content="MSHTML 6.00.6000.16608" name="GENERATOR">
    <style></style>
    <div><font face="Arial" size="2"><font face="Times New Roman"
 size="3">Hi
All!<br>
I'm trying to make a screenshot of the QVTKWidget with <br>
QPixmap::grabWidget(). But this results in a gray picture. I've got the
same <br>
problem in ParaView (3.0.2) when I save a screenshot as pdf file.<br>
I'm using VTK 5.0.3 with QT 4.3.3.<br>
Below you will find a simple test program.<br>
    <br>
Regards,<br>
Manuel<br>
    <br>
#include &lt;QtGui&gt;<br>
#include &lt;vtkRenderWindow.h&gt;<br>
#include &lt;vtkRenderer.h&gt;<br>
#include &lt;vtkPolyDataMapper.h&gt;<br>
#include &lt;vtkSphereSource.h&gt;<br>
#include &lt;QVTKWidget.h&gt;<br>
#include "MainWindow.h"<br>
MainWindow::MainWindow()<br>
{<br>
testAction = new QAction(tr("&amp;Test"), this);<br>
connect(testAction, SIGNAL(triggered()), this, SLOT(test()));<br>
testMenu = menuBar()-&gt;addMenu(tr("&amp;Test"));<br>
testMenu-&gt;addAction(testAction);<br>
createMainWidget();<br>
showMaximized();<br>
}<br>
void MainWindow::createMainWidget()<br>
{<br>
mainWidget = new QVTKWidget(this);<br>
vtkSphereSource* sphere = vtkSphereSource::New();<br>
vtkPolyDataMapper* mapper = vtkPolyDataMapper::New();<br>
mapper-&gt;SetInput(sphere-&gt;GetOutput());<br>
vtkActor* actor = vtkActor::New();<br>
actor-&gt;SetMapper(mapper);<br>
vtkRenderer* ren = vtkRenderer::New();<br>
ren-&gt;AddActor(actor);<br>
mainWidget-&gt;GetRenderWindow()-&gt;AddRenderer(ren);<br>
setCentralWidget(mainWidget);<br>
}<br>
void MainWindow::test()<br>
{<br>
QPixmap pix = QPixmap::grabWidget(mainWidget);<br>
pix.save("C:/Test.bmp");<br>
} </font><br>
    </font></div>
    <pre wrap=""><hr size="4" width="90%">
_______________________________________________
This is the private VTK discussion list.
Please keep messages on-topic. Check the FAQ at: <a
 moz-do-not-send="true" class="moz-txt-link-freetext"
 href="http://www.vtk.org/Wiki/VTK_FAQ">http://www.vtk.org/Wiki/VTK_FAQ</a>
Follow this link to subscribe/unsubscribe:
<a moz-do-not-send="true" class="moz-txt-link-freetext"
 href="http://www.vtk.org/mailman/listinfo/vtkusers">http://www.vtk.org/mailman/listinfo/vtkusers</a>
  </pre>
  </blockquote>
  <br>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
This is the private VTK discussion list.
Please keep messages on-topic. Check the FAQ at: <a class="moz-txt-link-freetext" href="http://www.vtk.org/Wiki/VTK_FAQ">http://www.vtk.org/Wiki/VTK_FAQ</a>
Follow this link to subscribe/unsubscribe:
<a class="moz-txt-link-freetext" href="http://www.vtk.org/mailman/listinfo/vtkusers">http://www.vtk.org/mailman/listinfo/vtkusers</a>
  </pre>
</blockquote>
<br>
</body>
</html>