# How to convert from RGB byte array to vtkImageData?

**URL:** https://discourse.vtk.org/t/how-to-convert-from-rgb-byte-array-to-vtkimagedata/6088
**Category:** Support
**Created:** [June 28, 2021, 12:17am UTC](https://discourse.vtk.org/t/how-to-convert-from-rgb-byte-array-to-vtkimagedata/6088 "2021-06-28T00:17:06Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Kim\_William](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kim_william/32/373_2.png) [@Kim\_William](https://discourse.vtk.org/u/Kim_William)
#### Post date: [June 28, 2021, 12:17am UTC](https://discourse.vtk.org/t/how-to-convert-from-rgb-byte-array-to-vtkimagedata/6088/1 "2021-06-28T00:17:06Z")

</div>

Hi all.

I’m using vtkImageViewer2 with vtkImageData to draw the mono8 image.

My code is as below:

```auto
vtkNew<vtkImageData> imageData;

vtkSmartPointer<vtkAbstractArray> arr;
arr = vtkUnsignedCharArray::New();
vtkSmartPointer<vtkUnsignedCharArray> tmp = dynamic_cast<vtkUnsignedCharArray*>(arr.Get());
tmp->SetArray((unsigned char*)ptr, w*h*bpp / 8, 1);
imageData->GetPointData()->SetScalars(tmp);
imageData->SetDimensions(w, h, 1);
imageData->SetExtent(0, w - 1, 0, h - 1, 0, (1 << bpp) - 1);

m_imageViewer->GetRenderWindow()->Render();

```

It works well. But I don’t know how to using vtkImageData with RGB byte array.

Could you please advise me, how to convert from RGB byte array to vtkImageData?

Thank you.

---

<div class="post-metadata">

### Author: ![Kim\_William](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kim_william/32/373_2.png) [@Kim\_William](https://discourse.vtk.org/u/Kim_William)
#### Post date: [June 28, 2021, 12:23am UTC](https://discourse.vtk.org/t/how-to-convert-from-rgb-byte-array-to-vtkimagedata/6088/2 "2021-06-28T00:23:42Z")

</div>

oh… I found the solution.

```auto
arr = vtkUnsignedCharArray::New();
vtkSmartPointer<vtkUnsignedCharArray> tmp = dynamic_cast<vtkUnsignedCharArray*>(arr.Get());
tmp->SetArray((unsigned char*)ptr, w*h*bpp / 8, 1);
tmp->SetNumberOfComponents(3);

```

‘SetNumberOfComponents(3)’ is solution.
