SVG
maschera
Ricerca…
introduzione
L'elemento mask
ti consente di "ritagliare" con bordi sfumati. Puoi comporre maschere da elementi multipli, incluso il testo. Tutto di una maschera che è bianca sarà completamente opaca. Tutto ciò che è nero sarà completamente trasparente. I valori tra bianco e nero saranno semitrasparenti.
Osservazioni
Essere consapevoli del fatto che le maschere sono un'operazione costosa computazionale. Il calcolo deve essere fatto per ogni pixel nell'area della maschera. Quindi mantieni l'area della maschera più piccola possibile.
maschera di base
Un rect verde con un buco rotondo nel mezzo che mostra lo sfondo dell'immagine sotto.
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<mask id="myMask">
<rect x="0" y="0" width="100" height="100" fill="white"/>
<circle cx="50" cy="50" r="45" fill="black"/>
</mask>
<image xlink:href="https://cdn.pixabay.com/photo/2013/04/06/05/06/ship-100978_960_720.jpg" width="100" height="100"/>
<rect x="0" y="0" width="100" height="100" fill="green" mask="url(#myMask)"/>
</svg>
esempio complesso con testo e forme
Un rettangolo verde con una maschera complessa applicata ad esso che mostra l'immagine di sfondo.
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<mask id="myMask0">
<circle cx="50" cy="50" r="30" fill="white"/>
</mask>
<mask id="myMask">
<rect x="0" y="0" width="100" height="100" fill="white"/>
<text x="5" y="60" font-size="40">Mask</text>
<circle cx="50" cy="50" r="30" fill="black"/>
<text x="5" y="60" font-size="40" mask="url(#myMask0)" fill="white">Mask</text>
</mask>
<image xlink:href="https://cdn.pixabay.com/photo/2013/04/06/05/06/ship-100978_960_720.jpg" width="100" height="100"/>
<rect x="0" y="0" width="100" height="100" fill="green" mask="url(#myMask)"/>
</svg>
semi trasparenza
un rettangolo verde (di nuovo ...) con 4 fori creati utilizzando 4 valori in scala di grigi con 4 diverse opacità.
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<mask id="myMask">
<rect x="0" y="0" width="100" height="100" fill="white"/>
<circle cx="25" cy="25" r="20" fill="black"/>
<circle cx="75" cy="25" r="20" fill="#333"/>
<circle cx="25" cy="75" r="20" fill="#666"/>
<circle cx="75" cy="75" r="20" fill="#999"/>
</mask>
<image xlink:href="https://cdn.pixabay.com/photo/2013/04/06/05/06/ship-100978_960_720.jpg" width="100" height="100"/>
<rect x="0" y="0" width="100" height="100" fill="green" mask="url(#myMask)"/>
</svg>
una maschera con un gradiente
Un rect verde con un buco nel mezzo, con bordi morbidi.
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<radialGradient id="rg">
<stop offset="0" stop-color="black"/>
<stop offset="1" stop-color="white"/>
</radialGradient>
<mask id="myMask">
<rect x="0" y="0" width="100" height="100" fill="white"/>
<circle cx="50" cy="50" r="45" fill="url(#rg)"/>
</mask>
<image xlink:href="https://cdn.pixabay.com/photo/2013/04/06/05/06/ship-100978_960_720.jpg" width="100" height="100"/>
<rect x="0" y="0" width="100" height="100" fill="green" mask="url(#myMask)"/>
</svg>