Как уменьшить размер шрифтов .ttf?

Есть ли способ уменьшить размер шрифтов .ttf? то есть, если мы хотим удалить некоторые глипы, которые мы не используем.


person Ajay    schedule 14.04.2010    source источник


Ответы (7)


С помощью веб-шрифтов Google вы можете ограничить набор символов, например:

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

Это было бы особенно полезно, если бы у Google были иконочные шрифты, такие как Font Awesome.

person Webveloper    schedule 20.05.2012
comment
Хитрый трюк, не знал. Вы также можете запросить определенные веса в параметре. (например, только полужирный, без курсива или обычного) - person Sahas Katta; 20.10.2012
comment
Это не касается фактического вопроса о том, как уменьшить размер файла шрифта TrueType, который у вас уже есть, в частности, путем удаления глифов, которые вы не используете. В нем рассматривается другой вопрос. Как удалить все лишние глифы из веб-шрифта Google? Шрифты Google не формата woff2, не ttf, и вы не можете использовать этот метод, если у вас уже есть шрифт, который вы хотите использовать. - person ADJenks; 09.10.2018

генератор веб-шрифтов FontSquirrel позволяет очень легко уменьшить размер шрифта.

  • Загрузите свой шрифт
  • Выберите Эксперт...
  • Выберите, какие глифы включить
  • Нажмите Загрузить комплект.

Мне удалось уменьшить шрифт размером 263 КБ до 34 КБ.

«Генератор

person bendytree    schedule 21.06.2018

Вы можете использовать fontforge, чтобы уменьшить размер файла

Это объясняется в http://www.cnx-software.com/2010/02/19/reduction-truetype-font-file-size-for-embedded-systems/

person cnxsoft    schedule 19.01.2011

Я сделал следующее, чтобы удалить все кириллические глифы (буквы) из шрифта, тем самым уменьшив размер файла вдвое, так как мне нужны были только латинские буквы.

  1. получить FontForge (https://fontforge.github.io/en-US/)
  2. запустите FontForge и откройте файл шрифта ttf
  3. перейдите в «Правка» -> «Выбрать» -> «Выбрать по сценарию»
  4. во всплывающем окне выбора выберите кириллицу из выпадающего меню. Как вы могли догадаться, это будет означать только буквы кириллицы.
  5. перейдите в раздел «Кодировка» -> «Отсоединить и удалить глифы», подтвердите вопрос. Видите, как исчезают буквы кириллицы?
  6. перейдите в Encoding -> Compact, чтобы получить лучший обзор оставшихся букв, что упрощает выбор большего количества кандидатов на удаление. (Но вручную удалять/удалять их я не рискнул.)
  7. перейдите в File -> Generate Fonts и не забудьте выбрать ttf в качестве выходного формата.

Учтите, что я не профи в этом. Но мне нужно было быстрое решение.

Здесь вы можете прочитать больше по этой теме: http://wiki.unity3d.com/index.php?title=Create_a_new_TrueType_font_using_a_subset_of_characters_from_an_existing_TrueType_font

person Juergen    schedule 08.06.2017

Я использовал fontmin для удаления глифа из шрифтов ttf.

Ему удалось уменьшить размер шрифта Noto Sans (вес=средний) с 20 МБ до менее чем 10 МБ, но при этом покрыть распространенные китайские/японские иероглифы.

person Jokester    schedule 01.06.2016

Какое приложение для этого? Большинство шрифтов относительно легкие. TTF хранят векторные данные вместо растровых данных, поэтому для описания формы каждого глифа требуется относительно немного байтов. Даже очень загруженные шрифты могут быть меньше 100 КБ. Многие современные шрифты поставляются с хинтингом ClearType, но даже это увеличивает размер файла очень незначительно.

Если вы действительно хотите удалить определенные глифы из шрифта, вам понадобится инструмент для редактирования шрифта (у Macromedia был такой инструмент под названием Fontographer, который теперь принадлежит FontLab). Но вам, вероятно, лучше просто выбрать более светлый шрифт. Например, OCR A Std имеет размер всего 30 КБ и включает подсказку ClearType, а также все символы US ASCII. Старайтесь избегать шрифтов Unicode, так как для полной поддержки Unicode требуется множество глифов. Но большинство шрифтов не обеспечивают полной поддержки Unicode.

Наконец, если вы решите изменить шрифт, убедитесь, что вы назвали его по-другому. Конфликт имен может привести к очень неприятным сюрпризам для пользователей.

person Lèse majesté    schedule 25.08.2010
comment
Сложные шрифты .ttf могут легко достигать размера 1 МБ и более. - person Mark Phillip; 23.06.2013
comment
@Mark: Возможно, шрифты Big5 или GB или другие с большими наборами символов, но это крайние случаи. В противном случае даже очень сложные западные шрифты редко превышают 500 КБ, а те немногие, которые имеют размер 500 КБ, — это киты, которые, вероятно, можно было бы оптимизировать. - person Lèse majesté; 23.06.2013
comment
Но вы попросили приложение. :) Я имею дело с точной проблемой прямо сейчас. - person Mark Phillip; 23.06.2013
comment
Шрифты на китайском языке, например, обычно занимают 8-12 МБ. Они содержат 20-40 тыс. отдельных глифов. - person XML; 03.03.2015

Вы можете использовать fonttools для удаления ненужных глифов из шрифта.

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

mySmallerFont.ttf будет содержать только символы Юникода в диапазоне от U+0020 до U+007E (базовая латиница).

Полная документация доступна здесь.

Список символов Юникода можно найти в Википедии.

person remeus    schedule 17.02.2021