Для получения нужной формы добавляем в маску вторую окружность меньшего диаметра
<style>
.container {
width:100%;
height:100%;
}
</style>
<div class="container">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 1400 788" preserveAspectRatio="xMinYMin meet">
<defs>
<mask id="msk1">
<rect width="100%" height="100%" fill="red" />
<g fill="white">
<!-- Center circle -->
<circle cx="700" cy="392" r="300" />
<!-- Left circle -->
<circle cx="520" cy="620" r="120" />
</g>
</mask>
</defs>
<image xlink:href="https://i.stack.imgur.com/sUiPo.jpg"" width="100%" height="100%" mask="url(#msk1)" />
</svg>
</div>
- В маске
<rect width="100%" height="100%" fill="red" />
прямоугольник перекрывает всё изображение. Красный цвет закраски прямоугольника - fill="red" занимает промежуточное значение между белым цветом, что придаёт маске полную прозрачность и чёрным цветом, который делает маску полностью непрозрачной. Поэтому остальная часть картинки становится полупрозрачной
см. топик Практические примеры применения масок svg
- Окружности в маске имеют окраску белого цвета, поэтому эта область
становится полностью прозрачной.
Создание белых сегментов окружностей
- Для этого нужно сделать некоторые расчёты:
Длина окружности при радиусе 300px равна: 2 * 3.4115 * 300 = 1884,9px
Нам нужен сектор длиной примерно (визуально по картинке) в одну восьмую часть
1884,9 / 8 = 235.5px
- Для отрисовки сектора применим атрибут
stroke-dasharray
stroke-dasharray="235.5 1648.5", где первый параметр длина черточки, второй параметр длина пробела.
Для второй окружности делаем точно такие же расчеты, но для радиуса 120px
- Добавляем атрибуты
stroke-dasharray к окружностям в маске и
закрашиваем обводку в чёрный цвет. Это сделает сегменты
непрозрачными, после применения маски сегменты окружности будут
белого цвета
Для позиционирования сегмента сдвигаем его начало командой stroke-dashoffset
stroke-dashoffset="400"
Собираем всё вместе:
<style>
.container {
width:100%;
height:100%;
}
</style>
<div class="container">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 1400 788" preserveAspectRatio="xMinYMin meet">
<defs>
<mask id="msk1">
<rect width="100%" height="100%" fill="red" />
<g fill="white">
<!-- Center circle -->
<circle cx="700" cy="392" r="300" stroke="#151515" stroke-width="17"
stroke-dasharray="235.5 1648.5" stroke-dashoffset="400" />
<!-- Left circle -->
<circle cx="520" cy="620" r="120" stroke="#151515" stroke-width="12"
stroke-dasharray="114.245 639.96" stroke-dashoffset="434" />
</g>
</mask>
</defs>
<image xlink:href="https://i.stack.imgur.com/sUiPo.jpg" width="100%" height="100%" mask="url(#msk1)" />
</svg>
</div>