Tworzenie negatywu obrazka

Aby po kliknięciu przycisku Button1 obrazek umieszczony w komponencie Image1 został przekształcony na negatyw wykonujemy dwie pętle for, które odczytują kolor każdego piksela obrazka, następnie za pomocą funkcji Windows API GetRValue(), GetGValue() i GetBValue() odczytujemy poszczególne składowe koloru (Red, Green, Blue), które zostają odjęte od liczby 255 (aby uzyskać efekt negatywu), następnie za pomocą kolejnej funkcji Windows API RGB() zmieniamy kolor piksela:

Unit1.cpp

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   for (int i=0; i<=Image1->Height-1; i++)
      for (int j=0; j<=Image1->Width-1; j++)
      {
         TColor Kolor = Image1->Picture->Bitmap->Canvas->Pixels[j][i];
         byte r,g,b;
         r = 255 - GetRValue(Kolor);
         g = 255 - GetGValue(Kolor);
         b = 255 - GetBValue(Kolor);
         Image1->Picture->Bitmap->Canvas->Pixels[j][i] = RGB(r,g,b);
      }
}