You are here: NITF Support > The NITF Reader

## The NITF Reader

The `NITFImageManager` and `NITFImageReader` classes are used to read NITF files.

Unlike the other image readers, the `NITFImageManager` class must be used to construct an `NITFImageReader` object for a given image segment via the createReader method. The `NITFImageReader` object behaves like any other image reader in all other respects. The Reference Manual contains several examples of how to read an NITF image.

The following restrictions apply to the reading of NITF imagery:

- Only uncompressed (raw), simple JPEG, and JPEG 2000 segments are supported. (Note: JPEG files with explicit quantization tables are not supported.)
- All modes (blocked, masked, etc) are supported.
- Images must be of datatypes, colorspaces, etc, that the SDK normally supports (typically unsigned 8- and 16-bit data, of 1, 3, or n bands).
- Color lookup tables (LUTs) are not supported.
- All `CLEVEL`s are supported.
- Label, text, graphic/symbol, DES, and RES segments are recognized and parsed, but access to the data within them is not supported.
- When reading a NITF image, all file header and image segment fields are stored in the metadata for the image (see "NITF Input Metadata").
- Each TRE is read and stored as a single binary metadata tag/value pair (again, see "NITF Input Metadata"). Some TREs are recognized, however, and have their constituent fields extracted into tag/value pairs as well, including: `J2KLRA`, `USE00A`, `STDIDC`, `PIAIMC`, and `RPC00A/B`.