The image data for a table based image consists of a sequence of sub-blocks, of size at most 255 bytes each, containing an index into the active color table, for each pixel in the image. Pixel indices are in order of left to right and from top to bottom. Each index must be within the range of the size of the active color table, starting at 0. See http://www.w3.org/Graphics/GIF/spec-gif89a.txt section 22
GifComponents (Module: GifComponents) Version: 0.1.3594.26453
Constructor. Adapted from John Cristy's ImageMagick. Decodes LZW image data into pixel array and returns table-based image data - see http://www.w3.org/Graphics/GIF/spec-gif89a.txt section 22. Simon Bridewell - July-August 2009 Extracted this logic from GifDecoder.cs Added logical properties Derive from GifComponent in order to make use of component status Use stronger types than just byte where appropriate
A special Clear code is defined which resets all compression / decompression parameters and tables to a start-up state. The value of this code is 2 ^ code size. For example if the code size indicated was 4 (image was 4 bits/pixel) the Clear code value would be 16 (10000 binary). The Clear code can appear at any point in the image data stream and therefore requires the LZW algorithm to process succeeding codes as if a new data stream was starting. Encoders should output a Clear code as the first code of each image data stream.
Gets the status of this component, consisting of its error state and any associated error message.(Inherited from GifComponent.)
Gets the combined error states of this component and all its child components.(Inherited from GifComponent.)
Gets the data blocks as read from the input stream.
Gets the code which explicitly marks the end of the image data in the stream.
Gets any error message associated with the component's error state.(Inherited from GifComponent.)
Gets the member of the Gif.Components.ErrorState enumeration held within the ComponentStatus property.(Inherited from GifComponent.)
Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.(Inherited from Object.)
Serves as a hash function for a particular type. GetHashCode()()() is suitable for use in hashing algorithms and data structures like a hash table.(Inherited from Object.)
Gets the Type of the current instance.(Inherited from Object.)
Gets the size in bits of the first code to add to the dictionary.
Determines the initial number of bits used for LZW codes in the image data. This is read from the first available byte in the input stream.
Creates a shallow copy of the current Object.(Inherited from Object.)
Gets an array of indices to colours in the active colour table, representing the pixels of a frame in a GIF data stream.
Sets the ComponentStatus property of thie GifComponent.(Inherited from GifComponent.)
Tests whether the error state of this component or any of its member components contains the supplied member of the ErrorState enumeration.(Inherited from GifComponent.)
Gets a string representation of the error status of this component and its subcomponents.(Inherited from GifComponent.)
Writes this component to the supplied output stream. TODO: maybe use LzwEncoder to do this?(Overrides GifComponent.WriteToStream(Stream).)