學習SVG系列(4):SVG濾鏡效果

注意:Internet Explorer和Safari不支持SVG濾鏡svg

<defs>、<filter>url

全部互聯網的SVG濾鏡定義在<defs>元素中,<filter>標籤用來定義SVG濾鏡,<filter>標籤使用必須的ID屬性來定義向圖形應用到那個濾鏡中orm

 

SVG模糊效果xml

<feGaussianBlur>blog

feGaunssianBlur元素是用於建立模糊效果io

 

SVG代碼:互聯網

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <defs>
    <filter id="f1" x="0" y="0">
      <feGaussianBlur in="SourceGraphic" stdDeviation="15" />
    </filter>
  </defs>
  <rect width="90" height="90" stroke="green" stroke-width="3"
  fill="yellow" filter="url(#f1)" />
</svg>im

代碼解析:filter

    <filter>元素id屬性定義一個濾鏡的惟一名稱db

    <feCaussianBlur>元素定義模糊效果

    in="SourceGraphic"這個部分定義了由整個圖像建立效果

    stdDeviation屬性定義模糊量

    <rect>元素的濾鏡屬性用來把元素連接到「f1」濾鏡

 

SVG陰影

<feOffset>

feOffset元素用於建立陰影效果

實例1

偏移一個矩形(帶<feOffset>),而後混合偏移圖像頂部(含<feBlend>)

 

SVG代碼:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <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>

 

實例2

偏移圖像能夠變的模糊(含<feGaussianBlur>)

 

SVG代碼:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <defs>
    <filter id="f1" 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(#f1)" />
</svg>

代碼解析

    元素的stdDeviation屬性定義了模糊量

 

實例3

製做一個黑色的陰影

 

SVG代碼:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <defs>
    <filter id="f1" 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(#f1)" />
</svg>

代碼解析:

         feOffset元素的屬性改成"SourceAlpha"在Alpha通道使用殘影,而不是整個RGBA像素

 

實例4

爲陰影塗上一層顏色

 

SVG代碼:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">   <defs>     <filter id="f1" 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(#f1)" /> </svg>

相關文章
相關標籤/搜索