[Overview][Types][Classes][Procedures and functions][Index] Reference for unit 'IntfGraphics' (#lcl)

TLazIntfImage

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

TLazIntfImage - This descendant of TFPCustomImage stores its image data as raw images and is therefore able to interchange images directly with the LCL interfaces.

Declaration

Source position: intfgraphics.pas line 112

type TLazIntfImage = class(TFPCustomImage)

protected

  FGetInternalColorProc: TLazIntfImageGetPixelProc;

  FSetInternalColorProc: TLazIntfImageSetPixelProc;

  procedure SetUsePalette(); override;

  

  procedure SetInternalColor(); override;

  

  function GetInternalColor(); override;

  

  procedure SetInternalPixel(); override;

  

  function GetInternalPixel(); override;

  

  procedure FreeData; virtual;

  procedure SetDataDescription(); virtual;

  

  procedure ChooseGetSetColorFunctions; virtual;

  

  procedure ChooseRawBitsProc();

  

  procedure GetColor_Generic();

  procedure GetColor_RGBA_NoPalette();

  procedure GetColor_RGB_NoPalette();

  procedure GetColor_Gray_NoPalette();

  procedure GetColor_NULL();

  

  procedure GetColor_BPP32_A8R8G8B8_BIO_TTB();

  procedure GetColor_BPP32_A8B8G8R8_BIO_TTB();

  procedure GetColor_BPP32_A8G8R8B8_BIO_TTB();

  procedure GetColor_BPP32_A8G8B8R8_BIO_TTB();

  procedure GetColor_BPP32_A8R8B8G8_BIO_TTB();

  procedure GetColor_BPP32_A8B8R8G8_BIO_TTB();

  procedure GetColor_BPP32_B8G8R8A8_BIO_TTB();

  procedure GetColor_BPP32_R8G8B8A8_BIO_TTB();

  procedure GetColor_BPP32_G8B8R8A8_BIO_TTB();

  procedure GetColor_BPP32_G8R8B8A8_BIO_TTB();

  procedure GetColor_BPP32_B8R8G8A8_BIO_TTB();

  procedure GetColor_BPP32_R8B8G8A8_BIO_TTB();

  procedure GetColor_BPP32_X8R8G8B8_BIO_TTB();

  procedure GetColor_BPP32_X8B8G8R8_BIO_TTB();

  procedure GetColor_BPP32_X8G8R8B8_BIO_TTB();

  procedure GetColor_BPP32_X8G8B8R8_BIO_TTB();

  procedure GetColor_BPP32_X8R8B8G8_BIO_TTB();

  procedure GetColor_BPP32_X8B8R8G8_BIO_TTB();

  procedure GetColor_BPP32_B8G8R8X8_BIO_TTB();

  procedure GetColor_BPP32_R8G8B8X8_BIO_TTB();

  procedure GetColor_BPP32_G8B8R8X8_BIO_TTB();

  procedure GetColor_BPP32_G8R8B8X8_BIO_TTB();

  procedure GetColor_BPP32_B8R8G8X8_BIO_TTB();

  procedure GetColor_BPP32_R8B8G8X8_BIO_TTB();

  procedure GetColor_BPP24_B8G8R8_BIO_TTB();

  procedure GetColor_BPP24_R8G8B8_BIO_TTB();

  procedure GetColor_BPP24_G8B8R8_BIO_TTB();

  procedure GetColor_BPP24_G8R8B8_BIO_TTB();

  procedure GetColor_BPP24_B8R8G8_BIO_TTB();

  procedure GetColor_BPP24_R8B8G8_BIO_TTB();

  procedure GetMask_Generic();

  procedure SetColor_Generic();

  procedure SetColor_RGBA_NoPalette();

  procedure SetColor_RGB_NoPalette();

  procedure SetColor_Gray_NoPalette();

  procedure SetColor_NULL();

  

  procedure SetColor_BPP32_A8R8G8B8_BIO_TTB();

  procedure SetColor_BPP32_A8B8G8R8_BIO_TTB();

  procedure SetColor_BPP32_A8G8R8B8_BIO_TTB();

  procedure SetColor_BPP32_A8G8B8R8_BIO_TTB();

  procedure SetColor_BPP32_A8R8B8G8_BIO_TTB();

  procedure SetColor_BPP32_A8B8R8G8_BIO_TTB();

  procedure SetColor_BPP32_B8G8R8A8_BIO_TTB();

  procedure SetColor_BPP32_R8G8B8A8_BIO_TTB();

  procedure SetColor_BPP32_G8B8R8A8_BIO_TTB();

  procedure SetColor_BPP32_G8R8B8A8_BIO_TTB();

  procedure SetColor_BPP32_B8R8G8A8_BIO_TTB();

  procedure SetColor_BPP32_R8B8G8A8_BIO_TTB();

  procedure SetColor_BPP32_X8R8G8B8_BIO_TTB();

  procedure SetColor_BPP32_X8B8G8R8_BIO_TTB();

  procedure SetColor_BPP32_X8G8R8B8_BIO_TTB();

  procedure SetColor_BPP32_X8G8B8R8_BIO_TTB();

  procedure SetColor_BPP32_X8R8B8G8_BIO_TTB();

  procedure SetColor_BPP32_X8B8R8G8_BIO_TTB();

  procedure SetColor_BPP32_B8G8R8X8_BIO_TTB();

  procedure SetColor_BPP32_R8G8B8X8_BIO_TTB();

  procedure SetColor_BPP32_G8B8R8X8_BIO_TTB();

  procedure SetColor_BPP32_G8R8B8X8_BIO_TTB();

  procedure SetColor_BPP32_B8R8G8X8_BIO_TTB();

  procedure SetColor_BPP32_R8B8G8X8_BIO_TTB();

  procedure SetColor_BPP24_B8G8R8_BIO_TTB();

  procedure SetColor_BPP24_R8G8B8_BIO_TTB();

  procedure SetColor_BPP24_G8B8R8_BIO_TTB();

  procedure SetColor_BPP24_G8R8B8_BIO_TTB();

  procedure SetColor_BPP24_B8R8G8_BIO_TTB();

  procedure SetColor_BPP24_R8B8G8_BIO_TTB();

  procedure SetMask_Generic();

public

  procedure Create();

  

  destructor Destroy; override;

  

  procedure BeginUpdate;

  

  procedure EndUpdate;

  

  procedure SetSize(); override;

  

SetSize - define the height and width of the image

  function CheckDescription(); virtual;

  

CheckDescription - looks at the supplied Image Description record and returns True if it matches the actual properties of the image

  procedure LoadFromDevice(); virtual;

  

LoadFromDevice - loads the image from the device with specified handle

  procedure LoadFromBitmap(); virtual;

  

LoadFromBitmap - loads the image from a Bitmap

  procedure CreateBitmaps(); virtual;

  

CreateBitmaps - generates a Bitmap from the image data

  procedure SetRawImage(); virtual;

  

  procedure GetRawImage(); virtual;

  

  procedure FillPixels(); virtual;

  

  procedure CopyPixels(); virtual;

  procedure AlphaFromMask();

  

AlphaFromMask - gets the alpha value from the mask if AKeepAlpha is True (default condition)

  procedure GetXYDataPosition();

  procedure GetXYMaskPosition();

  function GetDataLineStart();

  procedure CreateData; virtual;

  function HasTransparency; virtual;

  function HasMask; virtual;

  property PixelData: PByte; [r]

  

PixelData - the raw data for the current pixel

  property MaskData: PByte; [r]

  

MaskData - the raw mask data for the current pixel

  property DataDescription: TRawImageDescription; [rw]

  

DataDescription - the raw description record for the current image

  property TColors: TGraphicsColor; [rw]

  

TColors - the colours available for the present position

  property Masked: Boolean; [rw]

  

Masked - whether the image mask applies at the current position

end;

Inheritance

TLazIntfImage

  

TLazIntfImage - This descendant of TFPCustomImage stores its image data as raw images and is therefore able to interchange images directly with the LCL interfaces.

|

TFPCustomImage

|

TObject

Description

TLazIntfImage - This descendant of TFPCustomImage stores its image data as raw images and is therefore able to interchange images directly with the LCL interfaces.

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;
    }
 

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

The latest version of this document can be found at lazarus-ccr.sourceforge.net.