TIEBitmap.VirtualBitmapProvider
Declaration
property VirtualBitmapProvider: TObject;
Description
Specifies a bitmap content provider. The assigned object will be de-allocated when TIEBitmap destruction, assigning Nil or replacing it with a new object.
Using this property it is possible to create a bitmap without allocating memory. When the image (or part of it) needs to be displayed a method will be called.
This is an alternative way to
OnRenderVirtualPixel.
At this time, only classes inherited from the abstract class
TIEVirtualBitmapProvider are supported.
Example 1
ImageEnView1.IEBitmap.VirtualBitmapProvider := TIESlippyMap.Create();
with TIESlippyMap(ImageEnView1.IEBitmap.VirtualBitmapProvider) do
begin
// move to London
Latitude := 51.503614574056016;
Longitude := -0.12774750793460043;
// location at bitmap center
PointPosition := Point(ImageEnView1.IEBitmap.Width div 2, ImageEnView1.IEBitmap.Height div 2);
// zoom
Zoom := 14;
end;
ImageEnView1.Update();
Example 2
type TMyRenderer = class(TIEVirtualBitmapProvider)
public
procedure Render(Container: TIEBitmap; DestWidth: integer; DestHeight: integer; DestScanlines: PPointerArray; DestX1, DestY1, DestX2, DestY2: integer; SrcCols, SrcRows: PInteger; Transparency: integer; RenderOperation: TIERenderOperation; Opacity: double); override;
function GetSegment(Container: TIEBitmap; Row: integer; Col: integer; Width: integer): pointer; override;
end;
procedure TMyRenderer.Render(Container: TIEBitmap; DestWidth: integer; DestHeight: integer; DestScanlines: PPointerArray; DestX1, DestY1, DestX2, DestY2: integer; SrcCols, SrcRows: PInteger; Transparency: integer; RenderOperation: TIERenderOperation; Opacity: double);
begin
...application specific...
end;
function TMyRenderer.GetSegment(Container: TIEBitmap; Row: integer; Col: integer; Width: integer): pointer;
begin
...application specific...
end;
// assign TMyRenderer to ImageEnView1.IEBitmap
ImageEnView1.IEBitmap.VirtualBitmapProvider := TMyRenderer.Create();
ImageEnView1.Update();
See Also
◼OnRenderVirtualPixel◼TIESlippyMap