PutImage(integer,integer,Void,word) Method

A megadott, téglalap alakú grafikus képernyőrészletet a megadott memóriaterületről kirajzolja az (X1, Y1) pontba.

Namespace: Graph
procedure PutImage(const X1, Y1: integer; var Image; BitBlt: word);

Parameters

X1
Type: integer

A kirajzolandó téglalap bal felső sarkának X koordinátája.

Y1
Type: integer

A kirajzolandó téglalap bal felső sarkának Y koordinátája.

Image
Type: System.Void

A memóriaterület, ami tartalmazza a korábban lementett képet.

BitBlt
Type: word

A másolás módja (lásd alább).

A PutImage kis képek esetén (~100x100) gyors, nagyobbak esetén viszont lassú. Egymás után ismételt hívásokban, főleg nagy képek mellett lehetőleg ne használja. A másolási mód jelentősen lassíthat a dolgon a CopyPut és a NotPut relatíve gyors, az összes többi legalább megduplázza a rajzoláshoz szükséges időt.

A használható másolási módok:

BitBlt
Assembly művelet

CopyPut = 0

MOV

XorPut = 1

XOR

OrPut = 2

OR

AndPut = 3

AND

NotPut = 4

NOT

procedure OffsetImage;
var
  Image: Pointer;
  Size: integer;
begin
  Size := ImageSize(100, 100, 200, 200);
  if Size > 0 then begin
    GetMem(Image, Size);
    GetImage(100, 100, 200, 200, Image^);
    PutImage(150, 150, Image^, CopyPut);
    FreeMem(Image, Size);
  end;
end;

Reference