SVG ¤¤¥i¥ÎªºÂoÃ褸¥ó¦³¡G
<type of lighting in="" lighting-color=""> <light source /> </type of lighting>
<filter id = "filter">
<feSpecularLighting result="specOut"
specularExponent="20" lighting-color="#bbbbbb">
<fePointLight x="50" y="75" z="200"/>
</feSpecularLighting>
<feComposite in="SourceGraphic" in2="specOut"
operator="arithmetic" k1="0" k2="1" k3="1" k4="0"/>
</filter>
<circle cx="110" cy="110" r="100" style="filter:url(#filter)"/>
¨ÒÃD:¦¹¨ÒÅã¥Ü¤F <feDiffuseLighting> ¤¸¥ó¹ï¨CÓ¥i¥Î¥ú·½ªº¶êªº®ÄªG¡C ¨C¦¸¡A¥ú½u³£¨Ó¦Û¥ª¤W¨¤¡C
°Ñ¦Ò¸ê®Æ:
<defs>
<filter id="Erode1">
<feMorphology operator="erode" in="SourceGraphic" radius="1" />
</filter>
<filter id="Dilate1">
<feMorphology operator="dilate" in="SourceGraphic" radius="1" />
</filter>
</defs>
<g font-family="Verdana" font-size="30" stroke="blue" stroke-width="1">
<text x="50" y="40">Unfiltered</text>
<text x="50" y="80" filter="url(#Erode1)">Erode</text>
<text x="50" y="120" filter="url(#Dilate1)">Dilate</text>
</g>
feMorphology °Êµe ¥ª¹Ï¬O¤U¦C¸}¥»ªº¹ê²{¡A¹Ï¹³ÅÜD©Î©ú«G(dilate)¡C¥k¹Ï¬OÅܽG©Î·t(erode)¡C
<svg width="450" height="300" viewBox="0 0 450 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<filter id="morphology">
<feMorphology operator="dilate" radius="0">
<animate attributeName="radius" from="0" to="5" dur="5s" repeatCount="indefinite" />
</feMorphology>
</filter>
<image xlink:href="../svg/tree.jpg" width="90%" height="90%" x="10" y="10" filter="url(#morphology)"></image>
</svg>
ì¹Ï¦b³o¸Ì¡C
Åã¥Ü°Êµe feMorphology ®ÄªGªº¥Ü¨Ò:³æÀ»¥i§ïÅÜ
°Ñ¦Ò¸ê®Æ:
¥DnÄݩʦ³¤ºØ¡AbaseFrequency (·Q¹³Âø°T¹ÏÀɤj¤p 0.01~1)¡BnumOctaves (·Q¹³ºë ½o«× 1~10)¡Bseed (Âø°T¹ÏÀɺؤl½X)¡BstitchTiles (Âø°T¹ÏÀɬO§_«÷±µ)¡Btype (Ãþ«¬¡AfractalNoise¸û¡¨Ãú±¡¨,turbulence¸ûÁû²É)
<rect x="0" y="0" height="100%" width="100%" fill="#fff"/> <filter id="twoF"> <feTurbulence baseFrequency=".01" numOctaves="4" seed="200"/> </filter> <rect x="25%" y="25%" filter="url(#twoF)" height="50%" width="50%"/>
| A. baseFrequency = ".04" |
B. baseFrequency= ".04" numOctaves="2" | C. baseFrequency = ".04" numOctaves="2" seed="201" |
D. baseFrequency= ".04" numOctaves="5" seed="201" |
| E. baseFrequency = ".04" |
F. baseFrequency = ".01" |
G. baseFrequency = ".1" numOctaves="1" |
H. baseFrequency = ".1" numOctaves="3" |
| I. baseFrequency= ".04" type = "fractalNoise" |
J. baseFrequency= ".01" type = "fractalNoise" numOctaves = "3" ¡@ |
K. baseFrequency = ".04,.1" |
L. baseFrequency = ".1,.01" |
<filter id="composite" y="0" x="0" width="100%" height="100%">
<feTurbulence baseFrequency=".05" numOctaves="3" result="B"/>
<feComposite in2="B" in="SourceGraphic" operator="in" />
</filter>
<ellipse cx="100" cy="87" rx="75" ry="87" fill="red"
filter="url(#composite)"/>
operator ÄݩʥΩó³]¸m¦p¦ó¦X¨Ö³o¨âÓ¿é¤J·½:
¥H¤U¥Ü¨Ò±Nºñ¦â¤è¶ô(¿é¤J 1)©M¬õ¦â¤è¶ô(¿é¤J 2)¡A¨Ì¤£¦P¤è¦¡¦X¨Ö:
<defs>
<filter id="filter">
<feMorphology in="SourceAlpha"
operator="dilate" radius="2" result="OUTLINE" />
<feComposite operator="out" in="OUTLINE"
in2="SourceAlpha" />
</filter>
</defs>
<text class="filtered" x="20" y="85"
style="filter: url(#filter);fill:black;
font-family:'Ultra',serif;font-size:80px;">Outlined
</text>
·½½X¦b³oÓCodePen¡C
°Ñ¦Ò¸ê®Æ:
¦³¯¾¸ôªº¯È
<defs>
<filter id="a122401_f1" filterUnits="userSpaceOnUse">
<feTurbulence type="fractalNoise" baseFrequency="0.03 0.06"
numOctaves="10" result="a122401_t1" seed="1">
</feTurbulence>
<feSpecularLighting in="a122401_t1" lighting-color="#eed"
specularExponent="2" surfaceScale="4" result="a122401_L1">
<feDistantLight azimuth="45" elevation="30">
</feSpecularLighting>
<feComposite operator="atop" in="a122401_L1" in2="SourceGraphic">
</feComposite>
</filter>
</defs>
<rect x="0" y="0" width="100%" height="100%" fill="#aaa"
style="filter: url(#a122401_f1)"></rect>
¤ìÀY¯¾²z
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="300" height="300" style="background-color:#fff">
<defs>
<filter id="a122408_f1" x="0" y="0" width="100%" height="100%">
<feFlood flood-color="#722" result="a122408_fd1">
<feFlood flood-color="#ea0" result="a122408_fd2">
<feTurbulence type="fractalNoise" baseFrequency="0.005 0.06"
numOctaves="1" seed="1">
</feTurbulence>
<feComponentTransfer color-interpolation-filters="sRGB"
result="a122408_ft1">
<feFuncR type="discrete" tableValues="0 0">
<feFuncG type="discrete" tableValues="0 0">
<feFuncB type="discrete" tableValues="0 0">
<feFuncA type="table"
tableValues="0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1">
</feFuncA>
</feComponentTransfer>
<feComposite in="a122408_fd1" in2="a122408_ft1" operator="in"
result="a122408_fcin"></feComposite>
<feComposite in="a122408_fd2" in2="a122408_ft1" operator="out"
result="a122408_fcout"></feComposite>
<feComposite in="a122408_fcin" in2="a122408_fcout"
operator="arithmetic" k1="0" k2="1" k3="1" k4="0"></feComposite>
</filter>
</defs>
<rect x="0" y="0" width="300" height="300" style="filter: url(#a122408_f1)">
</svg>
°Ñ¦Ò¸ê®Æ:
¦P¼Ë¦³¤ÓÄݩʡAin (n³Q¼vÅT¹Ï¹³1)¡Bin2 (nµo´§¼vÅTªº¹Ï¹³2)¡Bscale(´T«×)¡BxChannelSelector (X®y¼Ðn¥ÎRGBA¤°»òÃC¦â)¡ByChannelSelector (Y®y¼Ðn¥ÎRGBA¤°»òÃC¦â)¡C
<svg width="200" height="200" viewBox="0 0 220 220"
xmlns="http://www.w3.org/2000/svg">
<filter id="displacementFilter">
<feTurbulence type="turbulence" baseFrequency="0.05"
numOctaves="2" result="turbulence"/>
<feDisplacementMap in2="turbulence" in="SourceGraphic"
scale="50" xChannelSelector="R" yChannelSelector="G"/>
</filter>
<circle cx="100" cy="100" r="100"
style="filter: url(#displacementFilter)"/>
</svg>
<defs>
<filter id="a122407_f1" filterUnits="userSpaceOnUse">
<feTurbulence type="fractalNoise" baseFrequency="0.02 0.02"
numOctaves="10" result="a122407_t1" seed="7">
</feTurbulence>
<feDisplacementMap in2="a122407_t1" in="SourceGraphic"
scale="140" xChannelSelector="R" yChannelSelector="G">
</feDisplacementMap>
</filter>
<radialGradient id="a122407_rad1">
<stop offset="0%" stop-color="#ff0f">
<stop offset="100%" stop-color="#f000">
</radialGradient>
</defs>
<rect x="0" y="30" width="90%" height="100%"
fill="url(#a122407_rad1)" style="filter: url(#a122407_f1)">
<ellipse cx="150" cy="200" rx="120" ry="200"
fill="url(#a122407_rad1)" style="filter: url(#a122407_f1)">
<ellipse cx="150" cy="240" rx="120" ry="200"
fill="url(#a122407_rad1)" style="filter: url(#a122407_f1)">
<ellipse cx="150" cy="260" rx="120" ry="200"
fill="url(#a122407_rad1)" style="filter: url(#a122407_f1)">
°Ñ¦Ò¸ê®Æ ¦³½ìªº SVG filter - ³Ð³y¯¾²z
<img src="./moon-night.jpg"> <img src="./moon-night.jpg" class="reflect">
.reflect {
transform: scaleY(-1);
filter: url(#displacementFilter);
}
³o¸Ì¦P®ÉÀ³¥Î¤F2ÓÂoÃè¡A¤@Ó¬OfeTurbulenceÂoÃè¡A¼ÒÀÀ´ø¬y¡C
¨ä¤¤baseFrequencyªºÄÝ©ÊȪº¤ô¥©M««ª½ªº¾¸ÂIÀW²v¤ñ¬O1:10¡A¦]¦¹¡A·|¦³Ãþ¦ü¤ô¥©Ô¦ùªº®ÄªG¡C
¥t¤@Ó feDisplacementMap ÂoÃè«h®Ú¾Ú R¡]¬õ¦â¡^³q¹D¶i¦æ¤ô¥¤è¦Vªº¦ì¸m°¾²¾¡A®Ú¾Ú B¡]ÂŦâ¡^³q¹D¶i¦æ««ª½¤è¦V¦ì¸m°¾²¾¡A ¥Ñ©ó±m¦â´ø¬y¤ô¥©Ô¦ù¤F¡A¦]¦¹¡A³Ì²×ªºÂoÃè®ÄªG´N¬O¤@Ó¤ô¥¤è¦V©Ô¦ù¬°¥Dªº²G¤Æ®ÄªG¡AµøÄ±¤W´N¹³¬O¦ÛµM¬É¤ôªi¿ººyªº®ÄªG¡C
<svg width="0" height="0" style="posiotion:absolute;left:-999px;">
<filter id="displacementFilter">
<feTurbulence type="turbulence" baseFrequency="0.01 .1"
numOctaves="1" result="turbulence" seed="53" />
<feDisplacementMap in2="turbulence" in="SourceGraphic"
scale="20" xChannelSelector="R" yChannelSelector="B" />
</filter>
</svg>
<svg width="300" height="400" xmlns="http://www.w3.org/2000/svg">
<defs>
<filter id="a122305_f1" filterUnits="userSpaceOnUse">
<feTurbulence type="turbulence" baseFrequency="0.02 0.1"
numOctaves="2" result="a122305_tt">
<animate attributeName="baseFrequency"
values="0.02 0.1;0.022 0.13;0.02 0.1" dur="15s"
repeatCount="indefinite">
</animate>
</feTurbulence>
<feDisplacementMap in2="a122305_tt" in="SourceGraphic" scale="40"
xChannelSelector="R" yChannelSelector="G">
</feDisplacementMap>
</filter>
</defs>
<image href="../svg/bird.jpg" x="-20" y="0" width="320" height="200"
preserveAspectRatio="none"
style="transform:translate(0,430px) scale(1,-1) ; // ¤ÏÂà
filter: url(#a122305_f1)"></image> // ˼v¹Ï
<image href="../svg/bird.jpg" x="-20" y="0" width="320" height="240"
preserveAspectRatio="none"></image> // ì¹Ï
</svg>
¤S¤@¤ôªi¿ººy
°Ñ¦Ò»¡»¡SVGªº feTurbulence ÂoÃè
<defs>
<filter id="blend" x="0" y="0">
<feImage xlink:href="../svg/qing-vase.jpg" width="50%" height="50%" result="rectangle" />
<feImage xlink:href="../svg/strawberry-fields.jpg" width="50%" height="50%" result="strawberry" />
<feBlend mode="darken" in="rectangle" in2="strawberry" />
</filter>
</defs>
<g filter="url(#blend)">
<image x="5%" y="10%" href="strawberry-fields.jpg" height="100%" width="100%"/>
</g>
<rect x="0" y="0" height="100%" width="100%" fill="white"/>
<filter id="screen">
<feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/>
</filter>
<filter id="darken">
<feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/>
</filter>
<filter id="multiply">
<feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/>
</filter>
<filter id="lighten">
<feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/>
</filter>
<filter id="sample">
< feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic">
<animate attributeName="mode" dur="5s"
values="screen;multiply;lighten;darken;"
repeatCount="indefinite"/>
</feBlend>
<g enable-background="new">
<rect x="0" y="10%" height="4%" width="100%" fill="red"/>
<rect x="0" y="14%" height="4%" width="100%" fill="green"/>
<rect x="0" y="18%" height="4%" width="100%" fill="blue"/>
<image x="5%" y="5%" xlink:href="../svg/p2.jpg" filter="url(#darken)" height="46%" width="26%"/>
<image x="20%" y="5%" xlink:href="../svg/p2.jpg" filter="url(#screen)" height="46%" width="26%"/>
<image x="35%" y="5%" xlink:href="../svg/p2.jpg" filter="url(#multiply)" height="46%" width="26%"/>
<image x="50%" y="5%" xlink:href="../svg/p2.jpg" filter="url(#lighten)" height="46%" width="26%"/>
<image x="65%" y="5%" xlink:href="../svg/p2.jpg" filter="url(#sample)" height="46%" width="26%"/>
</g>
±N¨â¹Ï²V¦X¡A²V¦X¼Ò¦¡¥Ñ¥ª¦Ó¥k¡Gnormal, multiply, screen, darden, lighten
<filter id="lighten" x="0" y="0" width="200" height="250">
<feImage width="200" height="250" xlink:href="girl.jpg" result="img1" />
<feImage width="200" height="250" xlink:href="sky.jpg" result="img2" />
<feBlend mode="lighten" in="img1" in2="img2"/>
</filter>
ì¹Ï¦ì§}
°Ñ¦Ò¸ê®Æ¦³·N«ä¡I±j¤jªº SVG ÂoÃè
¤ë¨Ó
¥Îsvg°µÓ¤ë«GÁÙ¬O«Ü²³æªº¡A¥unµe¤@Óµo¥úªº¤j¶ê»æ´N¦n¤F¡C
<circle id="whitemoon" cx="420" cy="160" r="60" fill="white" />
¥Î feGaussianBlur ¼Ò½k«áªº§@¬°¤ë«Gªº¥ú¡C
<filter id="blur-moon"> // µo¥úªº¤ë«G
<feGaussianBlur in="SourceGraphic" stdDeviation="3" />
</filter>
¦AÀ³¥Î feTurbulence ©M feDisplacementMap»s³y¤ë«G¤Wªº³±¼v:
<circle id="greymoon" cx="420" cy="170" r="30"
fill="grey" fill-opacity="0.25"
filter="url(#filter-greymoon)" />
<filter id="blur-greymoon" width="350%" height="250%" x="-100%" y="-100%">
<feGaussianBlur in="SourceGraphic" stdDeviation="1" />
</filter>
<filter id="filter-greymoon" width="350%" height="250%" x="-100%" y="-100%">
<feTurbulence type="fractalNoise"
baseFrequency="0.03" numOctaves="9" seed="3" />
<feDisplacementMap in="SourceGraphic" scale="120" />
</filter>
²Õ¦X°_¨Ó¡A´N¦¨¬°¦³³±¼v¡BÃä½tµo¥úªº¤ë«G¡C
<g id="moon"> <use xlink:href="#whitemoon" /> // ¤ë«G <use xlink:href="#whitemoon" filter="url(#blur-moon)" /> // µo¥úªº¤ë«G <use xlink:href="#greymoon" filter="url(#greymoon)" /> // ¦³³±¼vªº¤ë«G </g> <use xlink:href="#moon" />
¶³¯}
¶³ªº»s§@¤À¤T¬q:«e¡B¤¤¡B«á¡C¨C¬q¤j¦P¤p²§¡A¥u¬O¦ì¸m¡B¤j¤p©MÃC¦â¤£¦P¡C
¥H¤U¥H«á¬q¬°¨Ò¡A¥DÊ^¬O¾ò¶ê¡AÀ³¥Î feGaussianBlur ÁU½k¤Æ¡A¦AÀ³¥Î feTurbulence ©M feDisplacementMap
Âø¶Ã¤Æ¡Cª`·N¡AfeTurbulence ªº type ¥Îªº¬O fractalNoise¡C
<ellipse id="cloudback" cx="260" cy="130" rx="180" ry="50"
fill="white" fill-opacity="0.95" filter="url(#blur-cloud)" />
<filter id="blur-cloud" width="350%" height="250%" x="-100%" y="-100%">
<feGaussianBlur in="SourceGraphic" stdDeviation="15" />
</filter>
<filter id="filter-back" width="350%" height="280%" x="-100%" y="-100%">
<feTurbulence type="fractalNoise" baseFrequency="0.012"
numOctaves="4" seed="0" />
<feDisplacementMap in="SourceGraphic" scale="140" />
</filter>
<use xlink:href="#cloudback" filter="url(#filter-back)" />
¶³ªº»s§@°Ñ¦Ò¤ÑÃä¤@¦·¶³
ªá§Ë¼v
<filter id="huazhishadow" x="0" y="0" width="300%" height="200%">
<feOffset result="offOut" in="SourceAlpha" dx="220" dy="0" />
<feGaussianBlur result="blurOut" in="offOut" stdDeviation="1" />
<feBlend in="SourceGraphic" in2="blurOut" mode="darken" />
</filter>
<image xlink:href="../svg/huazhi.png" x="200" y="10" width="100"></image>
<image xlink:href="../svg/huazhi.png" x="-90" y="10" width="130"
filter="url(#huazhishadow)" transform="skewX(29)"></image>
¶³¯}¤ë¨Óªá§Ë¼v
³Ì«á§â¤ë«G¡A¶³¡B°|Àð©Mªá¼v²Õ¦X°_¨Ó¡A¨Ã½Õ¾ã©¼¦¹¦ì¸m¡A¦¨¬°³Ì²×ªº¼v¹³¡C
<image xlink:href="yuanqiang.png" x="0" y="50" width="400"/> // °|Àð <use xlink:href="#moon" /> // ¤ë«G <use xlink:href="#cloud" /> // ¶³ <image xlink:href="huazhi.png" x="200" y="400" width="100"> // ªá <image xlink:href="huazhi.png" x="-490" y="400" width="130" // ªá¼v filter="url(#huazhishadow)" transform="skewX(29)"/>
³v¨B¸Ô²Ó¸Ñ»¡¡A¨£¶³¯}¤ë¨Óªá§Ë¼v
==>svg-filters