Ich mache eine Seite, wo ich möchte, dass die Leute Bilder überlagern und dann auf meinen Server hochladen können.Ausblenden/Anzeigen von Bildern in Canvas
Ich habe die Seite zum Hochladen erstellt, und ich habe zwei Testbilder in eine Leinwand eingefügt. Das einzige Problem ist es, diese beiden Bilder über eine Schaltfläche oder ein Kontrollkästchen ausblenden oder anzeigen zu können.
ich eine Testseite hier hochgeladen haben: http://kaosmos.no/bokbodentest2/upload.html
Dies ist mein Code für die Leinwand:
<input type="checkbox"/>Check to hide img1
<input type="checkbox"/>Check to hide img2
<img class="bilder" id="img1" src="test1.png">
<img class="bilder" id="img2" src="test2.png">
<canvas id="canvas"></canvas>
<script type="text/javascript">
var img1 = document.getElementById('img1');
var img2 = document.getElementById('img2');
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
canvas.width = img1.width;
canvas.height = img1.height;
context.globalAlpha = 1.0;
context.drawImage(img1, 0, 0);
context.globalAlpha = 0.5; //Remove if pngs have alpha
context.drawImage(img2, 0, 0);
</script>
und CSS:
canvas {
border: solid;
overflow: hidden;
}
canvas img {
width: 600px;
position: absolute;
mix-blend-mode: multiply;
}
.bilder {
display: none;
}
Das display: none; In der "Bilder" -Klasse ist so, dass die Bilder außerhalb der Leinwand nicht sichtbar sind. Wie mache ich eine Funktion zum Ausblenden/Anzeigen dieser Bilder?
Jede Hilfe wird sehr geschätzt!
Möchten Sie sie * auf der Leinwand * oder außerhalb davon anzeigen/verbergen? –
Sobald das Bild in die Zeichenfläche gezeichnet wurde, ist es nicht mehr mit dem ursprünglichen Element im DOM verknüpft. Wenn Sie es auf der Arbeitsfläche ausblenden möchten, müssen Sie die Zeichenfläche ohne den Aufruf context.drawImage neu zeichnen. –
@MattMokary Ich möchte es auf der Leinwand zeigen/verstecken, so dass der Benutzer seine eigene Kombination "komponieren" kann. – Kaosmos