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

Mathieu Malaterre mathieu.malaterre at kitware.com
Mon May 2 09:25:24 EDT 2005


Interesting, so why don't you change the type from big endian to little 
endian when you are reading the file during your 'pre-processing' steps.

Anyway the whole byte swapping code is in vtkByteSwap

http://www.vtk.org/doc/nightly/html/classvtkByteSwap.html

HTH
Mathieu

Sanatan Sahgal wrote:
> Mathieu,
> 
> Thanks for the prompt response.
> 
> The data is not coming from a file. Prior to the data hitting any of the 
> VTK classes it undergoes some pre-processing steps that I need to do. 
> The bottom line is that the data feed to VTK is not from a file. So, 
> using vtkImageReader class will not work. Is there any other way?
> 
> thanks,
> Sanatan
> 
>>
>> Sanatan,
>>
>>     Since you are reading from a file you should rather have a look at 
>> the vtkImageReader class:
>>
>> http://www.vtk.org/doc/nightly/html/classvtkImageReader.html
>>
>> Since there is a member function that you need:
>>
>> vtkImageReader2::SetDataByteOrderToBigEndian()
>>
>> HTH
>> Mathieu
>>
>> Sanatan Sahgal wrote:
>>
>>> 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
>>>
>>>
>>> _______________________________________________
>>> This is the private VTK discussion list. Please keep messages 
>>> on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>
> 
> 
> 




More information about the vtkusers mailing list