MCPcopy Create free account
hub / github.com/Kitware/VTK / EncodeAndWrite

Function EncodeAndWrite

IO/Asynchronous/vtkThreadedImageWriter.cxx:57–136  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

55};
56
57void EncodeAndWrite(const vtkSmartPointer<vtkImageData>& image, const std::string& fileName)
58{
59 vtkLogF(TRACE, "encoding: %s", fileName.c_str());
60 assert(image != nullptr);
61
62 std::size_t pos = fileName.rfind('.');
63 std::string extension = fileName.substr(pos + 1);
64
65 if (extension == "Z")
66 {
67 auto scalars = image->GetPointData()->GetScalars()->ToAOSDataArray();
68 if (!vtkArrayDispatch::DispatchByArray<vtkArrayDispatch::AOSArrays>::Execute(
69 scalars, vtkThreadedImageWriterFunctor{}, fileName, true))
70 {
71 vtkErrorWithObjectMacro(nullptr,
72 "EncodeAndWrite: Array " << image->GetPointData()->GetScalars()->GetClassName()
73 << " not supported.");
74 }
75 }
76
77 else if (extension == "png")
78 {
79 vtkNew<vtkPNGWriter> writer;
80 writer->SetFileName(fileName.c_str());
81 writer->SetInputData(image);
82 writer->Write();
83 }
84
85 else if (extension == "jpg" || extension == "jpeg")
86 {
87 vtkNew<vtkJPEGWriter> writer;
88 writer->SetFileName(fileName.c_str());
89 writer->SetInputData(image);
90 writer->Write();
91 }
92
93 else if (extension == "bmp")
94 {
95 vtkNew<vtkBMPWriter> writer;
96 writer->SetFileName(fileName.c_str());
97 writer->SetInputData(image);
98 writer->Write();
99 }
100
101 else if (extension == "ppm")
102 {
103 vtkNew<vtkPNMWriter> writer;
104 writer->SetFileName(fileName.c_str());
105 writer->SetInputData(image);
106 writer->Write();
107 }
108
109 else if (extension == "tif" || extension == "tiff")
110 {
111 vtkNew<vtkTIFFWriter> writer;
112 writer->SetFileName(fileName.c_str());
113 writer->SetInputData(image);
114 writer->Write();

Callers

nothing calls this directly

Calls 10

ToAOSDataArrayMethod · 0.80
assertFunction · 0.50
ExecuteFunction · 0.50
c_strMethod · 0.45
GetScalarsMethod · 0.45
GetPointDataMethod · 0.45
GetClassNameMethod · 0.45
SetFileNameMethod · 0.45
SetInputDataMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected