procedure InvertColorBmp (bmp:TBitmap);
begin
InvertRect(bmp.canvas.handle,Rect
(0,0,bmp.width,bmp.height));
bmp.Assign(bmp);
end;
PS:
-je n'ai pas testé la vitesse de la procédure
-on peut inverser des parties (de forme quelconque) du bmp (càd par rognage) :
Exemple de rognage avec ellipse :
procedure InvertEllipseColorBmp (bmp:TBitmap);
var
rgn1:HRgn;
begin
rgn1:=CreateEllipticRgn(
0,0,bmp.width,bmp.height);
InvertRgn(bmp.canvas.handle,rgn1);
bmp.Assign(bmp);
end;