import java.io.FileOutputStream;
public class ExtractImageRegion
{
public static void main(String[] args) throws Exception
{
String filename = args[0];
ImageRegionReader reader = new ImageRegionReader();
reader.SetFileName( filename );
if (!reader.ReadInformation()) return;
File f = reader.GetFile();
UIntArrayType dims = ImageHelper.GetDimensionsValue(f);
PixelFormat pf = ImageHelper.GetPixelFormatValue (f);
int pixelsize = pf.GetPixelSize();
long buffer_length = dims.get(0) * dims.get(1) * pixelsize;
byte[] buffer = new byte[ (int)buffer_length ];
BoxRegion box = new BoxRegion();
for (int z = 0; z < dims.get(2); z++)
{
box.SetDomain(0, dims.get(0) - 1, 0, dims.get(1) - 1, z, z);
reader.SetRegion( box );
if (reader.ReadIntoBuffer(buffer, buffer_length))
{
FileOutputStream fos = new FileOutputStream("/tmp/frame.raw");
fos.write(buffer);
fos.close();
}
else
{
throw new Exception("can't read pixels error");
}
}
}
}