【问题标题】:Way to reduce size of .ttf fonts?减小.ttf字体大小的方法?
【发布时间】:2011-02-07 18:57:45
【问题描述】:

有没有办法减小 .ttf 字体的大小?即,如果我们想删除一些我们不使用的 glyp。

【问题讨论】:

    标签: fonts filesize truetype


    【解决方案1】:

    这个应用程序是什么?大多数字体相对较轻。 TTF 存储矢量数据而不是位图数据,因此描述每个字形的形状需要相对较少的字节。即使是非常繁忙的字体也可以保持在 100kb 以下。许多现代字体都带有 ClearType 提示,但即使这样也会增加很少的文件大小。

    如果您真的想从字体中去除某些字形,那么您将需要一个字体编辑工具(Macromedia 有一个名为 Fontographer 的工具,现在归 FontLab 所有)。但是你最好选择一个更轻的字体。例如,OCR A Std 只有 30kb,包括 ClearType 提示以及所有美国 ASCII 字符。尽量避免使用 Unicode 字体,因为完整的 Unicode 支持需要大量字形。但大多数字体不提供完整的 Unicode 支持。

    最后,如果您决定修改字体,请确保将其命名为其他名称。命名冲突可能会给用户带来一些非常恼人的惊喜。

    【讨论】:

    • 复杂的 .ttf 字体可以轻松达到 1MB 或更多。
    • @Mark:也许是 Big5 或 GB 字体或其他具有大字符集的字体,但这些都是边缘情况。否则,即使是非常精细的西方字体也很少会超过 500KB,而 500KB 的少数是可以优化的鲸鱼。
    • 但您要求申请。 :) 我现在正在处理确切的问题。
    • 中文字体,例如,定期运行8-12MB。它们包含 20K-40K 个单独的字形。
    【解决方案2】:

    你可以使用 fontforge 来减小文件大小

    这在http://www.cnx-software.com/2010/02/19/reducing-truetype-font-file-size-for-embedded-systems/进行了解释

    【讨论】:

      【解决方案3】:

      使用Google Web Fonts,您可以限制字符集,如:

      //fonts.googleapis.com/css?family=FontName&text=Lorem%20Ipsum
      

      如果 Google 有像 Font Awesome 这样的图标字体,这将特别有用

      【讨论】:

      • 绝招,不知道。您也可以在参数中请求某些权重。 (例如,只有粗体,没有斜体或正常)
      • 这并没有解决如何减少您已经拥有的 truetype 字体的文件大小的实际问题,特别是通过删除您不使用的字形。它解决了一个不同的问题“如何从 Google Web 字体中删除所有多余的字形?”谷歌字体不是 woff2 格式,不是 ttf,如果你已经有了想要使用的字体,就不能使用这种方法。
      【解决方案4】:

      我使用fontmin 来从 ttf 字体中删除字形。

      它成功地将 Noto Sans(重量=中等)从 20MB 减少到不到 10 个,但仍能覆盖常见的中文/日文字符。

      【讨论】:

        【解决方案5】:

        我执行以下操作以从字体中删除所有西里尔字形(字母),从而将文件大小减半,因为我只需要拉丁字母。

        1. 获取 FontForge (https://fontforge.github.io/en-US/)
        2. 启动 FontForge 并打开您的 ttf 字体文件
        3. 转到编辑 -> 选择 -> 按脚本选择
        4. 在弹出的选择窗口中,从下拉菜单中选择 Cyrillic。您可能已经猜到,这只会标记西里尔字母。
        5. 转到编码 -> 分离和删除字形,确认问题。看看西里尔字母是如何消失的?
        6. 转至编码 -> 压缩以更好地了解剩余字母,从而更轻松地选择更多删除候选者。 (但我不敢手动删除/删除它们。)
        7. 转到文件 -> 生成字体,不要忘记选择 ttf 作为输出格式。

        请考虑到我不是这方面的专家。但我需要一个快速的解决方案。

        您可以在此处阅读有关此主题的更多信息:http://wiki.unity3d.com/index.php?title=Create_a_new_TrueType_font_using_a_subset_of_characters_from_an_existing_TrueType_font

        【讨论】:

          【解决方案6】:

          FontSquirrel 的Webfont generator 可以很容易地减小字体的文件大小。

          • 上传您的字体
          • 选择专家...
          • 选择要包含的字形
          • 下载您的套件

          我能够将 263kb 的字体缩小到 34kb。

          【讨论】:

          • 单击 Custom Subsetting... 单选框以进一步减小文件大小。
          【解决方案7】:

          您可以使用fonttools 从字体中删除不需要的字形。

          pip install fonttools
          pyftsubset myFont.ttf --output-file=mySmallerFont.ttf --unicodes=U+0020-007E
          

          mySmallerFont.ttf 将仅包含从 U+0020 到 U+007E(基本拉丁文)的 unicode 字符。

          完整文档可通过here获取。

          unicode字符列表可以查看Wikipedia

          【讨论】:

            猜你喜欢
            • 2011-12-17
            • 1970-01-01
            • 2021-03-27
            • 2016-09-18
            • 1970-01-01
            • 2013-01-06
            • 1970-01-01
            • 2011-04-09
            • 1970-01-01
            相关资源
            最近更新 更多