<html>
<body>
Did you try using the SetHeaderSize method in vtkImageReader2 (the
superclass of vtkImageReader)?&nbsp; I know it isn't just specifying a
number of bytes to read, but using that and the SetDataExtent method
(also in vtkImageReader) should do the right thing.<br><br>
- Amy<br><br>
At 10:15 AM 5/31/2005, Randall Hand wrote:<br>
<blockquote type=cite class=cite cite="">Ok, I'm looking at this now
(computers are finally back online :) ), and I can't figure out how to
set the raw number of bytes to read.&nbsp; I see SetDataVOI, but nothing
to &quot;bypass&quot; that and specify a number of bytes.<br><br>
On 5/27/05, <b>Mathieu Malaterre</b>
&lt;<a href="mailto:mathieu.malaterre@kitware.com">
mathieu.malaterre@kitware.com</a>&gt; wrote: <br>

<dl>
<dd>Randall,<br><br>

<dd>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hum I believe you can read
those bytes but never use it... Could you <br>

<dd>try to read 3,840,384,800 bytes + 4 but set properly the dimension.
If<br>

<dd>you are lucky enough no test is done to check consistency of
datasize<br>

<dd>and dimension of data.<br><br>

<dd>My 2 cents,<br>

<dd>Mathieu<br><br>

<dd>Randall Hand wrote: <br>

<dd>&gt; Well, I have an addition 4 bytes at the end of the file to skip
as<br>

<dd>&gt; well.. I suppose I could postprocess &amp; write a new file
without these<br>

<dd>&gt; final 4 bytes, but that's gonna be pretty wasteful of disk
space.&nbsp; Is <br>

<dd>&gt; there a way to skip them?<br>

<dd>&gt;<br>

<dd>&gt;<br>

<dd>&gt;<br>

<dd>&gt; On 5/27/05, *Mathieu Malaterre*
&lt;<a href="mailto:mathieu.malaterre@kitware.com">
mathieu.malaterre@kitware.com</a><br>

<dd>&gt;
&lt;<a href="mailto:%20mathieu.malaterre@kitware.com" eudora="autourl">
mailto: mathieu.malaterre@kitware.com</a>&gt;&gt; wrote:<br>

<dd>&gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Randall,<br>

<dd>&gt;<br>

<dd>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Could you instead give vtkImageReader a try. Just specify<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; the lenght of<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; data you want to read: 3,840,384,800
bytes. By default vtkImageReader<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; start reading from the end. Thefore you
are garantee to skip a <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; header if<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; any (4 bytes in your case
apparently).<br>

<dd>&gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; HTH<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Mathieu<br>

<dd>&gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Randall Hand wrote:<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; I'm attempting to load a
simple &quot;Brick of Bytes (BoB)&quot; format <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; file into<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; VTK.&nbsp; It is
2191x2191x800 unsigned chars (3,840,384,800 bytes).<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; With 4<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; bytes at the beginning that I
have to skip (Gotta love fortran).&nbsp; My<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; code is like the following:
<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; if
(stat(argv[1], &amp;file_info) == -1) {<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perror(&quot;Unable
to stat file!\n\t&quot;);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
}<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; fptr
= fopen(argv[1], &quot;r&quot;); <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; if
((data = (char*)malloc(file_info.st_size)) == NULL) {<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perror(&quot;Unable
to allocate memory!\n\t&quot;);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
}<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
dataptr = data;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
fread(dataptr, 1, 4, fptr);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
dataptr += 4; <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
printf(&quot;\n\n&quot;);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
for(int i=0; i&lt;xdim; i++) {<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fread(dataptr,
ydim,zdim,&nbsp; fptr);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataptr += (ydim *
zdim);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
}<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
vtkImageImport *import = vtkImageImport::New();<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
import-&gt;AddObserver(vtkCommand::ProgressEvent, progress); <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
import-&gt;SetDataScalarTypeToUnsignedChar();<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
import-&gt;SetNumberOfScalarComponents(1);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
import-&gt;SetWholeExtent(1, xdim-1,<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&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;
1, ydim-1,<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&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;
1, zdim-1);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
import-&gt;SetDataExtentToWholeExtent();<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
import-&gt;SetImportVoidPointer(data + skip);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
vtkDataSetWriter *writer = vtkDataSetWriter::New(); <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
writer-&gt;SetInput(import-&gt;GetOutput());<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
writer-&gt;SetFileName(&quot;resulting.vtk&quot;);<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;
writer-&gt;Write();<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; When I run this, however, the
output VTK file only contains the<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; following:<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; # vtk DataFile Version
3.0<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; vtk output<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; ASCII<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; DATASET STRUCTURED_POINTS
<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; DIMENSIONS 2191 2191 800<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; SPACING 1 1 1<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; ORIGIN 1 1 1<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; No data is actually written
to the file.&nbsp; When I try to connect<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; this to <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; a rendering pipeline or start
querying the resulting vtkDataSet for<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; properties (Scalar ranges,
number of points, etc) I get strange<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp; results<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; and eventually I get
Segfault/Core dumps.&nbsp; Often times the number of <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; points listed comes out as a
large negative number, instead of the<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; 3.8bil that it should
be.<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; A stack trace of the core
dumps only reveals this:<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; [8:50:48am]% dbx
imageimport<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; dbx version 7.3.4
(86441_Nov11 MR) Nov 11 2002 11:31:55<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Core from signal SIGSEGV:
Segmentation violation<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; (dbx) where<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Thread 0x10000<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp; &gt;&nbsp; 0
vtkDataArrayTemplate&lt;unsigned<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;
char&gt;::ComputeScalarRange(int)(this<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; = 0xf4eb83c0, comp = 0)<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;
[&quot;/viz/home/rhand/src/ezViz/Utilities/VTK/Common/vtkDataArrayTemplate.txx&quot;:644,<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; 0x85f2758]<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; (dbx)<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; (dbx) quit<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; <br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; --<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Randall Hand<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
<a href="http://www.yeraze.com">http://www.yeraze.com</a><br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;
------------------------------------------------------------------------
<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
_______________________________________________<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; This is the private VTK
discussion list.<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Please keep messages
on-topic. Check the FAQ at:<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="http://www.vtk.org/Wiki/VTK_FAQ">
http://www.vtk.org/Wiki/VTK_FAQ</a><br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Follow this link to
subscribe/unsubscribe:<br>

<dd>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
<a href="http://www.vtk.org/mailman/listinfo/vtkusers">
http://www.vtk.org/mailman/listinfo/vtkusers </a><br>

<dd>&gt;<br>

<dd>&gt;<br>

<dd>&gt;<br>

<dd>&gt;<br>

<dd>&gt; --<br>

<dd>&gt; Randall Hand<br>

<dd>&gt; <a href="http://www.yeraze.com">http://www.yeraze.com</a>
&lt;<a href="http://www.yeraze.com/" eudora="autourl">
http://www.yeraze.com</a>&gt;<br><br>

</dl><br><br>
<br>
-- <br>
Randall Hand<br>
<a href="http://www.yeraze.com">http://www.yeraze.com</a> <br>
_______________________________________________<br>
This is the private VTK discussion list. <br>
Please keep messages on-topic. Check the FAQ at:
<a href="http://www.vtk.org/Wiki/VTK_FAQ" eudora="autourl">
http://www.vtk.org/Wiki/VTK_FAQ</a><br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" eudora="autourl">
http://www.vtk.org/mailman/listinfo/vtkusers</a></blockquote></body>
</html>