попробуй использовать как тут. Пример ниже. Инвертирует цвета махом 1280*1024 картинку. Может поможет.
Code
procedure InvertBitmap(Bitmap: TBitmap);
type
TRGB = record
B, G, R: Byte;
end;
pRGB = ^TRGB;
var
x, y: Integer;
Dest: pRGB;
begin
Bitmap.PixelFormat := pf24Bit;
for y := 0 to Bitmap.Height - 1 do
begin
Dest := Bitmap.ScanLine[y];
for x := 0 to Bitmap.Width - 1 do
begin
with Dest^ do
begin
R := 255 - R;
G := 255 - G;
B := 255 - B;
end;
Inc(Dest);
end;
end;
form1.Image1.Picture.Bitmap.Assign(Bitmap);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
InvertBitmap(Image1.Picture.Bitmap);
end;