Heim  >  Artikel  >  Web-Frontend  >  Wie schneide ich mit SVG einen genauen kreisförmigen Abschnitt aus einem Bild aus?

Wie schneide ich mit SVG einen genauen kreisförmigen Abschnitt aus einem Bild aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-23 14:40:02327Durchsuche

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

Ausschneiden eines kreisförmigen Teils aus einem Bild: Eine umfassende Anleitung

Im Bereich der Bildbearbeitung ist die Fähigkeit, ein kreisförmiges Segment präzise aus einem Bild zu extrahieren, von entscheidender Bedeutung für verschiedene Anwendungen. Ziel dieses Artikels ist es, die Herausforderungen anzugehen, die bei der Lösung dieser Aufgabe mit SVG-Pfaden auftreten.

Das Problem tritt auf, wenn das nach dem Zuschneiden erhaltene Bild nicht der gewünschten Kreisform entspricht. Das Hauptaugenmerk liegt auf der Passform und Ausrichtung des Bildes innerhalb der definierten SVG-Datei. Durch die Bereitstellung einer Schritt-für-Schritt-Anleitung bietet dieser Artikel eine Lösung für dieses Problem.

Den zugrunde liegenden Code verstehen

Das bereitgestellte CSS-Snippet versucht, ein Bild über die Clip-Path-Eigenschaft auszuschneiden , das auf eine SVG-Datei verweist, die einen kreisförmigen Pfad enthält. Allerdings erscheint der Bildinhalt verzerrt und falsch ausgerichtet. Diese Diskrepanz ist darauf zurückzuführen, dass sowohl die SVG-Datei als auch das Bild darin richtig dimensioniert und positioniert werden müssen.

Ein einfacher und effektiver Ansatz

Um dieses Problem zu beheben, untersuchen wir eine alternative Methode mit SVG das vereinfacht den Prozess und behält gleichzeitig die Genauigkeit bei:

<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>

Analyse der Lösung

Dieser SVG-basierte Ansatz kombiniert die folgenden Elemente:

  1. Zwei verschachtelte und ein Muster.
  2. Die besteht aus zwei überlappenden Kreisen; Ein großer weißer Kreis stellt die gewünschte Kreisform dar, während ein kleinerer schwarzer Kreis einen Abschnitt innerhalb des weißen Kreises verdeckt.
  3. Das Musterelement enthält ein Tag, der das Zielbild importiert.
  4. Schließlich wird ein Das Element füllt den gesamten SVG-Bereich mit dem oben genannten Muster. Das Maskenattribut verweist auf die zuvor definierte und schneidet das Bild effektiv auf die beabsichtigte Kreisform zu.

Fazit

Mit dieser Technik können Sie mühelos einen präzisen Ausschnitt erzielen Kreisförmiger Teil eines Bildes, wodurch Ausrichtungs- oder Verzerrungsprobleme vermieden werden. Diese verbesserte Methode gewährleistet eine nahtlose Integration in Ihr Design oder Ihre Anwendung und liefert die perfekten kreisförmigen Ausschnitte, die Sie sich wünschen.

Das obige ist der detaillierte Inhalt vonWie schneide ich mit SVG einen genauen kreisförmigen Abschnitt aus einem Bild aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn