Вырезание маски SVG в изображение

У меня проблема с новым веб-сайтом, который я разрабатываю. Это первый раз, когда я использую SVG. В основном мне нужно вырезать круг, который всегда центрирован на странице моего изображения, чтобы показать изображение под элементом. Я пытался работать с моим отсечением, и все было замечательно. Я не могу найти ошибку в моем коде маски. Вот ссылка на быструю скрипку, которую я настроил. Спасибо!

    <div class="bg-gradient">
    <img src="http://www.redhdwallpapers.com/wp-content/uploads/2014/05/red-background-6.jpg"/>
</div>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <mask id="mask">
      <circle cx="50%" cy="50%" r="45%" fill="none" />
    </mask>
  </defs>
</svg>

1 ответ

Маска с fill="none" вообще не является маской. Попробуйте вместо этого использовать fill="white".

Если вам нужна дыра, тогда вы захотите сделать маску обратной тем, что есть сейчас, поэтому используйте путь с fill-rule: evenodd Свойство и сначала нарисуйте прямоугольник, используя M, h и v по краю изображения, а затем обведите круг, используя дуги или кривые Безье, в направлении, противоположном направлению, по которому вы обводили край, так что правило заполнения делает отверстие в пути.

Вам лучше переключиться обратно на clipPath, так как он использует гораздо меньше памяти, чем маска, если все, что вы хотите сделать, это клип.

Другие вопросы по тегам