Classes and functions for easy handling of raw images (interface images)
Represents a graphical image.

This descendant of TFPCustomImage stores the image data as TRawImage, and is therefore able to interchange images directly with the LCL interfaces.

A large number of the protected methods (GetColorxxxxxx and SetColorxxxxxx) deal with direct interface to the operating system at the pixel level

    Usage examples:

        1. Loading a .xpm file into a TBitmap:

          var
            BmpHnd,MaskHnd: HBitmap;
            Bitmap1: TBitmap;
            IntfImg1: TLazIntfImage;
            Reader: TLazReaderXPM;
          begin
            // create a bitmap (or use an existing one)
            Bitmap1:=TBitmap.Create;
            // create the raw image
            IntfImg1:=TLazIntfImage.Create(0,0);
            // get the description for the current screen (bitsperpixel, depth, ...)
            IntfImg1.GetDescriptionFromDevice(0);
            // create the XPM reader
            Reader:=TLazReaderXPM.Create;
            // load the image
            IntfImg1.LoadFromFile('filename.xpm',Reader);
            // create the bitmap handles
            IntfImg1.CreateBitmap(BmpHnd,MaskHnd);
            // apply handles to the Bitmap1
            Bitmap1.Handle:=BmpHnd;
            Bitmap1.MaskHandle:=MaskHnd;
            // clean up
            Reader.Free;
            IntfImg1.Free;
            // do something with the Bitmap1
            ...
          end;

        2. Saving a TBitmap to a .xpm file:

          var
            BmpHnd,MaskHnd: HBitmap;
            Bitmap1: TBitmap;
            IntfImg1: TLazIntfImage;
            Writer: TLazWriterXPM;
          begin
            ...
            // create the raw image
            IntfImg1:=TLazIntfImage.Create(0,0);
            // load the raw image from the bitmap handles
            IntfImg1.LoadFromBitmap(Bitmap1.Handle,Bitmap1.MaskHandle);
            // create the XPM writer
            Writer:=TLazWriterXPM.Create;
            // save image to file
            IntfImg1.SaveToFile('filename.xpm',Writer);
            // clean up
            Writer.Free;
            IntfImg1.Free;
            ...
          end;
        }

SetSize
- define the height and width of the image
CheckDescription
- looks at the supplied Image Description record and returns True if it matches the actual properties of the image
Generates an exception if an error is encountered in the image description
LoadFromDevice
- loads the image from the device with specified handle
LoadFromBitmap
- loads the image from a Bitmap
GetXYDataPostion
- finds the position of the raw image
Yes, it really is spelt 'Postion'
GetXYMaskPostion
- finds the position of the raw image mask
PixelData
- the raw data for the current pixel
MaskData
- the raw mask data for the current pixel
DataDescription
- the raw description record for the current image
TColors
- the colours available for the present position
TLazIntfImageMask
- applying a mask at the Raw Image level
Image
- the image to which masking is applied
TLazAVLPalette
- this descendant of TFPPalette uses an AVL tree for speed up
TLazReaderXPM
- this is a FPImage reader for xpm images
TLazWriterXPM
- this is a FPImage writer for xpm images
TLazReaderBMP
- This is an improved FPImage reader for bmp images
CreateBitmaps
- generates a Bitmap from the image data
AlphaFromMask
- gets the alpha value from the mask if AKeepAlpha is True (default condition)
Masked
- whether the image mask applies at the current position
ILazImageReader
- extension to TFPCustomImageReader to initialize a TRawImgeDescription based on the image to be read
TLazReaderIconDIB
- this is a FPImage reader for a single DIB from an icon file
Returns an pointer to the scanline raw data.