首頁  >  文章  >  web前端  >  如何使用 SVG 從影像中剪切精確的圓形截面?

如何使用 SVG 從影像中剪切精確的圓形截面?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-23 14:40:02239瀏覽

How to Clip an Accurate Circular Section from an Image Using SVG?

從圖像中剪切圓形部分:綜合指南

在圖像處理領域,從圖像中精確提取圓形部分的能力至關重要適用於各種應用。本文旨在解決使用 SVG 路徑實現此任務時所面臨的挑戰。

當剪切後獲得的影像不符合所需的圓形形狀時,就會出現問題。主要關注的是影像在定義的 SVG 中的擬合和對齊。透過提供逐步指南,本文提供了此問題的解決方案。

了解底層程式碼

提供的 CSS 片段嘗試透過 Clip-path 屬性剪輯圖像,它引用包含圓形路徑的 SVG。然而,圖像內容出現扭曲和錯位。這種差異源自於需要正確調整 SVG 及其中影像的大小和位置。

簡單有效的方法

為了糾正此問題,讓我們探索使用SVG 的替代方法在保持準確性的同時簡化了流程:

<code class="html"><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>
  <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>
  </defs>
  <rect fill="url(#img)" width="100%" height="100%" mask="url(#hole)" />
</svg></code>

剖析解決方案

這個基於SVG 的方法結合了以下元素:

  1. 兩個嵌套的 ;部分容納一個和一個圖案。
  2. 由兩個重疊的圓圈組成;大的白色圓圈代表所需的圓形形狀,而較小的黑色圓圈則遮蓋白色圓圈內的一部分。
  3. 圖案元素包含一個 。匯入目標影像的標籤。
  4. 最後,一個 元素用上述圖案填滿整個 SVG 區域。 mask 屬性引用先前定義的 ,有效地將影像裁切為預期的圓形形狀。

結論

利用此技術,您可以毫不費力地實現精確裁剪圖像的圓形部分,減輕任何對齊或扭曲問題。這種改進的方法可確保無縫整合到您的設計或應用中,提供您想要的完美圓形切口。

以上是如何使用 SVG 從影像中剪切精確的圓形截面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn