分享交流编程相关的话题?
回复
头像
ejsoon
一枝独秀
帖子: 6468
注册时间: 2022年 11月 18日 17:36
联系:

如何用svg的path畫出螢光效果?

帖子 ejsoon »

图片

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>` 上。
* **多層次疊加**:在實際的霓虹燈或螢光效果中,結合「大範圍低亮度模糊」與「小範圍高亮度模糊」可以讓發光看起來更真實、更有立體感。
上次由 ejsoon 在 2026年 8月 7日 11:34,总共编辑 1 次。
https://ejsoon.vip/
弈趣極光:享受思維樂趣
头像
ejsoon
一枝独秀
帖子: 6468
注册时间: 2022年 11月 18日 17:36
联系:

Re: 如何用svg的path畫出螢光效果?

帖子 ejsoon »

如果背景是白色或淺色,也可以實現螢光效果嗎?

gemini flash-lite

代码: 全选

在白色或淺色背景下,要實現明顯的「螢光」或「發光」效果會比較具有挑戰性,因為在物理世界中,發光體(如霓虹燈、螢幕)必須比周圍環境更亮才能被看出光暈。

如果直接使用深色線條加上淺色光暈,在白色背景上看起來會像是「陰影」或「髒污」,而不是發光。不過,透過幾種設計技巧,依然可以在淺色背景上完美呈現出強烈的螢光視覺:

---

### 1. 核心調整策略

* **提高對比與亮度**:使用飽和度極高、明度適中的螢光色(例如:螢光綠、亮粉紅、電光藍)。
* **使用「混合模式 (Blend Mode)」**:利用 CSS 的 `mix-blend-mode`,讓光暈與白色背景產生色彩相乘或濾色效果,模擬強光照射的感覺。
* **雙層光暈結構**:內層使用較濃郁、偏亮的色彩維持線條辨識度;外層使用大範圍、半透明的擴散光暈。

---

### 2. 淺色背景專用程式碼範例

這裡利用 SVG 濾鏡結合多層模糊,並透過調整明暗對比,讓它在白色背景下也能呈現出耀眼的螢光感:

```xml
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 300" width="100%" height="100%" style="background-color: #ffffff;">
  <defs>
    <filter id="neon-light-bg" x="-50%" y="-50%" width="200%" height="200%">
      <feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur1" />
      
      <feGaussianBlur in="SourceGraphic" stdDeviation="3" result="blur2" />
      
      <feMerge>
        <feMergeNode in="blur1" />
        <feMergeNode in="blur2" />
        <feMergeNode in="SourceGraphic" />
      </feMerge>
    </filter>
  </defs>

  <rect width="100%" height="100%" fill="#ffffff" />

  <path d="M 50 150 Q 150 50, 250 150 T 450 150" 
        fill="none" 
        stroke="#00e5ff" 
        stroke-width="12" 
        stroke-linecap="round"
        opacity="0.3"
        filter="url(#neon-light-bg)" />

  <path d="M 50 150 Q 150 50, 250 150 T 450 150" 
        fill="none" 
        stroke="#0099ff" 
        stroke-width="4" 
        stroke-linecap="round" />
</svg>

```

---

### 3. 在淺色背景下做得好看的小撇步

* **加入深色外框或底線**:在發光路徑的正下方疊加一條較粗、顏色較深的相同路徑,可以瞬間跳脫背景,讓螢光線條看起來更有立體浮雕感。
* **善用霓虹色系**:避免使用黃色或淡綠色(在白底上會看不見),改用**亮桃紅(#ff007f)**、**電光藍(#0055ff)**或**螢光紫(#7928ca)**,在白底上的視覺衝擊力最強。
https://ejsoon.vip/
弈趣極光:享受思維樂趣
头像
ejsoon
一枝独秀
帖子: 6468
注册时间: 2022年 11月 18日 17:36
联系:

Re: 如何用svg的path畫出螢光效果?

帖子 ejsoon »

@圈宝:圖片庫裡面的圖不見了?

查了下,是因為沒有設定寬度。
https://ejsoon.vip/
弈趣極光:享受思維樂趣
回复
  • 相似主题
    回复总数
    阅读次数
    最新帖子

在线用户

正浏览此版面之用户: 没有注册用户 和 7 访客