В былые времена тоже игрался канвой, пилил свой паинт -
демо,
кодъ
Потом, конечно, забросил )
Рисование полупрозрачным цветом делается так. Допустим, цвет
rgba(R, G, B, A). При нажатии мыши ставишь поверх своей основной канвы другую канву, у которой
background: transparent и
opacity: A. И вот на ней просто рисуешь цветом
rgb(R, G, B). То есть рисуется всё как обычно, а за счет opacity выглядит полупрозрачным. Потом, при отпускании мыши, по готовому набору точек рисуется линия на основной канве, однократно и цветом
rgba(R, G, B, A). В моём случае даже не просто рисуется, а упаковывается в команду с методами undo/redo, выполняется и кладется в историю, чтобы уметь в повтор/отмену. Но можно и просто нарисовать.