Ich habe folgende beiden Prozeduren:
Delphi-Quellcode:
procedure TForm1.PreviewClick(Sender: TObject);
begin
if OpenDialog.Execute then begin
Original.Picture.LoadFromFile(OpenDialog.FileName);
Preview.Canvas.StretchDraw(Rect(0,0,Preview.Width, Preview.Height), Original.Picture.Graphic);
end;
end;
procedure TForm1.WidthChange(Sender: TObject);
begin
Preview.Width := Width.Value * 40;
Preview.Height := Height.Value * 40;
Preview.Canvas.StretchDraw(Rect(0,0,Preview.Width, Preview.Height), Original.Picture.Graphic);
end;
Preview ist ein Bild, welches Skalierbar ist und Original ist das Orginalbild in Originalgröße.
Width/Height sind SpinEDITs... nun zeichent er nur die 1600px² (lol) beginend von 0,0 neu, anstelle des ganzen Bildes!