Unit BGRAGifFormat
Description
Structure and algorithms to read/write GIF files
Uses
Overview
Classes, Interfaces, Objects and Records
Name | Description |
---|---|
Class EColorQuantizerMissing |
Exception raised when no color quantizer is available |
Record TGIFData |
Data describing a GIF file |
Packed Record TGIFExtensionBlock |
GIF extension block |
Packed Record TGIFGraphicControlExtension |
GIF graphic control extension |
Packed Record TGIFImageDescriptor |
Image descriptor of GIF frame |
Packed Record TGIFScreenDescriptor |
Screen descriptor for GIF rendering |
Record TGifSubImage |
One image in the GIF animation |
Packed Record TPackedRGBTriple |
8-bit RGB values |
Functions and Procedures
function BGRAToPackedRgbTriple(color: TBGRAPixel): TPackedRGBTriple; |
function CeilLn2(AValue: Integer): integer; |
procedure GIFDecodeLZW(AStream: TStream; AImage: TBGRACustomBitmap; const APalette: ArrayOfTBGRAPixel; transcolorIndex: integer; interlaced: boolean); |
procedure GIFEncodeLZW(AStream: TStream; AImageData: PByte; AImageWidth, AImageHeight: integer; ABitDepth: byte); |
function GIFLoadFromStream(stream: TStream; MaxImageCount: integer = maxLongint): TGIFData; |
procedure GIFSaveToStream(AData: TGifData; Stream: TStream; AQuantizerFactory: TBGRAColorQuantizerAny; ADitheringAlgorithm: TDitheringAlgorithm); |
function PackedRgbTribleToBGRA(rgb: TPackedRGBTriple): TBGRAPixel; |
Types
TDisposeMode = (...); |
TGIFSignature = packed array[1..6] of char; |
TGifSubImageArray = array of TGifSubImage; |
Constants
GIFBlockTerminator = $00; |
GIFCodeTableSize = 4096; |
GIFExtensionIntroducer = $21; |
GIFFileTerminator = $3B; |
GIFGraphicControlExtension_DisposeModeShift = 2; |
GIFGraphicControlExtension_FunctionCode = $f9; |
GIFGraphicControlExtension_TransparentFlag = $01; |
GIFGraphicControlExtension_UserInputFlag = $02; |
GIFImageDescriptor_InterlacedFlag = $40; |
GIFImageDescriptor_LocalColorSortFlag = $20; |
GIFImageDescriptor_LocalColorTableFlag = $80; |
GIFImageIntroducer = $2c; |
GIFInterlacedStart: array[1..4] of longint = (0, 4, 2, 1); |
GIFInterlacedStep: array[1..4] of longint = (8, 8, 4, 2); |
GIFScreenDescriptor_GlobalColorSortFlag = $08; |
GIFScreenDescriptor_GlobalColorTableFlag = $80; |
NetscapeApplicationIdentifier = 'NETSCAPE2.0'; |
NetscapeSubBlockIdBuffering = 2; |
NetscapeSubBlockIdLoopCount = 1; |
Description
Functions and Procedures
function BGRAToPackedRgbTriple(color: TBGRAPixel): TPackedRGBTriple; |
This item has no description. |
function CeilLn2(AValue: Integer): integer; |
This item has no description. |
procedure GIFDecodeLZW(AStream: TStream; AImage: TBGRACustomBitmap; const APalette: ArrayOfTBGRAPixel; transcolorIndex: integer; interlaced: boolean); |
This item has no description. |
procedure GIFEncodeLZW(AStream: TStream; AImageData: PByte; AImageWidth, AImageHeight: integer; ABitDepth: byte); |
Encode an image supplied as an sequence of bytes, from left to right and top to bottom. Adapted from the work of Udo Schmal, http://www.gocher.me/FPWriteGIF |
function GIFLoadFromStream(stream: TStream; MaxImageCount: integer = maxLongint): TGIFData; |
This item has no description. |
procedure GIFSaveToStream(AData: TGifData; Stream: TStream; AQuantizerFactory: TBGRAColorQuantizerAny; ADitheringAlgorithm: TDitheringAlgorithm); |
This item has no description. |
function PackedRgbTribleToBGRA(rgb: TPackedRGBTriple): TBGRAPixel; |
This item has no description. |
Types
TDisposeMode = (...); |
What to do when finishing a frame and starting the next one Values
|
TGIFSignature = packed array[1..6] of char; |
Signature for a GIF file |
TGifSubImageArray = array of TGifSubImage; |
This item has no description. |
Constants
GIFBlockTerminator = $00; |
This item has no description. |
GIFCodeTableSize = 4096; |
This item has no description. |
GIFExtensionIntroducer = $21; |
This item has no description. |
GIFFileTerminator = $3B; |
This item has no description. |
GIFGraphicControlExtension_DisposeModeShift = 2; |
This item has no description. |
GIFGraphicControlExtension_FunctionCode = $f9; |
wait for user input at this frame (ignored) |
GIFGraphicControlExtension_TransparentFlag = $01; |
This item has no description. |
GIFGraphicControlExtension_UserInputFlag = $02; |
transparent color index is provided |
GIFImageDescriptor_InterlacedFlag = $40; |
local palette is present |
GIFImageDescriptor_LocalColorSortFlag = $20; |
image data is interlaced |
GIFImageDescriptor_LocalColorTableFlag = $80; |
This item has no description. |
GIFImageIntroducer = $2c; |
global palette colors are sorted by importance |
GIFInterlacedStart: array[1..4] of longint = (0, 4, 2, 1); |
local palette colors are sorted by importance |
GIFInterlacedStep: array[1..4] of longint = (8, 8, 4, 2); |
This item has no description. |
GIFScreenDescriptor_GlobalColorSortFlag = $08; |
global palette is present |
GIFScreenDescriptor_GlobalColorTableFlag = $80; |
This item has no description. |
NetscapeApplicationIdentifier = 'NETSCAPE2.0'; |
This item has no description. |
NetscapeSubBlockIdBuffering = 2; |
This item has no description. |
NetscapeSubBlockIdLoopCount = 1; |
This item has no description. |