PutImage

Z Delphi & Pascal (česká wiki)
Verze z 4. 10. 2012, 17:01, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Unit Graph)
Skočit na navigaci Skočit na vyhledávání

Přenese bitový obraz na obrazovku.

Deklarace
procedure PutImage(X, Y: Integer; var BitMap; BitBlt: Word);
Režim
Reálný, Chráněný
Poznámky
(X, Y) je levý horní roh obdélníkové oblasti obrazovky. BitMap je parametr bez typu, který obsahuje výšku a šířku oblasti a bitový obrázek, který bude přenesen na obrazovku. BitBlt určuje binární operátor, kterého se k umístění obrázku na obrazovku použije.
Každá konstanta odpovídá binární operaci. Například:
PutImage (X, Y, BitMap, NormalPut)
umístí obrázek uložený v BitMap do (X, Y) pomocí instrukce assembleru MOV pro každý bajt obrázku.
Obdobně PutImage(X, Y, BitMap, XORPut) umístí obrázek uložený v BitMap do (X, Y) pomocí instrukce assembleru XOR pro každý bajt obrázku. Toto je často používaná animační technika pro "vlečení" obrázku po obrazovce.
PutImage(X, Y, BitMap, NotPut) zinvertuje bity v BitMap a poté umístí obrázek uložený v BitMap do (X, Y) pomocí instrukce assembleru [[MOV] pro každý bajt obrázku. Tím se zobrazí inverzní podoba původního obrázku BitMap.
Omezení
Je nutno být v grafickém režimu.
Viz také
GetImage
ImageSize


Vzorový příklad

{Getimage.PAS}
{Vzorový příklad pro proceduru GetImage.}
uses Graph;
var
  Gd, Gm: Integer;
  P: Pointer;
  Size: Word;
begin
  Gd := Detect;
  InitGraph(Gd, Gm, ' ');
  if GraphResult <> grOk then
    Halt(1);
  Bar(0, 0, GetMaxX, GetMaxY);
  Size := ImageSize(10, 20, 30, 40);
  GetMem(P, Size);   { Alokování paměti v haldě }
  GetImage(10, 20, 30, 40, P^);
  Readln;
  ClearDevice;
  PutImage(100, 100, P^, NormalPut);
  Readln;
  CloseGraph;
end.