檔案轉換為svg比較

原始的圖片:

轉成點陣圖,感覺是滿正常的:

再轉回向量,如果是使用 potrace:
http://potrace.sourceforge.net/#downloading

測試了調整 potrace 的參數:

Algorithm options:
 -z, --turnpolicy <policy>  - how to resolve ambiguities in path decomposition
 -t, --turdsize <n>         - suppress speckles of up to this size (default 2)
 -a, --alphamax <n>         - corner threshold parameter (default 1)
 -n, --longcurve            - turn off curve optimization
 -O, --opttolerance <n>     - curve optimization tolerance (default 0.2)
 -u, --unit <n>             - quantize output to 1/unit pixels (default 10)
 -d, --debug <n>            - produce debugging output of type n (n=1,2,3)

但都無法消除掉上面圖中造成的一個鈍角。

改用 VTracer:
https://github.com/visioncortex/vtracer

是解決掉較小的圓角時,會造成鈍角的問題,但也造成較大的曲線會造成新的鈍角:


暫時的解法,是使用肉眼先檢查一次,在FontForge 裡合併多個節點,就會變圓滑。


除了 potrace, 還可以使用 autotrace, 下載用網址:
https://github.com/autotrace/autotrace/releases

在 Mac 先使用 terminal 建立 symbol link:

ln -s /Applications/autotrace.app/Contents/MacOS/autotrace /usr/local/bin

接著就可以把 bmp 檔案轉成 svg

autotrace  --output-format svg --output-file output_filename.svg  input_filename.bmp

測試結果,會吐血,potrace 產生的檔案 11KB, autotrace 產生出 270KB檔案,使用繪圖軟體開啟 .svg 檔案,似乎沒問題,但用 FontForge 開啟 .svg 滿滿的節點。@_@;


VTracer

這是目前非常推薦的開源選擇,採用 Rust 語言編寫。它最大的特色是支援彩色影像追蹤,效果比 Potrace 豐富。它有網頁版可以直接上傳檔案測試,也有命令列工具可以整合到程式流程。它的線條處理相對平滑,適合處理標誌或插畫。

AutoTrace

這是一個歷史悠久的專案,功能比 Potrace 多。它支援彩色追蹤,並且可以設定更多參數來調整曲線的精密度。不過這個專案更新頻率較低,在某些現代系統上的安裝過程可能會比較繁瑣。如果你覺得 Potrace 轉出來的線條太生硬,可以試試這款的演算法。

Inkscape 內建工具

Inkscape 是一款免費的向量繪圖軟體,它其實內置了點陣圖轉向量的功能。在選單中找到路徑下的描繪點陣圖即可。它背後整合了 Potrace,但也加入了多層掃描功能來處理彩色影像。對於不習慣寫指令的人來說,這是最直觀的替代方案。

Vector Magic

這是一個付費的商業軟體,也有提供線上轉換服務。雖然要收費,但它的自動識別與細節保留能力通常優於開源工具。它能自動清理雜訊並處理反鋸齒邊緣,產出的 SVG 路徑非常乾淨。如果你對精準度有極高要求,且預算允許,這通常是業界公認最強的方案。

程式開發庫選項

如果你是在寫程式,Python 有一個叫做 osra 的庫可以參考。另外還有一些基於深度學習的方案在 GitHub 上出現,例如利用 AI 進行向量化,但這類工具通常運算資源需求較高。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *