[vtkusers] vtkWindowToImageFilter - black image
Miroslav Drahos
mdrahos at thinksurgical.com
Tue Jun 9 13:43:33 EDT 2015
Frederik,
you should call vtkRenderWindow::Render() before updating the pipeline.
This is what has worked for me reliably:
VTK_CREATE(vtkWindowToImageFilter, w2i);
w2i->SetInput(rw);
w2i->ReadFrontBufferOff();
rw->Render();
w2i->Modified(); // See doc http://www.vtk.org/doc/nightly/html/classvtkWindowToImageFilter.html#details
VTK_CREATE(vtkPNGWriter, writer);
writer->SetFileName(fname.c_str());
writer->SetInputConnection(w2i->GetOutputPort());
writer->Write();
where VTK_CREATE is a widely used macro:
#define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New();
HTH,
Miro
________________________________________
From: vtkusers [vtkusers-bounces at vtk.org] On Behalf Of Fredrik [frejon at gmail.com]
Sent: Tuesday, June 09, 2015 8:55 AM
To: Scott Wittenburg
Cc: vtkusers at public.kitware.com
Subject: Re: [vtkusers] vtkWindowToImageFilter - black image
Hi Scott, thanks for the reply. Unfortunately it didn't help. I think I remember some other thread with the "ShouldRerender" flag, but I think that mentioned it should be windowToImageFilter.ShouldRerenderOff();
, not on. I tried both anyway, but no change
All the best,
Fredrik
2015-06-09 17:33 GMT+02:00 Scott Wittenburg <scott.wittenburg at kitware.com<mailto:scott.wittenburg at kitware.com>>:
Hi Frederik,
I believe I have encountered this before. What solved it for me was turning on the "ShouldRerender" flag in addition to what you have set. Something like:
windowToImageFilter.ShouldRerenderOn();
could possibly help.
Cheers,
Scott
On Tue, Jun 9, 2015 at 9:02 AM, Fredrik <frejon at gmail.com<mailto:frejon at gmail.com>> wrote:
Hello. There are several threads on this topic, and the few I see, the proposed solutions are not enough or the thread is left unresolved. see this:
http://public.kitware.com/pipermail/vtkusers/2014-October/085358.html
http://public.kitware.com/pipermail/vtkusers/2014-October/085294.html
I still am unable to generate anything else than a black image.
I'm on the latest VTK, under Mac OS X 10.10. I also tried offscreen rendering, but no luck.
Hours of googling and testing solutions have proven unsuccessful, I'd really appreciate if anyone could help me.
here's a snippet of my code if you think it'll help
tempFile = "xyz.bmp";
// write to temporary bmp file
vtkBMPWriter writer = new vtkBMPWriter();
vtkWindowToImageFilter windowToImageFilter = new vtkWindowToImageFilter();
windowToImageFilter.ReadFrontBufferOff();
windowToImageFilter.SetMagnification(1);
windowToImageFilter.SetInput(renderWindow);
windowToImageFilter.SetInputBufferTypeToRGBA();
windowToImageFilter.ReadFrontBufferOff();
windowToImageFilter.Update();
windowToImageFilter.ReadFrontBufferOff();
writer.SetInputConnection(windowToImageFilter.GetOutputPort());
writer.SetFileName(tempFile);
writer.Write();
Kind Regards, Fredrik
_______________________________________________
Powered by www.kitware.com<http://www.kitware.com>
Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
Search the list archives at: http://markmail.org/search/?q=vtkusers
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/vtkusers
More information about the vtkusers
mailing list