HTML5 Canvas DrawImage без альфа - PullRequest
       31

HTML5 Canvas DrawImage без альфа

1 голос
/ 16 августа 2011

Я хотел бы знать, возможно ли не использовать альфа-канал, но сохранять прозрачность. Что мне нужно, это рисовать или не рисовать пиксель (из моего файла PNG) в зависимости от значения альфа

Если альфа-канал> 128 рисует пиксель иначе не рисуй пиксель!

Спасибо в

1 Ответ

2 голосов
/ 16 августа 2011

Вероятно, есть несколько способов сделать это.

Один из способов - просто нарисовать изображение, затем вызвать 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);
...