Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css web浏览器可以从webfonts渲染嵌入位图吗?_Css_Google Chrome_Browser_Fonts_Webfonts - Fatal编程技术网

Css web浏览器可以从webfonts渲染嵌入位图吗?

Css web浏览器可以从webfonts渲染嵌入位图吗?,css,google-chrome,browser,fonts,webfonts,Css,Google Chrome,Browser,Fonts,Webfonts,我一直在引用这些发现,当我试图通过@font-face获得一种使用嵌入位图来呈现它们的自定义字体时,在我知道正确配置的字体的实验中,我发现以下结果显示日本語使用Windows 10和Vivaldi(Chrome等),打开并配置ClearType(不确定这是否重要): span{ 字体系列:“SimSun”;//或者省略,因为这是一种备用字体 } @font-face{font-family:font;font-weight:normal;src:url('simsun_0.ttc');} 跨

我一直在引用这些发现,当我试图通过
@font-face
获得一种使用嵌入位图来呈现它们的自定义字体时,在我知道正确配置的字体的实验中,我发现以下结果显示
日本語使用Windows 10和Vivaldi(Chrome等),打开并配置ClearType(不确定这是否重要):

span{
字体系列:“SimSun”;//或者省略,因为这是一种备用字体
}

@font-face{font-family:font;font-weight:normal;src:url('simsun_0.ttc');}
跨度{
字体系列:“字体”;
}

simsum\u 0.ttc
是我从
C:/Windows/Fonts/
中提取的字体,放在css所在的文件夹中。我还验证了这个文件确实有嵌入的位图,并且配置正确

我刚刚安装了我正在使用的字体,并通过其系统名引用它,然后正确加载位图。有没有办法让浏览器从通过
@font-face
加载的字体加载位图?是否有关于此限制的文件或规范,或可能的解决方法

更多示例

这同样适用于定制字体——下面是一个在Chrome中使用.otf字体的示例。安装在系统上时通过其名称加载的字体:

以及通过
@font-face
url
加载的相同字体:


一个可靠且简单的选择是使用FontSquirrel之类的服务。

上传字体,它将生成您所需的所有内容,以便您可以下载、复制并粘贴到您的项目中


祝你好运

问题是
@font-face
不支持TrueType集合(.ttc)文件,因此无法加载它。控制台是否会给您指示类似这样的错误

如果许可证允许,您可以使用工具从.ttc文件中提取所需的.ttf。或者,您可以要求您购买字体的铸造厂为您提供.ttf(或.woff2,您需要的是什么)。

Chrome和Firefox(可能还有其他)在系统中不可用的字体上运行OTS,这将从字体中删除EBDT和EBLC表(存储位图的位置)

从:

OpenType Sanitizer(OTS)解析并序列化OpenType文件(OTF、TTF)以及WOFF和WOFF2字体文件,验证它们并在运行时对它们进行清理

C库集成到Chromium和Firefox中,还集成了简单的命令行工具,用于在终端中脱机检查文件

CSS字体面属性非常适合web排版。为了得到正确的字体而不得不使用图像是一件非常悲哀的事情;一个人应该能够使用向量

然而,在许多平台上,系统级TrueType字体渲染器以前从未出现在攻击面上,将它们放在第一线是一个可怕的提议。。。特别是在Windows这样的平台上,它是一个以高权限运行的封闭源代码blob

2014年,有,因此,如果浏览器请求,似乎也可以为这些添加支持

我认为实现这一目标的步骤有:

  • 添加将EBDT和EBLC表传递给OTS的功能
  • 请求每个项目(Chromium、Firefox等)允许通过
  • 等待所有更新的代码被下推

  • 这种支持可能会有更复杂的实现(如
    @font-face
    等中的选项),但这似乎是最简单的,因为颜色表已经以同样的方式得到了支持。

    谢谢,但是fontsquirrel的生成器(即使在专家模式下)根本不引用嵌入的位图。这太糟糕了@JackHumbert。您需要字体中的所有字符,还是只需要几个字符?是的,这是一种自定义unicode空间中的字体,差别非常小:(top使用的是与系统字体相同的字体)-但它在可读性方面会有很大的差别(这是专为在不协调的情况下聊天而设计的,紧凑性和可读性非常重要).字符倾斜部分的差异很有趣。我在想,如果您只需要少量字符,可以先尝试将它们转换为SVG,但听起来这不是一个实用的选择。我希望您能找到一个解决方案。恐怕对.ttf文件(和.otf)也是如此。我正在使用嵌入位图的自定义字体,我可以控制格式,所以我不确定这是否是问题所在(我认为它实际上加载了.ttc文件),我没有看到任何与嵌入位图相关的错误,但是当我弄乱opentype表时,我也见过其他人。哈哈。我在OP中添加了另一个使用.otf的例子。我们可以看看演示的可能性吗?当然!显示页面在这里:-左侧从web加载字体,右侧加载系统字体“Dreluhu Future”。字体可以在这里向下隐藏:我的假设:通过
    @font-face
    加载时,它似乎忽略了EBDT/EBLC表。我知道CBDT/CBLC(彩色位图支持)支持不稳定,所以对于单色位图图示符可能也是如此。然后,它将返回到正常图示符,并附带所有亚像素渲染工件。对不起,我帮不了你了!