17 std::size_t imgWidth = img.width();
18 std::size_t imgHeight = img.height();
19 vtkSmartPointer<vtkUnsignedCharArray> data =
20 vtkSmartPointer<vtkUnsignedCharArray>::New();
21 data->SetNumberOfComponents(3);
22 data->SetNumberOfTuples(imgWidth * imgHeight);
24 for (std::size_t j = 0; j < imgHeight; j++)
26 for (std::size_t i = 0; i < imgWidth; i++)
28 QRgb pix = img.pixel(i, j);
29 const float color[3] = {
static_cast<float>(qRed(pix)),
30 static_cast<float>(qGreen(pix)),
31 static_cast<float>(qBlue(pix))};
32 data->SetTuple(j * imgWidth + i, color);
36 vtkImageData* imgData = vtkImageData::New();
37 imgData->SetExtent(0, imgWidth - 1, 0, imgHeight - 1, 0, 0);
38 imgData->SetOrigin(0, 0, 0);
39 imgData->AllocateScalars(VTK_UNSIGNED_CHAR, 3);
40 imgData->GetPointData()->SetScalars(data);