Есть несколько способов.
Сначала атрибут globalAlpha
контекста.
Как вы и просите в заголовке, это позволит устанавливать прозрачность независимо от заливки или обводки.
Затем вы можете использовать getImageData
в точке, чтобы узнать цвет и сохранить эту информацию, очистить эту область с помощью clearRect
, установить globalAlpha
, а затем перерисовать эту область в соответствии с сохраненным вами цветом. *
Конечно, вам вообще не нужен globalAlpha
. Вы также можете сделать это выше, и вместо того, чтобы устанавливать глобальную альфа, просто измените альфа цвета, который вы сохранили.
Если вы хотите сделать большую, сложную область холста более прозрачной, вам нужно изменить глобальную альфу, а затем нарисовать холст на себе , используя drawImage.
Вот пример этого. Я рисую два прямоугольника, затем делаю прямоугольную область между ними более прозрачной.