Home » Tipps & Tricks » Grafik » Zeichnen » Bitmap gekachelt darstellen

Bitmap gekachelt darstellen

Möchten Sie eine Fläche mit einem Bild ausfüllen, ohne es zu strecken, müssen Sie es kacheln. Dabei wird das Bild nebeneinander und übereinander kopiert. Folgende Prozedur übernimmt diese Aufgabe. Dem ersten Parameter muss das Bild in Form eines TBitmap-Objekts übergeben werden. Dieses Bitmap wird dann auf dem Ziel-Canvas, der der Prozedur als zweiten Parameter übergeben werden muss, gekachelt:

procedure TileGraphic(const ATile: TBitmap; const ATarget: TCanvas);
var
X, Y: Integer;
begin
Y:=0;

while Y < ATarget.ClipRect.Bottom  do
begin
   X:=0;

   while X < ATarget.ClipRect.Right do
   begin
     ATarget.Draw(X, Y, ATile);
     Inc(X, ATile.Width);
   end;

   Inc(Y,ATile.Height);
end;
end;

Aufgerufen werden kann die Prozedur beispielsweise so:

procedure TForm1.Button1Click(Sender: TObject);
var
Bmp: TBitmap;
begin
Bmp:=TBitmap.Create;
try
   Bmp.LoadFromFile('c:\bild.bmp');

   TileGraphic(Bmp, {Form1.}Canvas);
finally
   Bmp.Free;
end;
end;

Als Quelle wird hier das Bitmap mit dem Dateinamen ‚C:bild.bmp‘ verwendet und auf den Hintergrund des Formulares gezeichnet.