SVG - Filter

SVG verwendet das Element <filter>, um Filter zu definieren. Das <filter> -Element verwendet ein id-Attribut, um es eindeutig zu identifizieren. Filter werden in <def> -Elementen definiert und dann von Grafikelementen anhand ihrer IDs referenziert.

SVG bietet eine Vielzahl von Filtern. Im Folgenden finden Sie eine Liste der häufig verwendeten Filter.

  • feBlend
  • feColorMatrix
  • feComponentTransfer
  • feComposite
  • feConvolveMatrix
  • feDiffuseLighting
  • feDisplacementMap
  • feFlood
  • feGaussianBlur
  • feImage
  • feMerge
  • feMorphology
  • feOffset - Filter für Schlagschatten
  • feSpecularLighting
  • feTile
  • feTurbulence
  • feDistantLight
  • fePointLight
  • feSpotLight

Erklärung

Es folgt die Syntaxdeklaration von <filter>Element. Wir haben nur Hauptattribute gezeigt.

<filter
   filterUnits="units to define filter effect region"
   primitiveUnits="units to define primitive filter subregion"
   
   x="x-axis co-ordinate" 
   y="y-axis co-ordinate"     
   
   width="length"
   height="length"
   
   filterRes="numbers for filter region"
   xlink:href="reference to another filter" >
</filter>

Attribute

Sr.Nr. Name & Beschreibung
1 filterUnits- Einheiten zum Definieren des Filtereffektbereichs. Es gibt das Koordinatensystem für die verschiedenen Längenwerte innerhalb des Filters und für die Attribute an, die den Filterunterbereich definieren. Wenn filterUnits = "userSpaceOnUse" ist, stellen Werte Werte im aktuellen Benutzerkoordinatensystem dar, die zum Zeitpunkt der Verwendung des Elements 'filter' vorhanden sind. Wenn filterUnits = "objectBoundingBox" ist, stellen Werte Werte in Bruchteilen oder Prozentsätzen des Begrenzungsrahmens des referenzierenden Elements dar, die zum Zeitpunkt der Verwendung des 'filter'-Elements vorhanden waren. Standard ist userSpaceOnUse.
2 primitiveUnits- Einheiten zum Definieren des Filtereffektbereichs. Es gibt das Koordinatensystem für die verschiedenen Längenwerte innerhalb des Filters und für die Attribute an, die den Filterunterbereich definieren. Wenn filterUnits = "userSpaceOnUse" ist, stellen Werte Werte im aktuellen Benutzerkoordinatensystem dar, die zum Zeitpunkt der Verwendung des Elements 'filter' vorhanden sind. Wenn filterUnits = "objectBoundingBox" ist, stellen Werte Werte in Bruchteilen oder Prozentsätzen des Begrenzungsrahmens des referenzierenden Elements dar, die zum Zeitpunkt der Verwendung des 'filter'-Elements vorhanden waren. Standard ist userSpaceOnUse.
3 x- x-Achsen-Koordinate des Filterbegrenzungsrahmens. Defeault ist 0.
4 y- y-Achsenkoordinate des Filterbegrenzungsrahmens. Standard ist 0.
5 width- Breite des Filterbegrenzungsrahmens. Standard ist 0.
6 height- Höhe des Filterbegrenzungskastens. Standard ist 0.
7 filterRes - Zahlen, die Filterbereiche darstellen.
8 xlink:href - wird verwendet, um auf einen anderen Filter zu verweisen.

Beispiel

testSVG.htm
<html>
   <title>SVG Filter</title>
   <body>
   
      <h1>Sample SVG Filter</h1>
   
      <svg width="800" height="800">
      
         <defs>
            <filter id="filter1" x="0" y="0">
               <feGaussianBlur in="SourceGraphic" stdDeviation="8" />
            </filter>
            
            <filter id="filter2" 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>
         
         <g>
            <text x="30" y="50" >Using Filters (Blur Effect): </text>
            <rect x="100" y="100" width="90" height="90" stroke="green" stroke-width="3"
            fill="green" filter="url(#filter1)" />      
         </g> 
         
      </svg>
   
   </body>
</html>
  • Zwei <filter> -Elemente, definiert als filter1 und filter2.

  • Der feGaussianBlur-Filtereffekt definiert den Unschärfeeffekt mit der Unschärfemenge unter Verwendung von stdDeviation.

  • in = "SourceGraphic" definiert, dass der Effekt für das gesamte Element gilt.

  • Der feOffset-Filtereffekt wird verwendet, um einen Schatteneffekt zu erzeugen. in = "SourceAlpha" definiert, dass der Effekt für den Alpha-Teil von RGBA-Grafiken gilt.

  • <rect> -Elemente verknüpften die Filter mithilfe des Filterattributs.

Ausgabe

Öffnen Sie textSVG.htm im Chrome-Webbrowser. Sie können Chrome / Firefox / Opera verwenden, um SVG-Bilder direkt ohne Plugin anzuzeigen. Internet Explorer 9 und höher unterstützt auch das Rendern von SVG-Bildern.

Filter mit Schatteneffekt

<html>
   <title>SVG Filter</title>
   <body>
      
      <h1>Sample SVG Filter</h1>
      
      <svg width="800" height="800">
      
         <defs>
            <filter id="filter1" x="0" y="0">
               <feGaussianBlur in="SourceGraphic" stdDeviation="8" />
            </filter>
            
            <filter id="filter2" 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>
         
         <g>
            <text x="30" y="50" >Using Filters (Shadow Effect): </text>
            <rect x="100" y="100" width="90" height="90" stroke="green" stroke-width="3"
            fill="green" filter="url(#filter2)" />
         </g>
         
      </svg>
   
   </body>
</html>

Ausgabe

Öffnen Sie textSVG.htm im Chrome-Webbrowser. Sie können Chrome / Firefox / Opera verwenden, um SVG-Bilder direkt ohne Plugin anzuzeigen. Internet Explorer 9 und höher unterstützt auch das Rendern von SVG-Bildern.