SVG 濾鏡簡介
SVG 濾鏡
SVG 濾鏡用於為 SVG 圖形新增特殊效果。
所有 SVG 濾鏡都定義在 <defs>
元素中。<defs>
元素是“定義”的縮寫,包含特殊元素的定義(如濾鏡)。
使用 <filter>
元素定義 SVG 濾鏡。<filter>
元素有一個必需的 id
屬性,用於標識濾鏡。然後,圖形/影像會引用該濾鏡來使用。
接下來,在 <filter>
元素內部,我們放置一個或多個要應用於圖形的濾鏡效果(請參閱下表瞭解濾鏡效果元素的列表)。
快速示例
這裡我們使用 <feGaussianBlur>
濾鏡來模糊 SVG 圖形
這是 SVG 程式碼
示例
<svg height="100" width="100" xmlns="http://www.w3.org/2000/svg">
<defs>
<filter id="f1" x="0" y="0">
<feGaussianBlur in="SourceGraphic" stdDeviation="15" />
</filter>
</defs>
<rect width="90" height="90" fill="red" filter="url(#f1)" />
</svg>
自己動手試一試 »
SVG 濾鏡效果元素
SVG 中可用的濾鏡有:
名稱 | 描述 |
---|---|
<feBlend> | 透過某種混合模式將兩個圖形組合在一起 |
<feColorMatrix> | 基於轉換矩陣改變顏色 |
<feComponentTransfer> | 對每個畫素執行分量重對映。可以調整亮度、對比度、色彩平衡等。 |
<feComposite> | 使用合成操作在影像空間中逐畫素地組合兩個輸入影像 |
<feConvolveMatrix> | 應用矩陣卷積濾鏡效果(包括模糊、邊緣檢測、銳化、浮雕和斜面) |
<feDiffuseLighting> | 使用 alpha 通道作為凸起圖來照亮圖形 |
<feDisplacementMap> | 使用 in2 屬性的圖形中的畫素值來置換 in 屬性的影像 |
<feDistantLight> | 指定一個遠距離光源,用於照明濾鏡原語:<feDiffuseLighting> 或 <feSpecularLighting> |
<feDropShadow> | 建立圖形的陰影 |
<feFlood> | 使用 flood-color 和 flood-opacity 屬性定義的顏色和不透明度填充濾鏡子區域 |
<feGaussianBlur> | 模糊圖形 |
<feImage> | 從外部源獲取圖形資料,並提供畫素資料作為輸出 |
<feMerge> | 混合輸入圖形層(併發應用濾鏡效果,而不是順序應用) |
<feMergeNode> | 將另一個濾鏡的結果供其父級 <feMerge> 處理 |
<feMorphology> | 侵蝕或膨脹圖形(用於加粗或變細效果) |
<feOffset> | 偏移輸入圖形 |
<fePointLight> | 指定一個光源,用於建立點光效果 |
<feSpecularLighting> | 使用 alpha 通道作為凸起圖來照亮源圖形 |
<feSpotLight> | 指定一個光源,用於建立聚光燈效果 |
<feTile> | 使用輸入圖形的重複圖案填充目標矩形 |
<feTurbulence> | 使用 Perlin 湍流函式建立圖形 |
提示: 您可以在每個 SVG 元素上使用多個濾鏡效果!
在接下來的章節中,我們將只展示可能實現的濾鏡效果的一小部分,並讓您瞭解 SVG 的功能!