У меня есть эталонное изображение эффекта, которого я пытаюсь добиться с помощью SVG.
В Photoshop этого эффекта можно достичь, используя 100% непрозрачность с режимом наложения, установленным на «умножение».
Цвета имеют шестнадцатеричные значения:
красный: #EA312F, синий: #3A5BA6 и перекрывающаяся область: #35111F
Я пробовал несколько подходов с использованием фильтров SVG для достижения аналогичного эффекта, но я изо всех сил пытаюсь понять, как режимы наложения вычисляют значения.
- Исходное растровое изображение Photoshop
- SVG с использованием только фигур без фильтров
- SVG с использованием множественного фильтра на вертикальной полосе
- SVG с использованием множественного фильтра и непрозрачности на вертикальной полосе
Вы можете увидеть код SVG для каждого из них в http://jsbin.com/iPePuvoD/1/edit
Я действительно изо всех сил пытаюсь понять, как лучше всего подобрать синий цвет вертикальной полосы и цвет перекрывающейся области.
Каждую из этих фигур я также хотел бы анимировать с помощью такой библиотеки, как http://snapsvg.io/, поэтому Я надеюсь полагаться исключительно на фильтры, а не на кадрирование или другие операции для достижения желаемых результатов, но я открыт для предложений.
По сути, SVG для последней попытки (4.) таков:
<svg viewBox="0 0 96 146" version="1.1" id="f-multiply-opacity" preserveAspectRatio="xMinYMin meet">
<defs>
<filter id="f_multiply" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
<feBlend in="SourceGraphic" mode="multiply"/>
<feBlend in="SourceGraphic" mode="multiply"/>
</filter>
</defs>
<g id="f_shape">
<rect x="0" y="0" width="96" height="32" fill="#EA312F" />
<rect x="0" y="50" width="96" height="32" fill="#EA312F" />
<rect x="0" y="50" width="32" height="96" opacity="0.8" fill="#3A5BA6" filter="url(#f_multiply)" />
</g>
</svg>
Буду очень признателен за совет по этому поводу, я нашел несколько хороших ресурсов по SVG, но в этой области все еще довольно сложно получить хорошую информацию.
Спасибо!