當你產生 SVG blob 時,預期的結果是一個精簡獨立的 SVG 檔案,內含正好一個 path 元素、明確的 width 與 height、對應的 viewBox、無障礙的圖片標籤,以及一個嚴格的六位數 HEX 填色。檔案內容與驅動頁面預覽、剪貼簿複製動作以及下載連結的標記完全一致,所以你看到什麼就會存到什麼。路徑內部的座標在序列化時會四捨五入至小數點後兩位,這讓標記保持簡短易讀,同時仍比任何支援的畫布尺寸所能顯示的像素網格還要精細。由於每個 blob 都是由確定性的種子產生器建構,幾何形狀是可重現的,而目前的種子會顯示在預覽下方,方便你日後記錄並重現有用的形狀。因此預期的結果並非螢幕截圖、非扁平化的點陣圖,也不是伺服器端的模型;它是一段貨真價實的向量文字,能在任何相容的瀏覽器或編輯器中維持可縮放。
提前了解這一點很重要,因為人們通常選擇 SVG blob 的原因,是要把一個柔和、有機的形狀放在 hero 區段背後、卡片內部或空白內容區之上。如果你預期會收到透明的 PNG、動畫循環或漸層樣式的圖形,你將會感到意外;產生器只會輸出一個單色平面填色的封閉形狀,僅此而已。理解輸出的確切形狀,有助於你判斷是否仍需要在後續流程中加上最後的修飾。

產生器作為檔案回傳的內容
輸出是一份結構清楚的精簡文字文件。預期的文件以 SVG 根標籤開頭,宣告以像素為單位的明確 width 與 height 屬性,而且這些屬性永遠會與 viewBox 中宣告的值一致。根標籤內部是一個 path 元素,其 d 屬性包含繪製 blob 的移動、二次曲線以及閉合路徑指令。該 path 上的 fill 屬性是一個六位數的 HEX 色彩,沒有簡寫、沒有 alpha,也沒有 CSS 變數參考。文件還會帶有一個 title 或 aria-label,以便螢幕閱讀器識別影像,內容大致就是這樣。檔案中沒有內嵌點陣圖、沒有內嵌字型、沒有 script 標籤、沒有 foreignObject、沒有 clipPath、沒有 mask、沒有 animation 標籤,也沒有 stylesheet 區塊。這個結果刻意保持精簡,以便能通過大多數消毒器,並且方便手動編輯。
預期下載的檔案是真實的 SVG 文字,而不是點陣快照。它以 data URL 的形式提供,這代表你存檔的內容是直接的標記,而不是 base64 編碼的點陣圖。在 Inkscape、Illustrator 或 Figma 等向量編輯器中開啟時,該形狀可以作為單一 path 進行編輯,各錨點和控制把手都可以移動。當嵌入 HTML 或 CSS 時,由於消費端的渲染器會直接讀取 path 指令,檔案能在不損失品質的情況下縮放。
Blob 形狀看起來像什麼
預期的輪廓是一條平滑且封閉的有機曲線,而不是多邊形或圓形。頂點會以等角間隔分布在畫布中心周圍,而 irregularity 控制項會調整每個頂點距離該中心的遠近。當 irregularity 為 0% 時,所有頂點共用相同的半徑,這會產生一個完美的正多邊形,其邊線會被曲線步驟柔化。在較高的 irregularity 值下,各半徑會產生分歧,但所有點都會留在保守的畫布邊界內,讓輪廓絕對不會被 viewBox 裁切。將頂點數從 3 增加到 12 會增加更多彎折,使輪廓看起來更細緻;然而這並不會改變檔案中的座標精度,因為無論要求多少頂點,所有序列化的座標都會四捨五入到小數點後兩位。
曲線本身是由二次貝茲曲線段構成,而不是直線。產生器會從最後一個與第一個頂點的中點開始,接著依序走過每對頂點之間的中點,繪製一條以原始頂點為控制點的二次曲線。由於曲線在中點而非頂點處相接,輪廓能夠連續流動,不會出現尖角。如果結果看起來有稜有角,通常代表 irregularity 相對於頂點數偏高;如果結果看起來過於圓滑,通常代表 irregularity 相對於頂點數偏低。
如何產生預期的結果
- 在現代瀏覽器中開啟 SVG Blob Generator;不需要帳號或上傳,而且所有處理都在你的裝置上完成。
- 將頂點數設定在 3 到 12 之間,將 irregularity 設定在 0 到 100 percent 之間,選擇介於 256 到 1024 像素之間的正方形畫布大小,並透過瀏覽器的色彩選擇器挑選填色,以確保 HEX 值始終有效。
- 重複按下 Randomize Shape,直到預覽符合你想要的輪廓。每次按下時,瀏覽器都會向其加密隨機來源要求一個新的無號 32 位元種子,因此預覽會以確定性的方式重新繪製,而你的幾何與色彩設定保持不變。
- 讀取預覽下方顯示的種子,並將它與頂點、irregularity、大小和顏色一起記下來,方便日後重現完全相同的形狀。
- 使用 Copy SVG 將完整標記寫入剪貼簿,或使用 Download SVG 儲存檔名包含種子的檔案。如果剪貼簿權限被拒絕,相同的標記仍會顯示在唯讀文字區域中,你可以手動選取並複製。
- 在你的目的地瀏覽器、設計工具、電子郵件模板或 CMS 中開啟該檔案,並確認形狀在放大與縮小尺寸下都能正確呈現,特別是當有文字會疊在它上方時。
每個控制項會改變輸出的什麼部分
這四個明確的控制項都會以可預測的方式影響輸出。Vertices 會改變 path 內含的錨點數量,進而影響輪廓的細節層級。Irregularity 會改變確定性種子產生器為每個錨點指派的半徑,進而影響輪廓的變化程度。Size 會改變畫布尺寸,而由於 viewBox 會設定為與 width 和 height 一致,在 CSS 或 HTML 中縮放 SVG 時,整個形狀會按比例縮放。Fill 會改變 path 上的 color 屬性,且該色彩永遠會以前置井字號序列化為六個十六進位數字。Randomize 按鈕不會更動上述四個數值中的任何一個;它只會更換種子,這就是為什麼同一組 vertex、irregularity、size 與 color 組合可以產生許多視覺上截然不同的 blob。
| 控制項 | 可接受的值 | 對結果的影響 |
|---|---|---|
| 頂點數 (Vertices) | 介於 3 到 12 之間的整數 | 增加輪廓中的錨點數與彎折數 |
| 不規則度 (Irregularity) | 介於 0 到 100 之間的整數 | 增加每個錨點的半徑相較於平均值可變化的幅度 |
| 大小 (Size) | 介於 256 到 1024 px 之間的正方形畫布 | 設定檔案的 width、height 以及對應的 viewBox |
| 填色 (Fill) | 六位數 HEX 色彩 | 設定 path 上唯一的 fill 屬性;無簡寫,無 alpha |
| 種子 (顯示用) | 無號 32 位元整數 | 決定半徑模式;相同的輸入加上相同的種子會產生相同的 blob |
之所以將種子顯示在預覽下方,正是因為可重現性是預期結果的一部分。如果你產生了喜歡的形狀,請同時擷取種子與四個可見的控制項;之後只要在產生器中輸入相同的值,理應能重現相同的點、相同的 path 指令以及相同的序列化標記。這項行為由確定性的測試所支援,也是產生器拒絕在頁面水合或無關的重新渲染過程中悄悄改變形狀的原因。
這個工具刻意省略的部分
預期的結果不會包含漸層、描邊、陰影、發光效果、clip path、mask、CSS class、內嵌字型、中繼資料、點陣圖備援或動畫。任何這些項目都是你在下載標記後刻意新增的內容,通常會在向量編輯器或針對內嵌 SVG 的 CSS 中進行。此產生器同樣不是一套完整的向量編輯器:它無法讓你個別拖曳錨點、合併多個 blob,或貼上你自己的 path 指令。如果你的設計需要在 blob 中央加上漸層停點,請自行在標記中加入 linearGradient 或 radialGradient 元素,並透過 path fill 參考其 id。如果你的平台需要 PNG 備援,請自行透過你的流程將 SVG 渲染為點陣圖;下載的檔案中不會包含點陣圖鏡像。
同樣值得注意的是,有些下游平台即使面對有效的標記仍會拒絕該檔案。電子郵件用戶端、嚴格的內容安全政策以及特定 CMS 的消毒機制可能會移除內嵌 SVG 或阻擋 data URL,而產生器並不會繞過這些限制。最安全的工作流程是先下載檔案,然後在最終的瀏覽器、編輯器、電子郵件模板或內容系統中測試後再投入正式使用。path 資料本身遵循 W3C SVG 2 文法中的移動、二次曲線與閉合路徑指令,因此任何遵守該規範的消費端都能正確渲染該形狀。如果你需要關於在產生檔案中看到的 path 指令的權威參考資料,W3C SVG 2 Paths 規範詳細說明了精確的序列化規則。
在採用輸出之前先閱讀它
在你正式採用結果之前,請同時以放大與縮小的尺寸檢視預覽,因為高 irregularity 可能會產生過於緊密的彎折或視覺上不平衡的量體感,只有在 blob 縮小時才會顯現出來。如果該形狀會作為文字背景,請使用專用工具檢查實際對比,並預留充足的留白,而不是假設畫布邊界能保證可讀性。如果你需要在兩個地方取得完全相同的 blob,例如 hero 插圖和對應的社群卡片,請依賴記錄下來的種子,而不是按兩次 Randomize 並祈求好運。請將此產生器視為一個專注於形狀的產生工具:它只會回傳如上所述的標記,既不會多也不會少,而這種可預測性正是它的價值所在。當你理解應該預期什麼時,你就能在管線的其他位置安排最後的修飾,而不必為了檔案含或不含什麼內容而感到意外。如果你想更深入了解如何擷取種子以供日後使用,請參閱關於在產生 SVG blob 時重現相同結果的指南。
如果你正在權衡各種選項,為 CSS 背景產生 SVG 圖樣的最佳方式對此有詳細探討。