Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: einfache frage (bestimmt) : Picture zuschneiden

  Alt 2. Apr 2006, 12:14
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
  Mit Zitat antworten Zitat