Hi,
hierfür gibt es zwei sehr interessante Funktionen, BitBlt und StretchBlt. Letzteres funktioniert fast analog zu BitBlt, aber du könntest dein Bild halt auch strecken/stauchen. Für einen Zuschnitt brauchst du das ja eher nicht. Beide finden sich in der
Unit Windows. Ein Rechteck kopierst du wie folgt:
Delphi-Quellcode:
var SourceBitmap : TBitmap;
TargetBitmap : TBitmap;
Cut : TRect;
...
begin
// kopiert das Rechteck Cut aus der SourceBitmap in die TargetBitmap
// Dabei wird die Größe von TargetBitmap der größe des Ausschnitts angepasst.
TargetBitmap.Width := Cut.Right - Cut.Left;
TargetBitmap.Height := Cut.Bottom - Cut.Top;
BitBlt(TargetBitmap.Canvas.Handle, 0, 0, Cut.Right, Cut.Bottom, SourceBitmap.Canvas.Handle, Cut.Left, Cut.Top, SRCCOPY);
SourceBitmap.Canvas.Refresh;
end;
Mit SaveToFile kannst du dann natürlich auch das TargetBitmap in ein File speichern. Auf die Bitmap eines Image kannst du mit Image.Picture.Bitmap zugreifen.
Gruß Der Unwissende