Цвет маски определяет конечную непрозрачность маскируемого объекта в этой точке.Компоненты R, G, B и A цвета маски объединяются в формулу для определения значения яркости, которое используется для установки окончательной прозрачности, что маска будет этой точкой.Так, например, если маска красная, окончательный результат маскирования будет полупрозрачным.
Невозможно сделать цветной объект сплошной (не полупрозрачной) маской.Это будет делать только полный белый цвет.
Обновление
Предполагается, что у вас есть внешнее изображение SVG, которое выглядит следующим образом:
<svg viewBox="0 0 100 50">
<polygon id="a" points="30,5 70,20 75,40 20,20" fill="lightblue"/>
<circle id="b" cx="50" cy="25" r="15" fill="gold"/>
<circle id="c" cx="60" cy="35" r="10" fill="red" stroke="blue" stroke-width="4"/>
</svg>
Вы можете превратить это в "маску" версию, добавив три строки в начале вашего SVG.
<svg viewBox="0 0 100 50">
<filter id="blacken"><feFlood flood-color="black"/><feComposite operator="in" in2="SourceGraphic"/></filter>
<style>svg :not(#maskbg) { filter: url(#blacken); }</style>
<rect id="maskbg" x="-100%" y="-100%" width="300%" height="300%" fill="white"/>
<polygon id="a" points="30,5 70,20 75,40 20,20" fill="lightblue"/>
<circle id="b" cx="50" cy="25" r="15" fill="gold"/>
<circle id="c" cx="60" cy="35" r="10" fill="red" stroke="blue" stroke-width="4"/>
</svg>
Это то, что можно легко написать в сценарии.Этот метод должен работать почти для всех SVG.
После того, как вы создали все варианты маски, вы можете применить их, используя mask-image
.
https://developer.mozilla.org/en-US/docs/Web/CSS/mask-image