Gradiente lineare SVG
- Pagina precedente Sfocatura SVG
- Pagina successiva Gradiente lineare SVG
<defs> e <filter>
definiti nei <defs>
Tutti i filtri SVG sono definiti nei<defs>
definiti nell'elemento
L'elemento viene utilizzato per definire i filtri SVG.
L'elemento è l'abbreviazione di definizione (definitions), che contiene definizioni di elementi speciali (ad esempio, filtri).L'elemento viene utilizzato per definire i filtri SVG.
<filter>
L'elemento <feOffset> ha un attributo id obbligatorio, utilizzato per identificare il filtro. Poi il grafico si riferisce al filtro da utilizzare.
Esempio 1
<feOffset>
L'elemento viene utilizzato per creare un'ombreggiatura. La logica è: prima ottenere un'immagine SVG (immagine o elemento), poi muoverla leggermente nel piano xy.
Nel primo esempio, è stato offsettato un rettangolo (usando <feOffset>
),poi aggiungere l'immagine originale in cima all'immagine offsetta (usando <feBlend>
):
Questo è il codice SVG:
<svg height="120" width="120"> <defs> <filter id="f1" x="0" y="0" width="200%" height="200%"> <feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" /> <feBlend in="SourceGraphic" in2="offOut" mode="normal" /> </filter> </defs> <rect width="90" height="90" stroke="green" stroke-width="3" fill="yellow" filter="url(#f1)" /> </svg>
Spiegazione del codice:
- L'attributo id dell'elemento <filter> definisce il nome unico del filtro
- <rect> L'attributo filter dell'elemento collega l'elemento al filtro "f1"
Esempio 2
Ora, è possibile sfocare l'immagine con un offset (usando <feGaussianBlur>
):
Questo è il codice SVG:
<svg height="140" width="140"> <defs> <filter id="f2" x="0" y="0" width="200%" height="200%"> <feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" /> <feGaussianBlur result="blurOut" in="offOut" stdDeviation="10" /> <feBlend in="SourceGraphic" in2="blurOut" mode="normal" /> </filter> </defs> <rect width="90" height="90" stroke="green" stroke-width="3" fill="yellow" filter="url(#f2)" /> </svg>
Spiegazione del codice:
- L'attributo stdDeviation dell'elemento <feGaussianBlur> definisce la quantità di sfocatura
Esempio 3
Ora, impostiamo l'ombreggiatura in nero:
Questo è il codice SVG:
<svg height="140" width="140"> <defs> <filter id="f3" x="0" y="0" width="200%" height="200%"> <feOffset result="offOut" in="SourceAlpha" dx="20" dy="20" /> <feGaussianBlur result="blurOut" in="offOut" stdDeviation="10" /> <feBlend in="SourceGraphic" in2="blurOut" mode="normal" /> </filter> </defs> <rect width="90" height="90" stroke="green" stroke-width="3" fill="yellow" filter="url(#f3)" /> </svg>
Spiegazione del codice:
- <feOffset> L'attributo in dell'elemento viene modificato in "SourceAlpha", che utilizza il canale Alpha invece di tutto il pixel RGBA per il sfocatura
Esempio 4
Ora, trattiamo l'ombreggiatura con un colore:
Questo è il codice SVG:
<svg height="140" width="140"> <defs> <filter id="f4" x="0" y="0" width="200%" height="200%"> <feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" /> <feColorMatrix result="matrixOut" in="offOut" type="matrix" values="0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0" /> <feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="10" /> <feBlend in="SourceGraphic" in2="blurOut" mode="normal" /> </filter> </defs> <rect width="90" height="90" stroke="green" stroke-width="3" fill="yellow" filter="url(#f4)" /> </svg>
Spiegazione del codice:
- <feColorMatrix> Il filtro viene utilizzato per trasformare i colori dell'immagine spostata in tonalità più vicine al nero. I tre valori '0.2' della matrice vengono moltiplicati per i canali rosso, verde e blu. La riduzione dei loro valori rende i colori più vicini al nero (nero è 0)
- Pagina precedente Sfocatura SVG
- Pagina successiva Gradiente lineare SVG