匯入 SVG
把 Illustrator、Affinity Designer、Inkscape 或 Figma 的向量作品帶進來,變成可編輯的形狀圖層,以及哪些 SVG 功能撐不過這趟路。
SVG 在這裡會變成真正的幾何:路徑變成形狀圖層,帶著你可以用節點工具編輯的錨點和控制桿,而不是一張畫的圖片。檔案裡的群組會變成圖層面板裡的群組。
有四條路可以進來,而且它們走的是同一個讀取器:
- 檔案 ▸ 匯入 ▸ SVG… 匯入你目前開著的專案
- 檔案 ▸ 開啟… 選一個 SVG,會圍著它建一份新的未命名專案
- 把檔案丟在畫布上會匯入它;丟在別處則會把它開成一個新專案
- Ctrl+V 貼上從別的軟體複製來的 SVG 標記
從檔案匯入時,外層群組取檔案的名字。從剪貼簿貼上時,它叫做 SVG。
什麼變成什麼
| SVG 裡 | Celas Studio 裡 |
|---|---|
| g、a,以及巢狀的 svg | 一個群組圖層 |
| path、rect、circle、ellipse、polygon、polyline、line | 各自一個形狀圖層 |
| image | 一個影像圖層 |
| linearGradient、radialGradient | 用到它的那個形狀上的漸層填色或筆畫 |
| text | 一個空的佔位圖層,用前幾個字命名 |
每一個路徑指令都讀得懂,包括橢圓弧,而且全部轉成三次貝茲曲線。複合路徑(一個字母 O、一個甜甜圈,任何帶洞的東西)會維持成一個形狀圖層,內部的輪廓原封不動,所以洞還是洞,整體也仍然可以當成單一物件編輯。
填色、填色規則、筆畫、筆畫寬度、端點和轉角、不透明度和漸層全部都會過來,而且筆畫寬度會跟著作品一起縮放,所以線條粗細看起來是對的。檔案裡標成隱藏的東西,進來時也是隱藏的。
顏色會依繪圖模型用到的每一種 CSS 寫法讀取:具名顏色、#RGB、#RGBA、#RRGGBB、#RRGGBBAA、rgb() 和 rgba(),數值寫法裡也接受百分比。四位和八位的十六進位寫法會把它們的 alpha 一起帶過來。
rx 和 ry 不同的圓角矩形,匯入後真的會是橢圓形的角。rx 和 ry 相同時,它會維持成一個普通矩形並改帶一個圓角半徑,這樣節點工具的圓角控制點在它身上仍然有用。
連結的 <image> 會相對於 SVG 自己的資料夾去解析,所以參照到同層檔案的作品載得進來。內嵌的 data: URI 則會直接解碼。
群組不帶變形
檔案裡的變形會被烘進作品本身,所以你拿到的群組是純粹的結構,自己不帶旋轉或縮放。圖會準確落在檔案說的位置,之後你要旋轉或縮放這個群組,底下也不會有東西跟著位移。
哪些不支援
讀取器涵蓋的是繪圖模型,不是整份 SVG 規格。以下全部都會被略過,而且不會有訊息。
- CSS style 區塊和 class 屬性:見下面的警告
- use 和 symbol:圖示集和重複的實例會匯入成空的
- clipPath 和 mask:剪裁不會被套用,所以原本被剪掉的作品可能會跑出來
- 圖樣填色,會退回成平灰色
- 濾鏡效果:模糊、陰影之類的
- marker:箭頭和線端符號
- stroke-dasharray 和 stroke-dashoffset,所以虛線筆畫會匯入成實線
- switch、foreignObject,以及 SMIL 動畫
- 文字:字體、大小和位置都會遺失,只留下一個具名的佔位圖層
- 百分比與相對單位,以及寫在 style 屬性裡的變形
準備一個匯得乾淨的檔案
- 匯出前先把文字轉成外框;文字進來只會是一個佔位圖層。
- 把你想保留的筆畫、虛線、圖樣和任何濾鏡效果展開。
- 釋放剪裁遮色片,或是把作品裁到該看得見的範圍。
- 把符號和重複的實例展開,讓任何東西都不依賴 use。
- 匯出時用呈現屬性而不是 CSS,並替文件加上 viewBox。
尺寸與擺放
文件的寬度和高度可以是像素、點、派卡、英吋、公釐或公分,會和 viewBox 一起換算,把圖縮放到合理的大小。以百分比標尺寸的檔案(常見的 width=100% 網頁標誌)會依它的 viewBox 尺寸匯入,而不是被拉開。作品接著會置中到你的畫布上。