Heim > Fragen und Antworten > Hauptteil
Ich versuche, ein Bild mithilfe von SVG-Pfaden auszuschneiden, aber mein Bild scheint nicht zu passen.
Das möchte ich erreichen:
Das habe ich bekommen:
Das ist der Code, den ich ausprobiert habe:
.topbar-chat-img { width: 48px; height: 48px; object-fit: cover; clip-path: url(#topbar-img-svg); }
<img src="https://picsum.photos/200/200?image=1069" class="topbar-chat-img" /> <svg> <defs> <clipPath id="topbar-img-svg"> <path class="svg-cls" d="M33,66A33.009,33.009,0,0,1,20.155,2.593,32.99,32.99,0,0,1,66,33a32.691,32.691,0,0,1-3.271,14.341,11.008,11.008,0,0,0-13.148,14.2A32.978,32.978,0,0,1,33,66Z"/> </clipPath> </defs> </svg>
Ich habe auch versucht, die Größe von vievBox und SVG zu ändern, aber ich kann das Bild nicht anpassen.
P粉6429198232023-12-29 09:24:06
这是使用 SVG 的另一种更简单的方法:
body { background:pink; }
<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> <!-- create a rect, fill it with the image and apply the above mask --> <rect fill="url(#img)" width="100%" height="100%" mask="url(#hole)" /> </svg>