Maison  >  Article  >  interface Web  >  Comment découper une section circulaire précise à partir d’une image à l’aide de SVG ?

Comment découper une section circulaire précise à partir d’une image à l’aide de SVG ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 14:40:02239parcourir

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

Découper une partie circulaire d'une image : un guide complet

Dans le domaine de la manipulation d'images, la capacité d'extraire un segment circulaire d'une image avec précision est essentielle pour diverses applications. Cet article vise à relever les défis rencontrés lors de la réalisation de cette tâche à l'aide de chemins SVG.

Le problème survient lorsque l'image obtenue après détourage n'est pas conforme à la forme circulaire souhaitée. La principale préoccupation concerne l’ajustement et l’alignement de l’image dans le SVG défini. En fournissant un guide étape par étape, cet article propose une solution à ce problème.

Comprendre le code sous-jacent

L'extrait CSS fourni tente de découper une image via la propriété clip-path , qui fait référence à un SVG contenant un chemin circulaire. Cependant, le contenu de l'image semble déformé et mal aligné. Cet écart découle de la nécessité d'un dimensionnement et d'un positionnement appropriés à la fois du SVG et de l'image qu'il contient.

Une approche simple et efficace

Pour résoudre ce problème, explorons une méthode alternative utilisant SVG qui simplifie le processus tout en maintenant la précision :

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

Disséquer la solution

Cette approche basée sur SVG combine les éléments suivants :

  1. Deux et un motif.
  2. Le se compose de deux cercles qui se chevauchent ; un grand cercle blanc représente la forme circulaire souhaitée, tandis qu'un cercle noir plus petit masque une section à l'intérieur du cercle blanc.
  3. L'élément de motif comprend un qui importe l'image cible.
  4. Enfin, une balise L'élément remplit toute la zone SVG avec le motif susmentionné. L'attribut masque fait référence au précédemment défini, découpant efficacement l'image à la forme circulaire souhaitée.

Conclusion

En utilisant cette technique, vous pouvez facilement obtenir un découpage précis. partie circulaire d’une image, atténuant ainsi tout problème d’alignement ou de distorsion. Cette méthode améliorée garantit une intégration transparente dans votre conception ou application, offrant les découpes circulaires parfaites que vous désirez.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn