Zum Hauptinhalt springen

So reinigen Sie Canvas – einfache und effektive Möglichkeiten

Canvas ist ein leistungsfähiges Werkzeug zum Erstellen von Webseiten-Grafiken. Gleichzeitig kann das Löschen eines Canvas-Elements für einige Entwickler zu Schwierigkeiten führen. In diesem Artikel werden wir uns einige einfache und effektive Möglichkeiten zum Reinigen von Canvas ansehen, um Ihnen zu helfen, das gewünschte Ergebnis ohne unnötigen Aufwand zu erzielen.

Der erste Weg ist die Verwendung der clearRect() -Methode. Diese Methode löscht den angegebenen Canvas–Bereich, der durch zwei Koordinatenpaare oben-links (x, y) und unten-rechts (x, y) definiert ist. Um beispielsweise den gesamten Canvas zu löschen, können Sie die Koordinaten (0, 0) und (Canvas) angeben.width, Canvas.height).

Die zweite Möglichkeit besteht darin, die width-Eigenschaft zu verwenden. Wir können den Wert dieser Eigenschaft auf sich selbst setzen, um die gesamte Leinwand zu löschen. Auf diese Weise werden alle darauf gezeichneten grafischen Elemente entfernt. Die Canvas-Abmessungen bleiben jedoch erhalten.

Der dritte Weg ist die Verwendung der toDataURL() -Methode. Wenn Sie diese Methode aufrufen, wird eine Zeichenfolge zurückgegeben, die den Canvas-Inhalt als Bild im Daten-URL-Format darstellt. Dann können wir den Wert der src-Eigenschaft des Bildes auf den resultierenden Wert festlegen. Dadurch werden die Canvas vollständig gelöscht und die Abmessungen des Elements aktualisiert.

So entfernen Sie Canvas-Inhalte - effektive Methoden

Es gibt mehrere effektive Methoden, um den Canvas-Inhalt zu entfernen und ihn zur späteren Verwendung zu bereinigen.

    clearRect() -Methode: Mit dieser Methode können Sie den Canvas-Inhalt entfernen, indem Sie die Koordinaten und die Breite/Höhe des zu bereinigenden Bereichs angeben. Zum Beispiel:

const canvas = document.getElementById('myCanvas');const ctx = canvas.getContext('2d');ctx.clearRect(0, 0, canvas.width, canvas.height);
const canvas = document.getElementById('myCanvas');const ctx = canvas.getContext('2d');ctx.fillStyle = 'white';ctx.fillRect(0, 0, canvas.width, canvas.height);
const canvas = document.getElementById('myCanvas');const ctx = canvas.getContext('2d');const buffer = document.createElement('canvas');buffer.width = canvas.width;buffer.height = canvas.height;const bufferCtx = buffer.getContext('2d');bufferCtx.clearRect(0, 0, buffer.width, buffer.height);ctx.drawImage(buffer, 0, 0);

Wählen Sie die richtige Methode für Ihre Aufgabe aus und löschen Sie Canvas-Inhalte mit Leichtigkeit!

Verwenden der clearRect() -Methode

Die Syntax für die Verwendung der clearRect() -Methode lautet wie folgt:

MethodeAngabeDie Beschreibung
clearRect() x , y , width , height Entfernt ein Canvas-Fragment, das an den Koordinaten ( x , y ) beginnt und eine Breite von width und eine Höhe von height aufweist.

Um beispielsweise die Leinwand vollständig zu bereinigen, können Sie den folgenden Code verwenden:

const canvas = document.getElementById('canvas');const ctx = canvas.getContext('2d');ctx.clearRect(0, 0, canvas.width, canvas.height);

In diesem Beispiel verwenden wir die clearRect() -Methode mit Koordinaten (0, 0), die die obere linke Ecke der Leinwand bezeichnen. Dabei werden die Breite und Höhe auf die aktuellen Leinwandgrößen festgelegt (abgeleitet mit den Canvas-Eigenschaften.width und canvas.height ).

Die clearRect() -Methode ist daher einfach zu verwenden und ermöglicht es Ihnen, die Leinwand von allen Inhalten zu bereinigen, sodass sie bereit ist, neue Elemente zu zeichnen.

So reinigen Sie Canvas durch Ändern der Breite und Höhe

Dazu müssen Sie mit JavaScript auf das Canvas-Element zugreifen. Anschließend können Sie die Eigenschaft verwenden canvas.width um die Breite zu ändern und canvas.height - um die Höhe zu ändern.

Nachdem Sie die neuen Werte festgelegt haben, wird das Canvas-Element gelöscht und kann verwendet werden. Alle darauf gezeichneten Formen und Bilder werden gelöscht.

Mit dem folgenden JavaScript-Code können Sie beispielsweise Canvas löschen, indem Sie die neue Breite und Höhe auf 0 Pixel festlegen:

const canvas = document.getElementById('canvas');
canvas.width = 0;
canvas.height = 0;

Dieser Code setzt die Canvas-Bemaßungen auf Null und entfernt alle darauf gezeichneten Elemente.

Das Reinigen von Canvas durch Ändern der Breite und Höhe ist eine einfache und effektive Methode, mit der Sie vor dem Zeichnen neuer Objekte einen sauberen und leeren Canvas erstellen können.

Verwenden der clear() -Methode zum Bereinigen von Canvas

Die Verwendung der clear() -Methode ist einfach genug. Zunächst müssen Sie den Canvas-Kontext mithilfe der getContext() -Methode abrufen. Als nächstes rufen Sie die clear() -Methode für diesen Kontext auf:

const canvas = document.getElementById('myCanvas');const context = canvas.getContext('2d');context.clear();

Die parameterlose clear() -Methode löscht die gesamte Leinwand, entfernt alle Objekte und gibt die Leinwand in ihren ursprünglichen Zustand zurück. Als Ergebnis wird alles, was auf Leinwand gezeichnet wurde, verschwinden.

Es ist auch möglich, die clear() -Methode zu verwenden, um Canvas teilweise zu bereinigen. Übergeben Sie dazu Parameter an die clear() -Methode, die den rechteckigen Bereich angeben, den Sie löschen möchten:

const canvas = document.getElementById('myCanvas');const context = canvas.getContext('2d');context.clearRect(x, y, width, height);

Wobei x und y die Koordinaten der oberen linken Ecke des rechteckigen Bereichs sind und width und height die Breite und Höhe dieses Bereichs sind. Auf diese Weise wird nur der angegebene rechteckige Bereich auf der Leinwand gelöscht.

Die clear() -Methode ist eine einfache und bequeme Möglichkeit, Canvas zu bereinigen, sodass Sie die angezeigten Objekte ganz oder teilweise leicht entfernen können.

Löschen von Canvas mit der toDataURL() -Methode

Die toDataURL() -Methode ist ein nützliches Werkzeug zum Bereinigen von Canvas. Diese Methode konvertiert den Canvas-Inhalt in ein URL-Datenformat, das als Bildquelle für andere HTML-Elemente verwendet werden kann.

Befolgen Sie die folgenden Schritte, um die Canvas-Bereinigung mit der toDataURL() -Methode durchzuführen:

  1. Erhalten Sie einen Verweis auf das Canvas-Element, das Sie bereinigen möchten.
  2. Rufen Sie die toDataURL() -Methode für dieses Canvas-Element auf. Das Ergebnis ist eine URL-Datenzeile, die den Inhalt der Leinwand darstellt.
  3. Legen Sie den Wert der src-Eigenschaft für das Bild oder den Hintergrund eines anderen HTML-Elements auf die resultierende URL-Datenzeile fest.

var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.clearRect(0, 0, canvas.width, canvas.height);
var dataURL = canvas.toDataURL();
document.getElementById('myImage').src = dataURL;

In diesem Beispiel wird der Canvas-Inhalt gelöscht, und die resultierenden URL-Daten werden verwendet, um das Bild in ein Element mit der ID myImage einzufügen.

Zuweisen einer neuen Farbe zum Reinigen von Canvas

Dazu können Sie die Methode verwenden fillStyle canvas-Kontext. Mit dieser Methode können Sie eine Farbe, einen Farbverlauf oder ein Füllmuster für Formen festlegen, einschließlich der Leinwandhintergrundfarbe.

Bevor Sie die Methode aufrufen clearRect() um die Leinwand zu bereinigen, müssen Sie dem Hintergrund mithilfe der Methode eine neue Farbe zuweisen fillStyle und legen Sie ein Rechteck fest, dessen Koordinaten und Abmessungen mit den Leinwandgrößen übereinstimmen. Zum Beispiel:

let canvas = document.getElementById("myCanvas");
let ctx = canvas.getContext("2d");

ctx.fillStyle = "blue";
ctx.fillRect(0, 0, canvas.width, canvas.height);

// Als nächstes kommt das Zeichnen auf der gereinigten Leinwand

Im obigen Beispiel wird nach dem Zuweisen der Farbe "blue" zu fillStyle und wenn Sie die gesamte Leinwand mit einem Rechteck füllen, können Sie beginnen, neue Elemente auf der "gereinigten" Leinwand zu zeichnen.

Das Zuweisen einer neuen Farbe zum Löschen von Canvas bietet daher mehr Möglichkeiten zum Festlegen eines Hintergrunds, einer Form oder eines anderen Farbeffekts, bevor Sie mit dem Zeichnen neuer Elemente beginnen.

Löschen von Canvas über die drawImage() -Methode

Sie können ein leeres Bild oder ein anderes leeres Bild verwenden. Die gesamte Leinwand wird mit schwarzer Farbe gefüllt, was als Reinigung betrachtet wird.

const canvas = document.getElementById('myCanvas');const context = canvas.getContext('2d');function clearCanvas()

Wie Sie aus dem obigen Code sehen können, für die Bereinigung

wir erstellen ein neues emptyImage-Bild und setzen seine Quelle auf eine leere Zeichenfolge. Dann verwenden wir die drawImage() -Methode, um diese Leere auf der Leinwand zu zeichnen, beginnend an den Koordinaten (0, 0) und bis zum Endpunkt (Breite und Höhe ). Auf diese Weise wird das Ganze mit schwarzer Farbe gefüllt, wodurch es gereinigt wird.

Verwenden der fillRect() -Methode zum Bereinigen von Canvas

Um die fillRect() -Methode zu verwenden, müssen Sie ihre Syntax kennen und die erforderlichen Parameter an die fillRect() -Methode übergeben:

context.fillRect( x, y, width, height )

  • x - die x-Koordinate der oberen linken Ecke des Rechtecks;
  • y - die y-Koordinate der oberen linken Ecke des Rechtecks;
  • width - breite des Rechtecks;
  • height - höhe des Rechtecks.

Wenn Sie die x- und y-Koordinaten auf 0 setzen und die Breite und Höhe des Canvas als width bzw. height angeben, können Sie die fillRect() -Methode verwenden, um das Canvas-Element vollständig zu bereinigen.

const canvas = document.getElementById("myCanvas");const context = canvas.getContext("2d");context.fillRect(0, 0, canvas.width, canvas.height);

Der obige Code füllt das gesamte Canvas mit der ausgewählten Farbe aus, die die gesamte Fläche einnimmt und auf diese Weise bereinigt.

Verwendung der fillRect() -Methode in Verbindung mit anderen Funktionen canvas. Sie können verschiedene Effekte und Animationen erstellen. Beachten Sie, dass nach der Verwendung der fillRect() -Methode alle vorherigen Canvas-Inhalte verloren gehen. Seien Sie also vorsichtig, wenn Sie sie verwenden.

Löschen von Canvas durch Ändern der globalCompositeOperation-Eigenschaft

Um canvas zu bereinigen, können wir den Wert der globalCompositeOperation-Eigenschaft auf "destination-out" setzen. Dies bedeutet, dass das neue Muster aus dem bereits auf der Leinwand gezeichneten Muster ausgeschnitten wird, was zu einer effektiven Reinigung führt.

const canvas = document.getElementById('canvas');

const context = canvas.getContext('2d');

context.fillRect(0, 0, canvas.width, canvas.height);

// jetzt werden alle neuen Zeichnungen löschen, was bereits gezeichnet wurde

// zeichne eine neue Zeichnung

context.fillRect(50, 50, 100, 100);

// das Muster auf der Leinwand wurde gelöscht, das rote Quadrat ist verschwunden

Auf diese Weise können wir, indem wir den Wert der globalCompositeOperation-Eigenschaft ändern, Canvas effektiv bereinigen, bereits gezeichnete Elemente entfernen und neue hinzufügen.

Beachten Sie jedoch, dass dieser Wert so lange gültig ist, bis er geändert wird oder die Kontexteigenschaften zurückgesetzt werden.