Usuwanie z obrazka kolorów czerwonych, zielonych i niebieskich

Aby po kliknięciu przycisku Button1 z obrazka umieszczonego w komponencie Image1 zostały usunięte kolory czwerwone, zielone, niebieskie lub ich dowolna kombinacja wykonujemy dwie pętle for, które odczytują kolor każdego piksela obrazka, później aby np. usunąć z obrazka kolory niebieskie przypisujemy zmiennej b wartość 0: b = 0 (usuniecie kolorów zielonych: g = 0, usuniecie kolorów czerwonych: r = 0), a żeby np. kolory niebiskie pozostawić bez zmian przypisujemy zmiennej b wartosc otrzymana po wywołaniu funkcji Windows API GetBValue(): b = GetBValue() (kolory zielone bez zmian: g = GetGValue(), kolory czerwone bez zmian: r = GetRValue()), następnie za pomocą kolejnej funkcji Windows API RGB() zmieniamy kolor piksela. Poniższy przykład pozostawia tylko kolory niebieskie usuwając czerwone i zielone:

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 = 0;
         g = 0;
         b = GetBValue(Kolor);
         Image1->Picture->Bitmap->Canvas->Pixels[j][i] = RGB(r,g,b);
      }
}