Since some changes were made to the pipeline in later versions of VTK5, some functions of the old version have been changed. Here are the two programs in the new version, which are used to display a picture:

Procedure 1:

`#include <vtkSmartPointer.h> #include <vtkPNGReader.h> #include <vtkImageViewer2.h> #include <vtkRenderWindowInteractor.h> #include <vtkCallbackCommand.h> #include <vtkRenderWindow.h> #include <vtkRenderer.h> #include <vtkBMPReader.h> long pressCounts = 0; // First step, define the callback function. Note that the signature of the callback function cannot be changed. void MyCallbackFunc(vtkObject*, unsigned long eid, void* clientdata, void *calldata) { std::cout << "You have clicked: " << ++pressCounts << " times." << std::endl; } // Test image:.. /data/VTK-logo.png int main(int argc, char* argv[]) { vtkSmartPointer<vtkBMPReader> reader = vtkSmartPointer<vtkBMPReader>::New(); reader->SetFileName("VTK-logo.bmp"); vtkSmartPointer<vtkImageViewer2> viewer = vtkSmartPointer<vtkImageViewer2>::New(); / / important viewer - > SetInputConnection (reader - > GetOutputPort ()); vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); viewer->SetupInteractor(interactor); viewer->Render(); The viewer - > GetRenderer () - > SetBackground (1.0, 1.0, 1.0); viewer->SetSize(640, 480); viewer->GetRenderWindow()->SetWindowName("ObserverCommandDemo1"); // Set the callback function. vtkSmartPointer<vtkCallbackCommand> mouseCallback = vtkSmartPointer<vtkCallbackCommand>::New(); mouseCallback->SetCallback(MyCallbackFunc); // Add the vtkCallbackCommand object to the observer list. interactor->SetRenderWindow(viewer->GetRenderWindow()); interactor->AddObserver(vtkCommand::LeftButtonPressEvent, mouseCallback); interactor->Initialize(); interactor->Start(); return EXIT_SUCCESS; } `Copy the code

Viewer ->SetInputConnection(reader->GetOutputPort()); This program

Program 2:

`#include <vtkSmartPointer.h> #include <vtkRenderWindow.h> #include <vtkRenderer.h> #include <vtkRenderWindowInteractor.h> #include <vtkInteractorStyleImage.h> #include <vtkJPEGReader.h> #include <vtkImageActor.h> // Test:.. /data/VTKBook-TestImage.jpg int main(int argc, char* argv[]) { char* fileName = argv[1]; vtkSmartPointer<vtkJPEGReader> reader = vtkSmartPointer<vtkJPEGReader>::New(); reader->SetFileName("data\\texture.jpg"); reader->Update(); vtkSmartPointer<vtkImageActor> imageActor = vtkSmartPointer<vtkImageActor>::New(); imageActor->SetInputData(reader->GetOutput()); vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); renderer->AddActor(imageActor); The renderer - > SetBackground (1.0, 1.0, 1.0); vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New(); renWin->AddRenderer(renderer); renWin->SetSize(640, 480); renWin->Render(); renWin->SetWindowName("InteractionDemo"); vtkSmartPointer<vtkRenderWindowInteractor> iren = vtkSmartPointer<vtkRenderWindowInteractor>::New(); iren->SetRenderWindow(renWin); vtkSmartPointer<vtkInteractorStyleImage> style = vtkSmartPointer<vtkInteractorStyleImage>::New(); iren->SetInteractorStyle(style); iren->Initialize(); iren->Start(); return EXIT_SUCCESS; } `Copy the code

ImageActor ->SetInputData(reader->GetOutput()); This line of code