Podział bitmapy na dwie części

Aby po kliknięciu przycisku Button1 podzielić bitmapę zapisaną w pliku c:\katalog\bitmapa.bmp na dwie części (przeciąć ją na pół w poziomie) i zapisać obie części do plików (nie zapomnij o podwójnym backslashu oddzielającym katalogi):

Unit1.cpp

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Graphics::TBitmap *Bitmapa = new Graphics::TBitmap;
   Bitmapa->LoadFromFile("c:\\katalog\\bitmapa.bmp");
   Graphics::TBitmap *Bmp1 = new Graphics::TBitmap;
   Graphics::TBitmap *Bmp2 = new Graphics::TBitmap;

   Bmp1->Width = Bitmapa->Width;
   Bmp1->Height = Bitmapa->Height / 2;
   Bmp2->Width = Bitmapa->Width;
   Bmp2->Height = Bitmapa->Height / 2;

   TRect Source1 = Rect(0, 0, Bitmapa->Width, Bitmapa->Height / 2);
   TRect Source2 = Rect(0, Bitmapa->Height / 2, Bitmapa->Width, Bitmapa->Height);
   TRect Destination1 = Rect(0, 0, Bmp1->Width, Bmp1->Height);
   TRect Destination2 = Rect(0, 0, Bmp2->Width, Bmp2->Height);

   Bmp1->Canvas->CopyRect(Destination1, Bitmapa->Canvas, Source1);
   Bmp2->Canvas->CopyRect(Destination2, Bitmapa->Canvas, Source2);

   Bmp1->SaveToFile("c:\\katalog\\bmp1.bmp");
   Bmp2->SaveToFile("c:\\katalog\\bmp2.bmp");

   delete Bitmapa, Bmp1, Bmp2;
}