Zrobiłem coś takiego
Kod
<canvas id="blok" width="500" height="500">
error
</canvas>
<canvas id = 'buff' style="display:none" />
<script type="text/javascript">
var buff = document.getElementById('buff');
var canvas = document.getElementById('blok');
var ctx = canvas.getContext('2d');
var buffctx = buff.getContext('2d');
var img = new Image();
img.src="b.bmp";
ctx.drawImage(img, 0,0);
img = new Image();
img.src="a.bmp";
buffctx.drawImage(img,0,0);
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
var imgdata = buffctx.getImageData(0, 0, img.width, img.height);
var pix = imgdata.data;
for (var i = 0, n = pix.length; i < n; i += 4) {
if (pix[i] + pix[i + 1] + pix[i + 2] == 0)
{
pix[i] = 0
pix[i+1] = 0
pix[i+2] = 0
pix[i+3] = 127
}
}
ctx.putImageData(imgdata, 30, 0);
</script>
Plik a.bmp:

Plik b.bmp:

Wynik:

Co robię źle?
Wiem, żę kod jest zamieszany, ale to tylko próbny kod, który oczysczę przed wrzuceniem na strone.
EDIT: Nie ważne, rozwiązałem problem.