private bool fetchByteArray(TiffDirEntry dir, byte[] v)
{
if (dir.tdir_count <= 4)
{
// Extract data from offset field.
int count = dir.tdir_count;
if (m_header.tiff_magic == TIFF_BIGENDIAN)
{
if (count == 4)
v[3] = (byte)(dir.tdir_offset & 0xff);
if (count >= 3)
v[2] = (byte)((dir.tdir_offset >> 8) & 0xff);
if (count >= 2)
v[1] = (byte)((dir.tdir_offset >> 16) & 0xff);
if (count >= 1)
v[0] = (byte)(dir.tdir_offset >> 24);
}
else
{
if (count == 4)
v[3] = (byte)(dir.tdir_offset >> 24);
if (count >= 3)
v[2] = (byte)((dir.tdir_offset >> 16) & 0xff);
if (count >= 2)
v[1] = (byte)((dir.tdir_offset >> 8) & 0xff);
if (count >= 1)
v[0] = (byte)(dir.tdir_offset & 0xff);
}
return true;
}
return (fetchData(dir, v) != 0);
}