[vtkusers] How does one enforce recognition of little endian data in VTK?

Sanatan Sahgal sanatan_sahgal at hotmail.com
Fri Apr 29 03:06:45 EDT 2005


Hello,

I am using VTK on an Intel platform running Windows XP professional. I have 
a 2 bytes per pixel grayscale image which I wish to display on the screen 
using VTK.

My image raw data is in little endian format and when I feed it to VTK I see 
garbage on the screen because VTK seems to expect it in big endian format. 
If I swap the bytes and then feed it to VTK the image shows up correctly on 
my screen.

I don't want this extra overhead of swapping the bytes. I want VTK to 
recognize the raw little endian data just as it is. Is there any way to tell 
VTK that my data is in little endian format and it should read it as such?

I am using the vtkImageData class. I feed data to the imageData instance as 
follows:
imageData->GetPointData()->SetScalars(pixelArrayVtk);

The pixelArrayVtk instance is of type vtkDataArray and it is setup as 
follows:
pixelArrayVtk = CreateVtkDataArray(); //Creates instance of specific 
VtkDataArray type. Example: vtkShortArray::New()
pixelArrayVtk->SetVoidArray(imageRawData, totalSamples, 1);

The imageRawData parameter is a pointer to the memory location which 
contains the raw image data in little endian format.

Any help with this issue is appreciated.

thanks,
Sanatan





More information about the vtkusers mailing list