如何用svg的path畫出螢光效果?
发表于 : 2026年 8月 7日 11:30
gemini flash-lite
代码: 全选
要用 SVG 的 `path` 做出**螢光(Glowing)效果**,最核心的技巧是結合 **SVG 濾鏡(`<filter>`)**,特別是使用 `feGaussianBlur`(高斯模糊)來製造發光暈染,再透過 `feMerge` 將發光的層疊在原始圖形下方或上方。
以下是實現螢光效果的完整步驟與範例程式碼:
---
### 1. 核心實作步驟
1. **定義濾鏡 (`<defs>` 與 `<filter>`)**:在 SVG 中建立一個濾鏡,並給它一個唯一的 `id`。
2. **製造模糊光暈 (`<feGaussianBlur>`)**:使用高斯模糊濾鏡將路徑的顏色暈開,數值越大,光暈範圍越廣。
3. **顏色與強度調整 (`<feColorMatrix>` 或直接疊加)**:可以透過顏色矩陣調整亮度,或直接疊加多層不同粗細與模糊度的光暈來增加層次感。
4. **合併圖層 (`<feMerge>`)**:先畫出模糊的光暈層,再把原本清晰的 `path` 覆蓋在最上方,讓發光主體保持銳利。
---
### 2. 完整程式碼範例
你可以將以下程式碼直接存成 `.svg` 檔案,或放入 HTML 中檢視:
```xml
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 300" width="100%" height="100%" style="background-color: #0d1117;">
<defs>
<filter id="neon-glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceGraphic" stdDeviation="12" result="blur1" />
<feGaussianBlur in="SourceGraphic" stdDeviation="4" result="blur2" />
<feMerge>
<feMergeNode in="blur1" />
<feMergeNode in="blur2" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
</defs>
<rect width="100%" height="100%" fill="#0d1117" />
<path d="M 50 150 Q 150 50, 250 150 T 450 150"
fill="none"
stroke="#00ffcc"
stroke-width="4"
stroke-linecap="round"
filter="url(#neon-glow)" />
</svg>
```
---
### 3. 關鍵屬性解析
* **`stdDeviation="12"`**:控制高斯模糊的強度。數值越高,光暈擴散得越廣、看起來越柔和;數值越低,光暈越集中。
* **`filter="url(#neon-glow)"`**:將定義好的濾鏡套用到你的 `<path>` 上。
* **多層次疊加**:在實際的霓虹燈或螢光效果中,結合「大範圍低亮度模糊」與「小範圍高亮度模糊」可以讓發光看起來更真實、更有立體感。