ホームページ  >  記事  >  ウェブフロントエンド  >  SVG のマスクを使用して、位置のずれた円形のカットアウトを修正するにはどうすればよいですか?

SVG のマスクを使用して、位置のずれた円形のカットアウトを修正するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-23 15:24:02392ブラウズ

How to Correct Misaligned Circular Cutouts Using Masks in SVG?

SVG を使用して画像から円形セクションを切り出す

クリップパスを使用して画像から円形セクションを切り取る現在の試みは、正しく位置合わせされていません。この問題に対処するために、SVG でマスクを使用する別のアプローチを検討します。

<code class="svg"><svg width="200" height="200">
  <defs>
    <mask id="hole">
      <circle r="100" cx="100" cy="100" fill="white"/>
      <circle r="50" cx="180" cy="180" fill="black"/>
    </mask>
  </defs>
  <pattern id="img" patternUnits="userSpaceOnUse" width="200" height="200">
    <image  xlink:href="https://picsum.photos/200/200?image=1069" x="0" y="0" width="200" height="200" />
  </pattern>
  <rect fill="url(#img)" width="100%" height="100%" mask="url(#hole)" />
</svg></code>

このコードは、背景をピンクに設定した SVG を作成します。 defs 要素内で、「hole」と呼ばれるマスクを定義します。このマスクは 2 つの円で構成されます。1 つは画像から保持したい円形領域を表す大きな白い円、もう 1 つは切り抜きを決定する小さな黒い円です。

次の要素は「img」と呼ばれるパターンです。このパターンは、図形の塗りつぶしとして使用する画像を指定します。パターンの寸法を SVG のサイズと一致するように設定し、URL からの画像を使用します。

最後に、SVG のスペース全体を満たす長方形を作成します。長方形の塗りつぶしは「img」パターンを参照するように設定され、「穴」マスクを適用して円形のセクションを切り取ります。

以上がSVG のマスクを使用して、位置のずれた円形のカットアウトを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。