X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkScreenShot.cxx;fp=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkScreenShot.cxx;h=35a5998a0f05ec31e1987ada7cd368b4336bc4f8;hb=3d95096f97588894dd9a5ffbb8b2c8e6c111cd29;hp=0000000000000000000000000000000000000000;hpb=b14773c04cfae41766a01441d155225c9fc4668f;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkScreenShot.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkScreenShot.cxx new file mode 100644 index 0000000..35a5998 --- /dev/null +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkScreenShot.cxx @@ -0,0 +1,108 @@ +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +#include "bbcreaVtkScreenShot.h" +#include "bbcreaVtkPackage.h" + +#include "vtkWindowToImageFilter.h" +#include "vtkPNGWriter.h" +#include "vtkWindow.h" + +// #include "vtkFFMPEGWriter.h" + + +namespace bbcreaVtk +{ + +BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,ScreenShot) +BBTK_BLACK_BOX_IMPLEMENTATION(ScreenShot,bbtk::AtomicBlackBox); +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void ScreenShot::Process() +{ + +// THE MAIN PROCESSING METHOD BODY +// Here we simply set the input 'In' value to the output 'Out' +// And print out the output value +// INPUT/OUTPUT ACCESSORS ARE OF THE FORM : +// void bbSet{Input|Output}NAME(const TYPE&) +// const TYPE& bbGet{Input|Output}NAME() const +// Where : +// * NAME is the name of the input/output +// (the one provided in the attribute 'name' of the tag 'input') +// * TYPE is the C++ type of the input/output +// (the one provided in the attribute 'type' of the tag 'input') + +// bbSetOutputOut( bbGetInputIn() ); +// std::cout << "Output value = " <SetInput( bbGetInputvtkRenderer()->GetVTKWindow() ); + wif->SetMagnification( bbGetInputScale()[0] ); +// wif->SetScale( bbGetInputScale()[0], bbGetInputScale()[1] ); + wif->SetInputBufferTypeToRGB(); + wif->ReadFrontBufferOff(); + wif->Update(); + vtkPNGWriter *writer = vtkPNGWriter::New(); + writer->SetFileName( bbGetInputFileName().c_str() ); + writer->SetInput(wif->GetOutput()); + writer->Write(); + +/* + vtkFFMPEGWriter *writer2 = vtkFFMPEGWriter::New(); + writer2->SetInput(wif->GetOutput()); + for (int i=0; i<10; i++) + { + // update + writer2->Write(); + } // for + writer2->End; +*/ +} +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void ScreenShot::bbUserSetDefaultValues() +{ + +// SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX +// Here we initialize the input 'In' to 0 + bbSetInputvtkRenderer(NULL); + bbSetInputFileName("ScreenShot-BBTK.png"); + + std::vector scale; + scale.push_back(1); + scale.push_back(1); + bbSetInputScale(scale); + +} +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void ScreenShot::bbUserInitializeProcessing() +{ + +// THE INITIALIZATION METHOD BODY : +// Here does nothing +// but this is where you should allocate the internal/output pointers +// if any + + +} +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void ScreenShot::bbUserFinalizeProcessing() +{ + +// THE FINALIZATION METHOD BODY : +// Here does nothing +// but this is where you should desallocate the internal/output pointers +// if any + +} +} +// EO namespace bbcreaVtk + +