
在開發Pixelfarm渲染庫時,
我認為從字體渲染字形的方法可能對其他庫有用。
因此,我從字體到此處的字體庫插入了字形。

https://www.f0nt.com/release/sov_thanamas/ sov_thanamas font
排版庫是一個跨平台庫,不需要Pixelfarm渲染庫。
您可以使用庫讀取字體文件(.ttf,.otf,.ttc,.otc,.woff,.Woff2)和
核心模塊(tostagraphy.openfont,fessography.glyphlayout)不提供字形渲染實現。但是,由於您能夠訪問和閱讀所有字形,因此,只要每個字形的確切位置就可以渲染它們。
以下是一些項目的屏幕截圖,這些項目使用版式從字體文件中讀取每個字形並使用其渲染引擎渲染。

1. Matterhackers/agg-sharp,2。 csharpmath/skiasharp,xamarin.forms,3。 emoji.wpf/wpf/wpf,4。 zwcloud的imgui/gle
核心模塊是版式。 openfontand fockography.glyphlayout。
版式
fessography.glyphlayout
由於Glyphlayout引擎不穩定且相當複雜,因此我將其與OpenFont Core項目分開。

1)冠狀動脈模塊,2)排版:比核心模塊更易於使用
在此處查看有關2個模塊和其他模塊的更多詳細信息:#99
由於核心庫不提供字形渲染實現,因此您可以從上面的示例存儲庫中學習如何進行操作,也可以從我的實現=> pixelfarm.typography中學習。
PixelFarm.Typography將核心版式庫鏈接到Pixelfarm渲染庫。您可以學習如何實現字符串繪圖,如何實現文本劃線服務以及如何緩存字形形狀,以便您可以將其應用於自己的庫。

htmlrenderer在GLES2表面上,文本用Pixelfarm呈現。
該項目基於多個使用允許許可證的開源項目(下面列出)。
整個項目的許可證是麻省理工學院。
但是,如果您直接複製源代碼,請檢查每個源文件的標題,以獲取許可信息(如果有)。
字體
Apache2,2014-2016,塞繆爾·卡爾森(Samuel Carlsson),非常感謝https://github.com/vidstige/nrasterizer
麻省理工學院,2015年,邁克爾·波普洛斯基
Freetype項目許可證(3-Clauses BSD樣式),2003-2016,David Turner,Robert Wilhelm和Werner Lemberg等,https://www.freetype.org/
apache2,2018,apache/pdfbox作者,https://github.com/apache/pdfbox
Apache2,2020,Adobe字體開發套件(afdko),https://github.com/adobe-type-tools/afdko
文本處理
Unicode(BSD樣式),2020年, Unicode,Inc ,https://www.unicode.org/license.html
Apache2,2014,Muhammad Tayyab Akram,https://sheenbidi.codeplex.com/,https://github.com/tehreer
幾何學
BSD,2002-2005,Maxim Shemanarev,反晶體幾何形狀 - 版本2.4 http://www.antigrain.com
BSD,2007-2014,Lars Brubaker,Agg-Sharp,https://github.com/matterhackers/agg-sharp
麻省理工學院,2016年,Viktor Chlumsky,https://github.com/chlumsky/msdfgen
BSD,2009-2010,poly2tri貢獻者,https://github.com/paintlab/poly2tri-cs
Apache2,2016-2017,Winterdev,https://github.com/paintlab/pixelfarm
平台
麻省理工學院,2015-2015,Xamarin,Inc.,https://github.com/mono/skiasharp
MIT,2006- 2009年,Stefanos Apostolopoulos和其他開放工具套件貢獻者,https://github.com/opentk/opentk
麻省理工學院,2013年,安東尼·布洛姆(Antonie Blom),https://github.com/andykorth/pencil.gaming
MIT,2004,2007,Novell Inc.,用於系統。
打開包裝,Zlib,brotli
麻省理工學院,2018年,夏普齊普布,https://github.com/icsharpcode/sharpziplib
MIT,2009年,2010年,2013 - 2016年作者,由Brotli作者。
麻省理工學院,2017年,brezza92(c#原始代碼的端口,手動),https://github.com/brezza92/brotli
麻省理工學院,2019年,Master131,https://github.com/master131/brotlisharplib
演示
麻省理工學院,2017年,Zou Wei,https://github.com/zwcloud,請參閱此處和此處的更多Zou Wei的GUI作品
MIT,2020,Brezza92(https://github.com/brezza92),Mathml佈局引擎