<defs> și <filter>
Toate filtrele SVG sunt definite într - un <defs> Element. <defs> Elementul este prescurtarea de la definițiile și definirea unor elemente speciale (such as filters) .
<filter> Elementul este folosit pentru a defini un filtru SVG. <filter> Elementul are un atribut id obligatoriu care identifică filtrul. Imaginea arată apoi filtrul de utilizat.
SVG <feOffset>
Exemplul 1
<feOffset> Elementul este folosit pentru a crea efecte de umbră picătură. Ideea este de a lua un grafic SVG (image or element) un (image or element) de (image or element) și mutați - l un pic în planul xy.
Primul exemplu compensează un dreptunghi (with <feOffset>) , apoi amestec original pe partea de sus a imaginii de offset (with <feBlend>) :
Aici este codul SVG:
Exemplu
<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>
Încearcă - l singur » Code explanation:
- id atribut al <filter> Element definește un nume unic pentru filtrul
- filter atribut al <rect> elementul leagă elementul de la "f1" filtru
Exemplul 2
Acum, imaginea de offset poate fi neclară (with <feGaussianBlur>) :
Aici este codul SVG:
Exemplu
<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>
Încearcă - l singur » Code explanation:
- stdDeviation atribut al <feGaussianBlur> Elementul definește cantitatea de neclaritate
Exemplul 3
Acum, face negru umbra:
Aici este codul SVG:
Exemplu
<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>
Încearcă - l singur » Code explanation:
- in atribut al <feOffset> elementul este schimbat la "SourceAlpha" , care utilizează canalul alfa pentru neclaritatea în locul întregului pixel RGBA
Exemplul 4
Acum, tratează umbra ca o culoare:
Aici este codul SVG:
Exemplu
<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>
Încearcă - l singur » Code explanation:
- <feColorMatrix> filtru este utilizat pentru a transforma culorile din imaginea de offset mai aproape de negru. Cele trei valori ale „0.2“ în matrice obține toate multiplicate cu canalele roșu, verde și albastru. Reducerea valorilor lor aduce culorile mai aproape de negru (black is 0)