Leinwand: Maske ein Bild und speichern Sie Ihre alpha-Kanal?

Hier ist, was ich versuche zu tun:

  1. Bild A und Bild B. Bild B ist ein schwarz /weiß Bild mit der Maske.
  2. Ersetzen Bild Einen alpha-Kanal mit B Bild der rot-Kanal.
  3. Draw image C auf die Leinwand.
  4. Zeichnen Sie Ein Bild auf dem oberen Bild C.

Alles scheint ok, bis Sie zu Schritt 4. Bild C ist nicht sichtbar, und wo Ein Bild sollte transparent sein, gibt es weiße Farbe.

cx.putImageData(imageA, 0, 0);
var resultData = cx.getImageData(0, 0, view.width, view.height);

for (var h=0; h<resultData.data.length; h+=4) {
    resultData.data[h+3] = imageB.data[h];
}

cx.putImageData(imageC, 0, 0);
cx.putImageData(resultData, 0, 0);
Schreibe einen Kommentar