Linux下编译Freetype的zlib/libPNG依赖作用及字体加载问题
FreeType可选依赖zlib、libPNG作用说明
两个依赖提供的具体能力
- zlib:为FreeType提供gzip/deflate流解压能力,用于解析字体中内嵌的压缩字形数据、压缩字体表,以及gzip压缩格式的位图字体。
- libPNG:为FreeType提供PNG图像解码能力,专门用于解析字体文件中内嵌的PNG格式彩色位图资源,常见于彩色emoji字体、彩色图标字体。
无两个依赖时的.ttf/.otf兼容性
常规.ttf、.otf格式字体可完全正常加载、渲染。
标准TrueType、OpenType字体的核心矢量字形、基础排版表解析逻辑是FreeType的内置核心功能,编译时不需要依赖zlib或libPNG即可正常工作。
关闭这两个依赖仅会缺失两类特殊能力,不影响核心矢量字体加载:
- 缺失zlib时,无法读取字体中内嵌的压缩位图资源,矢量字形解析不受影响
- 缺失libPNG时,无法读取字体中内嵌的PNG格式彩色位图字形(比如彩色emoji),常规单色矢量字形解析不受影响
如果项目仅需要使用常规单色.ttf/.otf矢量字体,不需要支持特殊压缩位图字体、彩色PNG位图字体,可以直接在CMake配置中关闭zlib、libPNG相关的编译选项,编译出的FreeType库完全可以满足基础使用需求。
内容的提问来源于stack exchange,提问作者user11428571
相关产品推荐
相关产品推荐

