0
情況基本上是用一個基本的線性漸變畫出幾個移動的原始形狀,使它們在透明的空白畫布上重疊。他們在哪裏重疊的alpha通道值的變化(即,他們流血)。試圖在沒有get/putImageData的情況下在畫布上操作alpha?
最終階段將每個像素的阿爾法取整,所以取決於它與哪個像素更接近。
用的imageData很容易做到 -
var ctxImage = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height);
var ctxData = ctxImage.data;
for (var i = 0; i < ctxData.length; i += 4) {
ctxData[i + 3] = ctxData[i + 3] > 128 ? 255 : 0;
// or ctxData[i + 3] = Math.round(ctxData[i + 3]/255) * 255;
}
ctx.putImageData(ctxImage, 0, 0);
作爲該getImageData在CPU時間非常昂貴的,我希望能制定出使用globalCompositeOperation一個解決方案,但似乎無法以任何方式獲得它的工作,任何想法?
這就是我的想法 - 但本來希望我可以接近一些東西 - 一點半透明不是壞事: - / – Rycochet 2015-02-11 07:11:00