- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一个主要问题,几个承保问题(抱歉)。
我正在尝试以 ttf 字体读取 GSUB 信息(和其他表格)。怎么做?我可以使用哪个库?
GSUB 是一个替换表,说明在同一邻域中使用的字形必须如何变形为另一个字形。 is在很多语言中很常见,在英语中比较少见,但最好的例子就是ligature。
OpenType fonts (otf) 的文档很好我知道它存在于 Truetype 字体 (ttf) 中。
但是我怎样才能访问它呢?有Freetype + Harfbuzz之类的库吗?似乎 Freetype 只允许访问 OTF 表,而不是 TTF,对吗?
FT_OpenType_Validate
:此函数仅适用于 OpenType 字体
对于此类需求,Harfbuzz 是可选的还是强制性的?
文档很差(在我看来),所以我正在寻找经验和工作示例。
似乎也很难让 freetype + harfbuzz 在 windows 上一起工作,真的需要吗?怎么办?
来源:
我的测试代码无法运行,因为 Freetype 说 GSUB 是一个“未实现的功能”:
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_OPENTYPE_VALIDATE_H
#include <stdexcept>
int main(int argc, char* argv[])
{
FT_Library ftLibrary;
FT_Error errorLib = FT_Init_FreeType(&ftLibrary);
if (errorLib)
throw std::runtime_error("Couldn't initialize the library: FT_Init_FreeType() failed");
FT_Face ftFace;
FT_Error errorFace = FT_New_Face(ftLibrary, argv[1], 0, &ftFace); //getting first face
if (errorFace)
throw std::runtime_error("Couldn't load the font file: FT_New_Face() failed");
FT_Bytes BASE = NULL;
FT_Bytes GDEF = NULL;
FT_Bytes GPOS = NULL;
FT_Bytes GSUB = NULL;
FT_Bytes JSTF = NULL;
FT_Error errorValidate = FT_OpenType_Validate(ftFace, FT_VALIDATE_GSUB, &BASE, &GDEF, &GPOS, &GSUB, &JSTF);
if (errorValidate)
throw std::runtime_error("Couldn't validate opentype datas");
//7=Unimplemented_Feature
FT_OpenType_Free(ftFace, BASE);
FT_OpenType_Free(ftFace, GDEF);
FT_OpenType_Free(ftFace, GPOS);
FT_OpenType_Free(ftFace, GSUB);
FT_OpenType_Free(ftFace, JSTF);
FT_Done_Face(ftFace);
FT_Done_FreeType(ftLibrary);
return 0;
}
最佳答案
在 Windows 上,您必须启用 OpenType 验证模块。如果您使用 Visual Studio 构建 FreeType,请按照以下步骤操作。
在 freetype/config/ftmodule.h
中添加:
FT_USE_MODULE( FT_Module_Class, otv_module_class )
然后在解决方案资源管理器中将 src/otvalid/otvalid.c
添加到项目中。
您已准备好构建库。不要忘记使用新的库或目标文件更新您的项目。
使用它我能够访问GPOS
表。但不要太乐观。 FreeType 对 OpenType 表的支持非常有限。所以,你真正得到的是指向字节的原始指针。为了在那里获得一些有用的数据,您必须根据 OpenType 规范解析这些字节。考虑到 OpenType 规范的复杂性,我会说这不是一项微不足道的任务。我什至会说它过于复杂,但仍有可能。
如果您决定这样做,请记住您必须颠倒从任何表中读取的数据的字节顺序。
关于c++ - 如何访问 ttf 字体(不是 otf)的 GDEF/GPOS/GSUB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49918140/
因此,在我的字体.otf文件中,显然有两种类型的字母“a”,并且默认情况下使用错误的一种。 我想知道如何在Android / Kotlin的.otf文件中使用第二种类型的“a”。 最佳答案 根据您的评
如何生成自定义.otf字体子集文件? 用例: 存在仪表.otf字体文件。 存在特定的 Unicode 字形集(范围、点)。 输出是新的.otf文件,足以从第2点开始设置。 如何在 .NET 或 Jav
我正在尝试制作一个带有 github 页面的网站,我想包含一个 otf 字体。我无法让它正常工作,我也不确定哪里出错了。 我做了一些研究,发现我需要使用@font-face,但我无法弄清楚它应该如何工
这是我的声明代码: @font-face { font-family: 'MyOwnFont'; font-style: normal; font-weight: 400;
我们有一个带有 otf 字体文件的网站。 一切正常,除了网站在 IE 11 中的外观。 经过调查我们找到了原因: CSS3114: @font-face failed OpenType embeddi
有没有人知道字体阅读器类,我可以在其中传递字体文件(ttf 或 otf),然后我可以找出字体名称、型号、艺术家等。元数据确实如此。 感谢大家的帮助 最佳答案 这可能对您有所帮助 -ycTIN - 从
我试图在css中包含字体但没有成功。在控制台中我收到错误 在控制台中。但是当我包含另一种带有 .ttf 扩展名的字体时,它的工作原理。有什么建议吗? @font-face { font-fam
在网上搜索时,我发现了很多有关字体正确 MIME 类型的不同建议,但我还没有尝试过任何可以消除 Chrome 警告的 MIME 类型,如下所示: Resource interpreted as fon
我正在使用 otf 和 ttf 格式的自定义字体。我不知道如何找到字体的版本。 有什么方法可以在 Mac 上找到 oft 和 ttf 字体的版本吗? 最佳答案 在Linux上我们可以使用fc-quer
我正在使用 otf 和 ttf 格式的自定义字体。我不知道如何找到字体的版本。 有什么方法可以在 Mac 上找到 oft 和 ttf 字体的版本吗? 最佳答案 在Linux上我们可以使用fc-quer
Opentype font format的最新版本(截至 2016 年底为 1.8)标准化两个不同的表以嵌入 PNG 位图数据:Google 的 CBDT (与 CBLC 一起)和 Apple 的 s
我想在 WordPress 仪表板中上传自定义字体。当我尝试上传字体文件时,它显示错误: Sorry, this file type is not permitted for security rea
我有以下 HTML + CSS 源代码。我希望它使用高级 otf 功能,但样式集功能不起作用。 body { font-family: source sans pro; font-size:12px
@font-face { font-family: 'Placeholder-Font'; src: url('assets/fonts/Placeholder-Font.otf') form
我想知道是否可以在 Web 服务器上使用 otf 字体?我问这个问题是因为以下字体在本地主机上运行良好,但在 IIS 上上传时却不行。 @font-face { font-family:"Cu
我是否可以从 ttf/otf 字体文件中提取本地化名称? 首选 Python 解决方案,但我可以使用任何语言。 非常感谢。 最佳答案 转到此页面 http://wotsit.org/list.asp?
伙计们,我在从 otf 文件导入字体时遇到了问题 main.css @font-face { font-family: 'testfont'; src: url('fonts/te
我想知道是否可以“编码”TTF/OTF/SVG 字体?以某种方式写下每个字母的所有坐标。 如果是这样,我在哪里可以了解更多信息? 最佳答案 这当然是可能的。 SVG和 SVG Fonts都是 XML
我使用 laravel 框架。但是在 chrome 控制台中发生了这个错误并且 font-family 不工作。 Failed to load resource: the server respond
看起来有一些在 iPhone 上使用自定义 True Type 字体 (ttf) 的可行解决方案,最值得注意的是 Can I embed a custom font in an iPhone appl
我是一名优秀的程序员,十分优秀!