[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