BitMiracle.LibTiff.Classic.Tiff.fetchDirectory C# (CSharp) Method

fetchDirectory() private method

Reads IFD structure from the specified offset.
private fetchDirectory ( uint diroff, TiffDirEntry &pdir, uint &nextdiroff ) : short
diroff uint
pdir TiffDirEntry
nextdiroff uint
return short
        private short fetchDirectory(uint diroff, out TiffDirEntry[] pdir, out uint nextdiroff)
        {
            const string module = "fetchDirectory";

            m_diroff = diroff;
            nextdiroff = 0;

            short dircount;
            TiffDirEntry[] dir = null;
            pdir = null;

            if (!seekOK(m_diroff))
            {
                ErrorExt(this, m_clientdata, module,
                    "{0}: Seek error accessing TIFF directory", m_name);
                return 0;
            }

            if (!readShortOK(out dircount))
            {
                ErrorExt(this, m_clientdata, module,
                    "{0}: Can not read TIFF directory count", m_name);
                return 0;
            }

            if ((m_flags & TiffFlags.SWAB) == TiffFlags.SWAB)
                SwabShort(ref dircount);

            dir = new TiffDirEntry [dircount];
            if (!readDirEntryOk(dir, dircount))
            {
                ErrorExt(this, m_clientdata, module, "{0}: Can not read TIFF directory", m_name);
                return 0;
            }

            // Read offset to next directory for sequential scans.
            int temp;
            readIntOK(out temp);
            nextdiroff = (uint)temp;

            if ((m_flags & TiffFlags.SWAB) == TiffFlags.SWAB)
            {
                temp = (int)nextdiroff;
                SwabLong(ref temp);
                nextdiroff = (uint)temp;
            }

            pdir = dir;
            return dircount;
        }
Tiff