Вероятно, есть несколько способов сделать это.
Один из способов - просто нарисовать изображение, затем вызвать getImageData
Перейти к каждому пикселю в данных изображения иесли альфа-компонент <= 128, сделайте этот пиксель полностью прозрачным. </p>
Затем верните измененные imageData обратно с putImageData
Это из памяти, поэтому я мог что-то пропустить:
var imageData = ctx.getImageData(0,0,picwidth, picheight);
var pixels = imageData.data;
var numPixels = pixels.length;
ctx.clearRect(0, 0, can.width, can.height);
for (var i = 0; i < numPixels; i++) {
if (pixels[i*4+3] <= 128) pixels[i*4+3] = 0;
}
ctx.putImageData(imageData, 0, 0);