Delphi - Bitmap invertálása

forráskód letöltése
Egy egyszerű trükköt felhasználva lehetőségünk nyílik arra, hogy egy tetszőleges BMP-t invertálva jelenítsünk meg. Mellékelt cikkben ennek járunk utána. Ez a lehetőség a TCanvas objektum CopyMode property-ében rejlik. Ha itt a cmDstInvert értéket állítjuk be, akkor minden inverzben jelenik. Ezek után már nincs más dolgunk, mint az eredeti képet rámásolva önmagára egyszerűen csak kirajzoljuk.
procedure InvertBitmap(bmp: TBitmap);
var
  r: TRect;
begin
  r:=Rect(0, 0, bmp.Width, bmp.Height);
  bmp.Canvas.CopyMode:=cmDstInvert;
  bmp.Canvas.CopyRect(r , bmp.Canvas, r);
end;