玩 ESP/Arduino 想在 OLED 或點陣式 LED 顯示中文,中文點陣字型來源一直是個問題。

關於中文點陣字型,多年前我有研究出倚天中文跟國喬中文的字型檔解析(延伸閱讀:Coding4Fun - 點陣中文字型顯示),但授權是個無法迴避的問題。在網路上不難找到這兩套絕版軟體的字型檔案,使用倚天中文字型需要取得授權,國喬中文據說針對非商業應用開放授權,但我找不到相關的授權依據,是否能合法引用仍具爭議。

那麼,有沒有開源的中文點陣字型呢?有的,文泉驛是套開源漢字字型專案,旨在提供 GNU/Linux 高品質中文字型,直接有提供點陣宋體。但研究了一下,文泉驛字型有兩個問題:1) 它以簡體中文為主,雖然涵蓋繁體字,但其字型風格並不符台灣的習慣 2) 它採用 GPL 授權,專案必須開源才能使用。前著將就一點就算了,後者比較麻煩,雖然平日 Coding4Fun,我常常一言不和就開源,但被人抵著脖子威脅必須 GPL,感覺就是不開心。(GPL 無所不用其極逼所有人開源,但再熱心的開發者也會想擁有自由)

如果自己將向量字體轉成點陣字行不行呢?

這要看字型廠商的授權規定,三年前爆出 YouTuber 被追訴字型授權費用的事件,當時微軟內附字型的廠商曾發表聲明提到:

凡透過合法授權之微軟系統使用新細明體、標楷體,廠商不會主動要求支付相關授權費用。但將字型直接取出搭載(內嵌)於非微軟系統之第三方軟、硬體中的以下情況除外,例如於各式嵌入式裝置、電子遊戲、App、電子書,以及安裝於提供 ASP(應用服務提供者)等網路服務伺服器等。

意思是,在 Windows 裡用新細明體、標楷體打 Word 做 PowerPoint 開小畫家做海報,甚至印表輸出都是 OK 的,但把 Windows 新細明體轉到 Arduino/ESP 當成點陣字來源絕對命中上述的但書。

網路還有流傳一種號稱可商用的日系遊戲點陣字,但原始來源與授權不明,且支援漢字範圍可能也不齊全,也很難說是完整的解決方案。

想了想,眼前唯一的選擇只剩下 Google 與 Adobe 聯手推出的免費開源字型 Google Noto Fonts。 (題外話:我今天才知道 Noto 名稱的由來,NO more TOfu,想要讓世界不要再因缺字出現「豆腐」(白方格)了,:D)

Noto Fonts 家族支援繁體中文的是思源黑體(Source Han Sans),它採用 SIL 開源字型授權,只規定商業發售時必須連同其他軟體,不可單獨販售其字型。(其實要規避也簡單,寫支 Hello World 程式一起賣就好了) 若為免費發佈,則完全無限制,加上其開源允許任何人修改演化,是真正自由又開源的字型。

寫程式將思源黑體轉成 16x15 點陣字是個不會引起授權爭議的好方法,但品質如何?

用繪圖程式手工試做成 16x15 大小,放大看可明顯看出其精美度跟人工編輯的原生點陣字型無法相提並論,說真的看起來還行,在原始尺寸下倒也閱讀無礙(尤其是點陣 LED 之類應用本來便不以精美著稱)。這解法稱不上美觀,而最大好處可以附在必須有字型檔才能運作的開源專案裡,不必擔心熱心分享惹來一身腥。

有空再來寫個轉檔程式當成 Coding4Fun 練習好了。

【2021-06-14 補充】

感謝讀者 Huang、Sword Huang 再補充了幾個選擇:

  1. 全真字庫,採政府資料開放授權條款,相當於 CC BY,需做姓名標示。
    有提供 24x24 的點陣 PNG 檔是一大特色,但檔名採 EUC-TW 編碼,.NET/Windows 不支援,處理起來較費事。
  2. 文鼎公眾授權字型 Arphic Public License Fonts
    非商用可免費使用,若為商用或營利性質需取得授權。
  3. 螢火飛點陣字型
    背後有神奇的故事。台灣的螢火飛(Firefly)前輩於 2004 年合併了『文鼎PL細上海宋』和『文鼎PL簡報宋』的繁簡英數符號字型,再加上 12 點(9pt)、13 點(10pt) 及 15點(11pt)、16點(12pt) 四個常用大小點陣字併合成一套新字型 -『文鼎 PL新宋』(AR PL New Sung, fireflysung.ttf),這項浩大工程由螢火飛個人獨力耗時半年完成,近視為此加深,一隻滑鼠亦被按到壯烈犧牲,這位無名滑鼠確實為自由軟件中文代劃下重要一頁。文鼎 PL 新宋已併入 CJKUnifonts 計劃。 參考:中文字形的下載 by jacky_chi
    看了一下 fireflysung.ttf 所附的授權是 1999 年版的文鼎公眾授權書,其中並未限制商用(但散佈時必須包含 ARPHICPL.TXT),但點陣字的部分被宣告 GPL,若取出仍有需依循 GPL 的疑慮。
  4. 王漢宗自由字型
    雖然部分與文鼎有版權糾紛,但有 17 套沒問題,以 GPL 授權提供。


Comments

# by Huang

這個點矩陣字型檔好像可以,參考看看 全字庫授權:全字庫字型檔-明體點矩陣字型檔(png) https://www.cns11643.gov.tw/pageView.jsp?ID=59

# by Jeffrey

to Huang, 謝謝分享。全字庫也是免費可商用(但需明確標示來源),有24x24點陣檔是大優點(可惜我較需要16x16),但處理時需要轉 EUC 碼(.NET 內建不認得,非常麻煩)。

# by Sword Huang

螢火飛點陣字型 (FireFly Bitmap Font) 不知符不符合你的需求? 這套字型好像整合進 https://www.freedesktop.org/wiki/Software/CJKUnifonts/ 中

# by Jeffrey

to Sword Hunag,感謝分享。已補充於文末,內嵌點陣字型的 fireflysung.ttf 轉出品質會比思源黑體更好,但點陣字型部分仍屬 GPL,限制較多。

# by RGM-79[G]

其實我也想弄一套可以高枕無憂的點陣字體(個人偏好11+1(space)這一大小) 請問一下,若具體想要將思源黑體的字取樣成為點陣模型 再輸出成向量字體(如:ttf)效果會不會很糟? 具體作法可否指導一下呢?

# by Jeffrey

to RGM-79[G],思源黑體向量字轉點陣我試過,筆劃一多就悲劇了 https://www.facebook.com/darkthread.net/posts/345063490323424 向量轉點陣這條路,尺寸大一點或許還行,16x16 要成功很難(要人工修飾,或是加入 AI)。

# by RGM-79[G]

看了大大的影片.... 看來真的是沒那麼好的事啊......Orz

# by 無名氏

你好,我是日本人(我是臺裔,但我的中文一點也不好哦,是辣雞唷xd 而關於台語與注音,我只記得『母湯喔』,『ㄏㄏㄏ(哈哈,呵呵)』啊(絕望 我喜歡倚天中文字體和國喬中文字體,因為對我來說感到非常漂亮,做這些兩款字體的人幹的不錯 對了,你還記得『靠北工程師』嗎?那網頁曾用倚天中文字體啊(現在網頁的大部分已用別的字體,ET中文字體只用官方頭像哦 我的中文可以的話,請按任一鍵繼續...

# by Petrushka

全字庫已公告:現行戶政系統已全面使用向量字形(宋體),不再使用點陣圖字體(明體),全字庫網站預計於111年6月15日起,字形資訊頁面不再顯示明體字形,並且不提供下載點陣圖字體。

Post a comment