in
in 屿§æ è¯æ»¤éåè¯çè¾å
¥ã
å
¶å¼å¯ä»¥æ¯ä¸é¢çå
ç§å
³é®åä¸çä¸ç§ï¼ä¹å¯ä»¥æ¯ä¸ä¸ªå¹é
åä¸ä¸ª <filter> å
ç´ ä¸åé¢ç滤éåè¯ç result 屿§å¼çå符串ãå¦ææ²¡ææä¾å¼å¹¶ä¸è¿æ¯ç¬¬ä¸ä¸ªæ»¤éåè¯ï¼é£ä¹å°ç¸å½äºä½¿ç¨ SourceGraphic ä½ä¸ºæ»¤éåè¯çè¾å
¥å¼ãå¦ææ²¡ææä¾å¼å¹¶ä¸è¿ä¸æ¯ç¬¬ä¸ä¸ªåè¯ï¼é£ä¹å°ä½¿ç¨åä¸ä¸ªåè¯çç»æä½ä¸ºå®çè¾å
¥ã
妿 result çå¼å¨ç»å®ç <filter> å
ç´ ä¸å¤æ¬¡åºç°ï¼é£ä¹å¯¹è¯¥å¼çå¼ç¨å°ä½¿ç¨å颿è¿çãå
·æç»å® result 屿§å¼ç滤éåè¯ã
ä½ å¯ä»¥å¨ä»¥ä¸ SVG å ç´ ä¸ä½¿ç¨è¿ä¸ªå±æ§ï¼
使ç¨ä¸ä¸æ
| å¼ |
SourceGraphic | SourceAlpha |
BackgroundImage | BackgroundAlpha |
FillPaint | StrokePaint |
<filter-primitive-reference>
|
|---|---|
| é»è®¤å¼ |
第ä¸ä¸ªæ»¤éåè¯ä¸º SourceGraphicï¼å¦å为åä¸ä¸ªæ»¤éåè¯çç»æã
|
| å¯å¨æ§ | æ¯ |
SourceGraphic-
è¯¥å ³é®å表示å¾å½¢å ç´ èªèº«å°ä½ä¸º
<filter>å ç´ çåå§è¾å ¥ã SourceAlpha-
è¯¥å ³é®å表示å¾å½¢å ç´ èªèº«å°ä½ä¸º
<filter>å ç´ çåå§è¾å ¥ãSourceAlphaä¸SourceGraphicå ·æç¸åçè§åï¼é¤äºåè åªä½¿ç¨å ç´ ç alpha ééã BackgroundImage-
è¯¥å ³é®å表示è°ç¨
<filter>å ç´ æ¶ï¼æ»¤éåºå䏿¹ç SVG ææ¡£çå¾å½¢å¿«ç §ã BackgroundAlpha-
ä¸
BackgroundImageç¸åï¼é¤äºåªä½¿ç¨ alpha ééã FillPaint-
è¯¥å ³é®å表示åºç¨æ»¤éææçç®æ å ç´ ç
fill屿§å¼ãå¨è®¸å¤æ åµä¸ï¼FillPaintå¨ä»»ä½å°æ¹é½æ¯ä¸éæçï¼ä½å¦æå½¢ç¶ä½¿ç¨å å«éææåéæé¨åçæ¸åæå¾æ¡è¿è¡ç»å¶ï¼é£ä¹æ åµå¯è½ä¸åã StrokePaint-
è¯¥å ³é®å表示åºç¨æ»¤éææçç®æ å ç´ ç
stroke屿§å¼ãå¨è®¸å¤æ åµä¸ï¼StrokePaintå¨ä»»ä½å°æ¹é½æ¯ä¸éæçï¼ä½å¦æå½¢ç¶ä½¿ç¨å å«éææåéæé¨åçæ¸åæå¾æ¡è¿è¡ç»å¶ï¼é£ä¹æ åµå¯è½ä¸åã <filter-primitive-reference>-
è¯¥å¼æ¯ç¨äºä¸º
<custom-ident>å½¢å¼ç滤éåè¯èµäºåç§°ã妿æä¾äºè¯¥å¼ï¼é£ä¹å¤ç该滤éåè¯çå¾å½¢å¯ä»¥è¢«åä¸ä¸ªæ»¤éå ç´ ä¸çåç»ç滤éåè¯ç in 屿§å¼ç¨ãå¦ææ²¡ææä¾ä»»ä½å¼ï¼ä¸ä¸ä¸ä¸ªæ»¤éåè¯æªç»å ¶ in 屿§æä¾å¼ï¼é£ä¹è¾åºå°åªè½ä½ä¸ºä¸ä¸ä¸ªæ»¤éåè¯çéå¼è¾å ¥ã
BackgroundImage çè§£å³æ¹æ¡
å¨ç°ä»£æµè§å¨ä¸ï¼BackgroundImage 䏿¯æä½ä¸ºæ»¤éæºï¼è¯·åè§ feComposite å
¼å®¹æ§è¡¨ï¼ãå æ¤ï¼æä»¬éè¦å¨æ»¤éå
é¨ä½¿ç¨ <feImage> å
ç´ å¯¼å
¥ä¸ä¸ªå¾åè¿è¡æ··åã
夿³¨ï¼Firefox Bug 455986 表æäº feImage æ æ³å è½½å¾åçä¸é¨åï¼å
æ¬å¨ææ¡£ä¸å®ä¹çååãç©å½¢ãè·¯å¾æå
¶ä»ç段ï¼ãå æ¤ï¼ä¸ºäºä½¿æ¤ç¤ºä¾å¨æ´å¤æµè§å¨ä¸å·¥ä½ï¼æä»¬å è½½äºå®æ´çå¤é¨æ å¿å¾åã
HTML
<div style="width: 420px; height: 220px;">
<svg
style="width:200px; height:200px; display: inline;"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<filter id="backgroundMultiply">
<!-- è¿ä¸ä¼çæã -->
<feBlend in="BackgroundImage" in2="SourceGraphic" mode="multiply" />
</filter>
</defs>
<image
href="mdn_logo_only_color.png"
x="10%"
y="10%"
width="80%"
height="80%" />
<circle
cx="50%"
cy="40%"
r="40%"
fill="#c00"
style="filter:url(#backgroundMultiply);" />
</svg>
<svg
style="width:200px; height:200px; display: inline;"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<filter id="imageMultiply">
<!-- è¿æ¯ä¸ç§è§£å³æ¹æ¡ã -->
<feImage
href="mdn_logo_only_color.png"
x="10%"
y="10%"
width="80%"
height="80%" />
<feBlend in2="SourceGraphic" mode="multiply" />
</filter>
</defs>
<circle
cx="50%"
cy="40%"
r="40%"
fill="#c00"
style="filter:url(#imageMultiply);" />
</svg>
</div>
ç»æ
è§è
| è§è |
|---|
| Filter Effects Module Level 1 > # element-attrdef-filter-primitive-in > |