Heim > Artikel > Web-Frontend > Implementieren Sie Greenscreen-Algorithmen mithilfe von JavaScript
Das grüne Hintergrundbild wurde geändert und durch einen beliebigen Effekt oder ein anderes Bild mit grüner Farbe ersetzt Bildschirmalgorithmus, auch Chroma-Key-Algorithmus genannt. Kurz gesagt, was wir tun, ist Tauschen Sie alle grünen Pixel im Vorwärtsbild mit ihren passenden Gegenstücken im Rückwärtsbild aus Hintergrundbild.
Außerdem müssen wir bedenken, dass die Größe des Ausgabebildes mit der Größe des Ausgabebildes übereinstimmen sollte Vorwärtsbild. Kopieren Sie im nächsten Schritt die Pixel aus dem Vorwärtsbild in das neue Bild Bild. Verwenden Sie passende Pixel aus dem Hintergrundbild, anstatt grüne Pixel zu kopieren.
Versäumen Sie nicht, die folgenden Quelldateien in Ihren HTML-Code einzubinden, bevor Sie Folgendes anwenden Code -
<script src=”https://www.dukelearntoprogram.com/course1/common/js/image/SimpleImage.js”></script>
Der zur Implementierung dieses Algorithmus erforderliche JavaScript-Code wird unten bereitgestellt. Um es zu verwenden, müssen Sie es erstellen Schreiben Sie Ihren eigenen HTML-Code.
Sie müssen diesen HTML-Code zum Element Ihres HTML-Dokuments hinzufügen.
<h1>Green Screen Algorithm Implementation using JavaScript with TutorialsPoint </h1> <canvas id="image1"></canvas> <canvas id="image2"></canvas> <br /> <p> First Image: <input type="file" id="myImageFile" multiple="false" onChange="frontimg()"> </p> <p> Background Image: <input type="file" id="bgImageFile" multiple="false" onChange="backimg()"> </p> <input type="button" value="Merge Image" onClick="merge()">
Als nächstes der CSS-Code im HTML-Dokument
<style> canvas { background: rgb(214, 235, 176); border: 1px solid rgb(13, 109, 160); width: 420px; height: 290px; margin: 30px; } h1{ color: rgb(13, 109, 160); } body { background-color: #bbb6ab; } </style>
Sie müssen den folgenden JavaScript-Code in das <script>-Tag Ihres HTML-Dokuments einfügen</script>
<script type="text/javascript"> let forwdImage = null; let secImage = null; // This function accepts an input of a forward picture function frontimg() { let fileInput = document.getElementById("myImageFile"); let canvas = document.getElementById("image1"); forwdImage = new SimpleImage(fileInput); forwdImage.drawTo(canvas); } // Background picture is output from this function function backimg() { let fileInput = document.getElementById("bgImageFile"); let canvas = document.getElementById("image2"); secImage = new SimpleImage(fileInput); secImage.drawTo(canvas); } // This function combines the two images and outputs the // merged image as the final result. The Green Screen // Algorithm is implemented function merge() { clear(); let image1 = document.getElementById("image1"); let outputImage = new SimpleImage( forwdImage.width, forwdImage.height); for (let pixel of forwdImage.values()) { if (pixel.getGreen() > pixel.getRed() + pixel.getBlue()) { let x = pixel.getX(); let y = pixel.getY(); let newPixel = secImage.getPixel(x, y); outputImage.setPixel(x, y, newPixel); } else { outputImage.setPixel(pixel.getX(), pixel.getY(), pixel); } } outputImage.drawTo(image1); } // The output and input from earlier // fetches are cleared by this function. function clear() { let image1 = document.getElementById("image1"); let image2 = document.getElementById("image2"); let context = image1.getContext("2d"); context.clearRect(0, 0, image1.width, image1.height); context = image2.getContext("2d"); context.clearRect(0, 0, image2.width, image2.height); } </script>
Lassen Sie uns nun den vollständigen Code überprüfen und im folgenden Code ausgeben.
<!DOCTYPE html> <html> <title>Implement Green Screen Algorithm using JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://www.dukelearntoprogram.com/course1/common/js/image/SimpleImage.js"></script> <style> canvas { background: rgb(214, 235, 176); border: 1px solid rgb(13, 109, 160); width: 420px; height: 290px; margin: 30px; } h1 { color: rgb(13, 109, 160); } body { background-color: #bbb6ab; } </style> </head> <body> <h1>Green Screen Algorithm Implementation using JavaScript with TutorialsPoint </h1> <canvas id="image1"></canvas> <canvas id="image2"></canvas> <br /> <p> First Image: <input type="file" id="myImageFile" multiple="false" onChange="frontimg()"> </p> <p> Background Image: <input type="file" id="bgImageFile" multiple="false" onChange="backimg()"> </p> <input type="button" value="Merge Image" onClick="merge()"> <script type="text/javascript"> let forwdImage = null; let secImage = null; // This function accepts an input of a forward picture function frontimg() { let fileInput = document.getElementById("myImageFile"); let canvas = document.getElementById("image1"); forwdImage = new SimpleImage(fileInput); forwdImage.drawTo(canvas); } // Background picture is output from this function function backimg() { let fileInput = document.getElementById("bgImageFile"); let canvas = document.getElementById("image2"); secImage = new SimpleImage(fileInput); secImage.drawTo(canvas); } // This function combines the two images and outputs the // merged image as the final result. The Green Screen // Algorithm is implemented function merge() { clear(); let image1 = document.getElementById("image1"); let outputImage = new SimpleImage( forwdImage.width, forwdImage.height); for (let pixel of forwdImage.values()) { if (pixel.getGreen() > pixel.getRed() + pixel.getBlue()) { let x = pixel.getX(); let y = pixel.getY(); let newPixel = secImage.getPixel(x, y); outputImage.setPixel(x, y, newPixel); } else { outputImage.setPixel(pixel.getX(), pixel.getY(), pixel); } } outputImage.drawTo(image1); } // The output and input from earlier // fetches are cleared by this function. function clear() { let image1 = document.getElementById("image1"); let image2 = document.getElementById("image2"); let context = image1.getContext("2d"); context.clearRect(0, 0, image1.width, image1.height); context = image2.getContext("2d"); context.clearRect(0, 0, image2.width, image2.height); } </script> </body> </html>
Sie sehen diesen Ausgabebildschirm, ohne Bilder hinzuzufügen.
Als nächstes sehen Sie nach dem Hinzufügen der Bilder „Erstes Bild“ und „Hintergrundbild“ diesen Ausgabebildschirm.
Jetzt sehen Sie die endgültige Ausgabe, nachdem Sie auf die Schaltfläche „Bilder zusammenführen“ geklickt haben. Beide Bilder sind Die Kombination ist unten dargestellt.
Zwei Bilder dienen als Eingabe für den Algorithmus. Das erste ist das erste Bild mit dem Hintergrund Grün, das zweite ist das Hintergrundbild, das anstelle von Grün verwendet werden sollte Hintergrund.
JavaScript kombiniert zwei Bilder, nachdem sie als Eingabe empfangen wurden; daher die Verzögerung Das Bild ersetzt den grünen Hintergrund des Vorwärtsbildes. Um das Grün umzusetzen Screening-Algorithmus, Code wird oben bereitgestellt.
Das obige ist der detaillierte Inhalt vonImplementieren Sie Greenscreen-Algorithmen mithilfe von JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!