跳到主要內容

SVG 改色與代碼優化器 —— 選色盤改色,順手清掉雜訊

上傳或貼上 SVG,用視覺化選色盤即時改色,並自動清掉註解、編輯器留下的 metadata 與多餘留白。全程在瀏覽器內完成,內容不會上傳。 圖上用到的顏色會被自動列成一張清單,點一個顏色就換掉圖上所有用到它的地方,不必進原始碼一個一個找 hex。

什麼情況會需要改一張 SVG

  • 免費圖庫下載的圖示是黑色的,要換成品牌色才能放進版面。
  • 同一組圖示要出深色與淺色兩個版本,顏色必須一致。
  • 設計軟體匯出的 SVG 塞滿編輯器的 metadata 與註解,檔案比實際內容大好幾倍。
  • 要把 SVG 直接內嵌進 HTML 或元件裡,多餘的屬性會一起進版控。
  • 收到來源不明的 SVG,想在放進網站之前先把可執行的內容清掉。

三個步驟改好一張 SVG

  1. 上傳 SVG 檔案,或切到「貼上原始碼」貼上一段 SVG 文字。
  2. 左側會列出圖裡用到的每個顏色,點色塊或輸入 hex 改色,右側預覽立刻跟著變。
  3. 改完按「下載 SVG」存檔,或「複製 SVG 原始碼」貼到其他地方用。

不知道要拿什麼來試,按「載入範例」會帶入一個示範用的小圖示。

顏色是怎麼被找出來的

SVG 的顏色可能寫在三個地方:fillstroke 屬性、行內 style="fill:…",或是 <style> 區塊裡用 class 選到的規則——最後一種在 Illustrator、Figma 匯出的檔案裡很常見。這個工具不管顏色寫在哪裡, 一律找得到,並列成左側一格一格的色塊,改色時用一段行內樣式蓋過原本的定義, 不會直接改寫你原本的屬性或 <style> 規則文字,所以原始碼裡有時還看得到舊的 hex 值,那是正常的——實際生效的顏色以預覽與下載出來的檔案為準。

漸層與圖樣(<linearGradient><pattern> 之類)內部定義的顏色 不在這個工具的範圍內,會被跳過、無法在這裡編輯,左側會用一行文字提醒有幾個這樣的顏色被略過。

優化器會清掉什麼、不會動什麼

這一步一律自動套用,不是可以關掉的選項,清掉的都是不影響外觀的東西:

  • 所有留言(<!-- -->)。
  • <metadata>,以及 Inkscape、Illustrator 等編輯器留下的專屬命名空間元素與屬性。
  • 沒有內容、沒有屬性的空群組。
  • 純粹用來排版縮排的空白,圖裡真正要顯示的文字不會被動到。

這不是 SVGO 等級的最小化工具:不會動路徑座標的精度,也不會重新精簡 <style> 區塊本身的規則文字。真的需要極致壓縮的檔案大小, 這個工具做不到那個程度。

上傳的內容會先被消毒

這一步同樣一律自動套用。SVG 可以合法地內嵌 <script>onload 這類事件屬性,或是指到外部網址的 <use><image> 參照,一旦被瀏覽器解析就可能執行程式碼或偷偷發出網路請求。 這個工具在解析階段就會移除這幾種內容,就算你上傳的檔案來路不明也不會執行任何東西, 只會被當成純圖像資料處理。

你上傳或貼上的內容會不會離開瀏覽器

不會。解析、改色、優化與消毒全部在你的瀏覽器裡完成,沒有任何請求會把內容送出去, 下載與複製的檔案也是在你的電腦上組出來的。細節見隱私權政策

常見問題

可以改漸層裡的顏色嗎?
不行,漸層與圖樣內部的顏色定義超出這個工具的範圍,會被跳過並提示略過的數量。
下載的檔案裡為什麼還看得到舊的 hex?
改色是疊加一段行內樣式蓋過原本的定義,不是直接改寫原始屬性或 style 規則的文字,所以原本的顏色文字有時還在,但實際畫出來的顏色以行內樣式為準。
優化後路徑資料會被精簡嗎?
不會。優化器只清掉註解、metadata、編輯器屬性與排版空白,不會動任何座標或路徑指令。
可以一次處理多個 SVG 檔嗎?
不行,一次只能處理一個檔案,處理完下載後可以再上傳下一個。
檔案大小有限制嗎?
上限是 2 MB,一般圖示與插畫用的 SVG 都遠低於這個大小。