Well, I have an addition 4 bytes at the end of the file to skip as
well.. I suppose I could postprocess & write a new file without
these final 4 bytes, but that's gonna be pretty wasteful of disk
space.&nbsp; Is there a way to skip them?<br>
<br>
<br><br><div><span class="gmail_quote">On 5/27/05, <b class="gmail_sendername">Mathieu Malaterre</b> &lt;<a href="mailto:mathieu.malaterre@kitware.com">mathieu.malaterre@kitware.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Randall,<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Could you instead give vtkImageReader a try. Just specify the lenght of<br>data you want to read: 3,840,384,800 bytes. By default vtkImageReader<br>start reading from the end. Thefore you are garantee to skip a header if
<br>any (4 bytes in your case apparently).<br><br>HTH<br>Mathieu<br><br>Randall Hand wrote:<br>&gt; I'm attempting to load a simple &quot;Brick of Bytes (BoB)&quot; format file into<br>&gt; VTK.&nbsp;&nbsp;It is 2191x2191x800 unsigned chars (3,840,384,800 bytes). With 4
<br>&gt; bytes at the beginning that I have to skip (Gotta love fortran).&nbsp;&nbsp;My<br>&gt; code is like the following:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; if (stat(argv[1], &amp;file_info) == -1) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perror(&quot;Unable to stat file!\n\t&quot;);
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; fptr = fopen(argv[1], &quot;r&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; if ((data = (char*)malloc(file_info.st_size)) == NULL) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perror(&quot;Unable to allocate memory!\n\t&quot;);
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; dataptr = data;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; fread(dataptr, 1, 4, fptr);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; dataptr += 4;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;\n\n&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0; i&lt;xdim; i++) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fread(dataptr, ydim,zdim,&nbsp;&nbsp;fptr);
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataptr += (ydim * zdim);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; vtkImageImport *import = vtkImageImport::New();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; import-&gt;AddObserver(vtkCommand::ProgressEvent, progress);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; import-&gt;SetDataScalarTypeToUnsignedChar();
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; import-&gt;SetNumberOfScalarComponents(1);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; import-&gt;SetWholeExtent(1, xdim-1,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1,
ydim-1,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1,
zdim-1);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; import-&gt;SetDataExtentToWholeExtent();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; import-&gt;SetImportVoidPointer(data + skip);<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; vtkDataSetWriter *writer = vtkDataSetWriter::New();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; writer-&gt;SetInput(import-&gt;GetOutput());
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; writer-&gt;SetFileName(&quot;resulting.vtk&quot;);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; writer-&gt;Write();<br>&gt;<br>&gt;<br>&gt; When I run this, however, the output VTK file only contains the following:<br>&gt; # vtk DataFile Version 
3.0<br>&gt; vtk output<br>&gt; ASCII<br>&gt; DATASET STRUCTURED_POINTS<br>&gt; DIMENSIONS 2191 2191 800<br>&gt; SPACING 1 1 1<br>&gt; ORIGIN 1 1 1<br>&gt;<br>&gt; No data is actually written to the file.&nbsp;&nbsp;When I try to connect this to
<br>&gt; a rendering pipeline or start querying the resulting vtkDataSet for<br>&gt; properties (Scalar ranges, number of points, etc) I get strange results<br>&gt; and eventually I get Segfault/Core dumps.&nbsp;&nbsp;Often times the number of
<br>&gt; points listed comes out as a large negative number, instead of the<br>&gt; 3.8bil that it should be.<br>&gt;<br>&gt; A stack trace of the core dumps only reveals this:<br>&gt;<br>&gt; [8:50:48am]% dbx imageimport
<br>&gt; dbx version 7.3.4 (86441_Nov11 MR) Nov 11 2002 11:31:55<br>&gt; Core from signal SIGSEGV: Segmentation violation<br>&gt; (dbx) where<br>&gt;<br>&gt; Thread 0x10000<br>&gt;&nbsp;&nbsp;&gt;&nbsp;&nbsp;0 vtkDataArrayTemplate&lt;unsigned char&gt;::ComputeScalarRange(int)(this
<br>&gt; = 0xf4eb83c0, comp = 0)<br>&gt; [&quot;/viz/home/rhand/src/ezViz/Utilities/VTK/Common/vtkDataArrayTemplate.txx&quot;:644,<br>&gt; 0x85f2758]<br>&gt; (dbx)<br>&gt; (dbx) quit<br>&gt;<br>&gt;<br>&gt;<br>&gt; --<br>
&gt; Randall Hand<br>&gt; <a href="http://www.yeraze.com">http://www.yeraze.com</a><br>&gt;<br>&gt;<br>&gt; ------------------------------------------------------------------------<br>&gt;<br>&gt; _______________________________________________
<br>&gt; This is the private VTK discussion list.<br>&gt; Please keep messages on-topic. Check the FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ">http://www.vtk.org/Wiki/VTK_FAQ</a><br>&gt; Follow this link to subscribe/unsubscribe:
<br>&gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers">http://www.vtk.org/mailman/listinfo/vtkusers</a><br><br></blockquote></div><br><br><br>-- <br>Randall Hand<br><a href="http://www.yeraze.com">http://www.yeraze.com
</a>