ImageGear v26.3 - Updated
Developer Guide / File Formats and Compressions / File Formats / Metadata Structures / GIF Metadata Structure
In This Topic
    GIF Metadata Structure
    In This Topic

    GIF file format is complex and has different non-image data that can be stored before and after an image data. The GIF metadata design allows you to read/write any GIF non-image data and prevents from misunderstanding with GIF extensions storing order.

    The following metadata are always saved before an image data:

    • GIF Logical Screen Descriptor metadata level
    • GIF Image Descriptor metadata level
    • GIF Global Color Table metadata level
    • GIF Local Color Table metadata level

    All other GIF Extensions Metadata are saved before an image data.

    ImageGear represents simpler GIF metadata by single metadata items, and more complex metadata by subtrees. Thus, there are two main GIF metadata levels in ImageGear:

    • GIF Metadata Level
    • GIF Extensions Metadata

    This section provides information about the following:

    GIF Metadata Level

    Name Id Type Value Type Value Value Length Read Only
    GIF header level
    GIF Logical Screen Descriptor level
    GIF Image Descriptor level
    optional Global and/or Local Color Tables and
    optional GIF Extensions levels (extensions before image)

    GIF Header Metadata GIF Metadata Level

    Name Id Type Value Type Value Value Length Read Only
    "GIFHeader" 0x10 Tree 0 NULL 0 TRUE

    GIF Header Level

    Name Id Type Value Type Value Value Length Read Only
    "Signature" 0x101 Leaf STRING "GIF" 3 TRUE
    "Version" 0x102 Leaf STRING 3 TRUE

    GIF Logical Screen Descriptor Metadata GIF Metadata Level

    Name Id Type Value Type Value Value Length Read Only
    "LogicalScreenDescriptor" 0x20 Tree

    GIF Logical Screen Descriptor Level

    Name Id Type Value Type Value Value Length Read Only
    "LogicalScreenWidth" 0x201 Leaf UINT16 1 FALSE
    "LogicalScreenHeight" 0x202 Leaf UINT16 1 FALSE
    "Fields" 0x205 Tree
    "GlobalColorTableFlag" 0x206 Leaf BOOL 1 FALSE
    "ColorResolution" 0x207 Leaf UINT8 1 FALSE
    "SortFlag" 0x208 Leaf BOOL 1 FALSE
    "GlobalColorTableSize" 0x209 Leaf UINT8 1 FALSE
    "Fields" 0x205 Tree
    "BackgroundColorIndex" 0x203 Leaf UINT8 FALSE
    "PixelAspectRatio" 0x204 Leaf UINT8 FALSE

    GIF Global Color Table Metadata

    Name Id Type Value Type Value Value Length Read Only
    "GlobalColorTable" 0x30 Leaf RAW_DATA Variable TRUE

    GIF Image Descriptor Metadata GIF Metadata Level

    Name Id Type Value Type Value Value Length Read Only
    "ImageDescriptor" 0x2C Tree

    GIF Image Descriptor Level

    Name Id Type Value Type Value Value Length Read Only
    "ImageLeftPosition" 0x2C1 Leaf UINT16 1 FALSE
    "ImageTopPosition" 0x2C2 Leaf UINT16 1 FALSE
    "ImageWidth" 0x2C3 Leaf 1 FALSE
    "ImageHeight" 0x2C4 Leaf 1 FALSE
    "Fields" 0x2C5 Tree

    GIF Image Descriptor Fields Level

    Name Id Type Value Type Value Value Length Read Only
    "LocalColorTableFlag" 0x2C6 Leaf BOOL 1 FALSE
    "InterlaceFlag" 0x2C7 Leaf BOOL 1 FALSE
    "SortFlag" 0x2C8 Leaf BOOL 1 FALSE
    "LocalColorTableSize" 0x2C9 Leaf UINT8 1 FALSE

    GIF Local Color Table Metadata

    Name Id Type Value Type Value Value Length Read Only
    "LocalColorTable" 0x40 Leaf RAW_DATA Variable TRUE

    GIF Extensions Metadata GIF Graphic Control Extension Metadata

    GIF Metadata Level

    Name Id Type Value Type Value Value Length Read Only
    "GraphicControlExtension" 0xF9 Tree

    GIF Graphic Control Extension Level

    Name Id Type Value Type Value Value Length Read Only
    "Fields" 0xF91 Tree
    "DisposalMethod" 0xF92 Leaf UINT8 1 FALSE
    "UserInputFlag" 0xF93 Leaf BOOL 1 FALSE
    "TransparentColorFlag" 0xF94 Leaf BOOL 1 FALSE
    "Fields" 0xF91 Tree
    "DelayTime" 0xF95 Leaf UINT16 1 FALSE
    "TransparentColorIndex" 0xF96 Leaf UINT8 1 FALSE

    GIF Comment Extension Metadata

    Name Id Type Value Type Value Value Length Read Only
    "CommentExtension" 0xFE Leaf STRING Variable TRUE

    GIF Application Extension Metadata GIF Metadata Level

    Name Id Type Value Type Value Value Length Read Only
    "ApplicationExtension" 0xFF Tree

    GIF Application Extension Level

    Name Id Type Value Type Value Value Length Read Only
    "ApplicationIdentifier" 0xFF1 Leaf STRING 8 FALSE
    "Appl.AuthenticationCode" 0xFF2 Leaf UINT8 4 FALSE
    "ApplicationData" 0xFF3 Leaf RAW_DATA Variable FALSE

    GIF Plain Text Extension Metadata GIF Metadata Level

    Name Id Type Value Type Value Value Length Read Only
    "PlainTextExtension" 0x01 Tree 0 NULL 0 TRUE

    GIF Plain Text Extension Level

    Name Id Type Value Type Value Value Length Read Only
    "TextGridLeftPosition" 0x11 Leaf UINT16 1 FALSE
    "TextGridTopPosition" 0x12 Leaf UINT16 1 FALSE
    "TextGridWidth" 0x13 Leaf UINT16 1 FALSE
    "TextGridHeight" 0x14 Leaf UINT16 1 FALSE
    "CharacterCellWidth" 0x15 Leaf UINT8 1 FALSE
    "CharacterCellHeight" 0x16 Leaf UINT8 1 FALSE
    "TextForegroundColorIndex" 0x17 Leaf UINT8 1 FALSE
    "TextBackgroundColorIndex" 0x18 Leaf UINT8 1 FALSE
    "PlainTextData" 0x19 Leaf STRING Variable FALSE

    GIF Extensions After Image Metadata GIF Metadata Level

    Name Id Type Value Type Value Value Length Read Only
    "AfterImageExtensions" 0xFFF Tree

    GIF Extensions After Image Level

    Name Id Type Value Type Value Value Length Read Only
    One or more GIF extension levels