Home » Tipps & Tricks » Grafik » Grafikbearbeitung » Bitmap skaliert darstellen

Bitmap skaliert darstellen

Dieser Artikel demonstriert, wie Sie ein Bitmap skaliert auf einen Canvas zeichnen können. Ihnen steht dazu die Methode StretchDraw zur Verfügung.

StretchDraw erwartet zwei Parameter. Dem ersten Parameter muss das Rechteck übergeben werden, in dem das Bitmap gezeichnet werden soll. Sollte das Rechteck andere Ausmaße besitzen, wie das ursprüngliche Bitmap, wird es in der Größe angepasst. Dadurch kann es zu Verzerrungen in der Darstellung kommen. Dem zweiten Parameter wird das zu zeichnende Bitmap übergeben.

Im unten stehenden Beispiel wählt der Anwender über einen Dialog ein Bitmap aus, welches dann in halber Größe auf den Hintergrund des Formulars gezeichnet wird:

procedure TForm1.Button1Click(Sender: TObject);
var
Bmp: TBitmap;
begin
if OpenDialog1.Execute then
begin
   Bmp:= TBitmap.Create;
   try
     Bmp.LoadFromFile(OpenDialog1.Filename);
     Self.Canvas.StretchDraw(Rect(0,
                                  0,
                                  Bmp.Width div 2,
                                  Bmp.Height div 2),
                             Bmp);
   finally
     Bmp.Free;
   end;
end;
end;

Wird ein Bild stark vergrößert, verschlechtert sich die Bildqualität. Um diesen Effekt zu vermeiden, können Sie optimierte Stretch-Algorithmen verwenden. Diese finden Sie beispielsweise in der kostenlosen Grafikbibliothek „GraphicEx“ von Mike Lischke (http://www.soft-gems.net).

EKON 28