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