
在开发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布局引擎