Я создаю двухслойный холст. Нижний слой - скриншот. Верхний слой - это поверхность для рисования. Я разобрался с основной ручкой. Я хочу создать эффект выделения, то есть большую линию с заданной непрозрачностью 0,5 или менее. Проблема, с которой я сталкиваюсь, заключается в том, что, когда я рисую над одной и той же областью несколько раз, цвета накладываются друг на друга. В конце концов, подсветка станет твердой и заблокирует нижний слой. Я хочу равномерно выделить исходный цвет и иметь возможность рисовать поверх существующих бликов без добавления цветов.
Я возился с globalCompositeOperation, но не могу получить желаемые результаты с настройками, которые я пробовал. Ниже я пытаюсь color
и использую настройку globalAlpha. Я также пытался использовать rgba
цвета. Я также пытался использовать только один слой, но я хотел иметь возможность очищать каракули и легко стирать, поэтому я выбрал два. Часть моего исходного кода изображена на картинке, но я не уверен, насколько полезен код для моего вопроса. Я могу предоставить больше, если это необходимо. Спасибо.
![enter image description here](https://i.stack.imgur.com/uVU4l.png)
РЕДАКТИРОВАТЬ: После использования multiply
в качестве globalCompositionOperation
цвет #FF0
он же желтый прекрасно работает, среди других цветов. Некоторые цвета по-прежнему имеют оригинальный эффект построения на черный, например синий, который я использую на нижнем рисунке. Как примечание, эти картинки не для того, чтобы делиться моим кодом, они должны показать эффект подсветки. В качестве примечания, это приложение Electron, поэтому в настоящее время используется Chromium ~ 61.
![enter image description here](https://i.stack.imgur.com/XQMDG.png)