- pygame.font
-
модуль pygame для загрузки и рендеринга шрифтов
Модуль шрифтов позволяет рендерить TrueType шрифты в объекты Surface. Этот модуль построен поверх библиотеки SDL_ttf, которая поставляется со всеми обычными установками pygame.
Большая часть работы со шрифтами выполняется с использованием самих объектов Font. Сам модуль содержит только процедуры для создания объектов Font с помощью
pygame.font.Font().Вы можете загрузить шрифты из системы, используя функцию
pygame.font.SysFont(). Существует несколько других функций для поиска системных шрифтов.Pygame поставляется с встроенным шрифтом по умолчанию, freesansbold. К нему всегда можно получить доступ, передав
Noneв качестве имени шрифта.До версии pygame 2.0.3 pygame.font принимал любые символы UCS-2 / UTF-16 ('\u0001' до '\uFFFF'). После версии 2.0.3, pygame.font, скомпилированный с SDL_ttf 2.0.15, принимает любые допустимые символы UCS-4 / UTF-32 (например, эмодзи, если шрифт их содержит) ('\U00000001' до '\U0010FFFF')). Дополнительную информацию см. в
Font.render().Прежде чем pygame 2.0.3, это ограничение по набору символов можно было обойти, используя базированный на
pygame.freetypepygame.ftfont, чтобы эмулировать модуль Font. Это можно сделать, определив переменную среды PYGAME_FREETYPE перед первым импортомpygame. Поскольку проблемаpygame.ftfontбольше не актуальна, она, вероятно, будет удалена в будущем.- pygame.font.init()
-
инициализировать модуль шрифтовinit() -> None
Этот метод вызывается автоматически
pygame.init(). Он инициализирует модуль шрифтов. Модуль должен быть инициализирован перед использованием любых других функций.Безопасно вызывать эту функцию более одного раза.
- pygame.font.quit()
-
деинициализировать модуль шрифтовquit() -> None
Ручная деинициализация системы шрифтов SDL_ttf. Вызывается автоматически
pygame.quit().Безопасно вызывать эту функцию, даже если шрифты в данный момент не инициализированы.
- pygame.font.get_init()
-
истина, если модуль шрифтов инициализированget_init() -> bool
Проверка, инициализирован ли модуль шрифтов.
- pygame.font.get_default_font()
-
получить имя файла шрифта по умолчаниюget_default_font() -> string
Возвращает имя файла системного шрифта. Это не полный путь к файлу. Этот файл обычно находится в той же директории, что и модуль шрифтов, но он также может быть упакован в отдельные архивы.
- pygame.font.get_sdl_ttf_version()
-
получить версию SDL_ttfget_sdl_ttf_version(linked=True) -> (major, minor, patch)
Экспериментальная функция: функция всё ещё в разработке, доступна для тестирования и отзывов. Может измениться. Пожалуйста, оставьте отзывы о функции get_sdl_ttf_version авторам
Возвращает кортеж целых чисел, идентифицирующих версию SDL_ttf. SDL_ttf — это базовая библиотека рендеринга шрифтов, написанная на C, от которой зависит модуль шрифтов pygame. Если 'linked' равно True (по умолчанию), функция возвращает версию связанной библиотеки TTF. В противном случае функция возвращает версию TTF, с которой был скомпилирован pygame.
Новая в pygame 2.1.3.
- pygame.font.get_fonts()
-
получить все доступные шрифтыget_fonts() -> list of strings
Возвращает список всех доступных на системе шрифтов. Имена шрифтов будут приведены к нижнему регистру, при этом все пробелы и знаки препинания будут удалены. Это работает на большинстве систем, но некоторые из них вернут пустой список, если не смогут найти шрифты.
Изменено в pygame 2.1.3: Проверяет пользовательские шрифты вместо только глобальных шрифтов для Windows.
- pygame.font.match_font()
-
найти определённый шрифт на системеmatch_font(name, bold=False, italic=False) -> path
Возвращает полный путь к файлу шрифта на системе. Если bold или italic установлены в значение true, будет произведена попытка найти соответствующую подгруппу шрифтов.
Имя шрифта также может быть итерируемым объектом имён шрифтов, строкой с запятыми-разделителями имён шрифтов или байтовыми объектом с запятыми-разделителями имён шрифтов, в этом случае набор имён будет просматриваться в заданном порядке. Если ни одно из указанных имён не найдено, возвращается None.
Новая в pygame 2.0.1: Поддержка итерируемых объектов имён шрифтов.
Изменено в pygame 2.1.3: Проверяет пользовательские шрифты вместо только глобальных шрифтов для Windows.
Пример:
print pygame.font.match_font('bitstreamverasans') # output is: /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf # (but only if you have Vera on your system)
- pygame.font.SysFont()
-
создать объект Font из системных шрифтовSysFont(name, size, bold=False, italic=False) -> Font
Возвращает новый объект Font, загруженный из системных шрифтов. Шрифт будет соответствовать запрошенным флагам bold и italic. Pygame использует небольшой набор общих псевдонимов шрифтов. Если конкретный шрифт, который вы запрашиваете, недоступен, может использоваться разумная альтернатива. Если подходящий системный шрифт не найден, произойдёт возврат к загрузке шрифта по умолчанию pygame.
Имя шрифта также может быть итерируемым объектом имён шрифтов, строкой с запятыми-разделителями имён шрифтов или байтовыми объектом с запятыми-разделителями имён шрифтов, в этом случае набор имён будет просматриваться в заданном порядке.
Новая в pygame 2.0.1: Поддержка итерируемых объектов имён шрифтов.
Изменено в pygame 2.1.3: Проверяет пользовательские шрифты вместо только глобальных шрифтов для Windows.
- pygame.font.Font
-
создание нового объекта шрифта из файлаFont(file_path=None, size=12) -> FontFont(file_path, size) -> FontFont(pathlib.Path, size) -> FontFont(object, size) -> Font
Загрузка нового шрифта из заданного имени файла или объекта файла Python. Размер — высота шрифта в пикселях. Если имя файла равно
None, будет загружен шрифт по умолчанию Pygame. Если шрифт не может быть загружен из переданных аргументов, будет вызвано исключение. После создания шрифта его размер изменить нельзя. Если аргументы не заданы, будет использован шрифт по умолчанию и размер шрифта 12.Объекты шрифта в основном используются для рендеринга текста в новые объекты Surface. Рендеринг может имитировать жирный или курсивный шрифты, но лучше загружать шрифт с реальными курсивными или жирными глифами.
- bold
-
Получает или устанавливает, должен ли шрифт рендериться жирным (имитированным).bold -> bool
Определяет, должен ли шрифт рендериться жирным.
При установке в True это включает имитацию жирного шрифта. Это имитация растяжения шрифта, которая не выглядит хорошо на многих типах шрифтов. Если возможно, загрузите шрифт из файла реального жирного шрифта. При использовании жирного шрифта его ширина будет отличаться от ширины нормального шрифта. Это можно комбинировать с режимами курсива, подчеркивания и зачёркивания.
Новое в pygame 2.0.0.
- italic
-
Получает или устанавливает, должен ли шрифт рендериться курсивом (имитированным).italic -> bool
Определяет, должен ли шрифт рендериться курсивом.
При установке в True это включает имитацию курсива. Это имитация наклона шрифта, которая не выглядит хорошо на многих типах шрифтов. Если возможно, загрузите шрифт из файла реального курсивного шрифта. При использовании курсива ширина шрифта будет отличаться от ширины нормального шрифта. Это можно комбинировать с режимами жирного шрифта, подчеркивания и зачёркивания.
Новое в pygame 2.0.0.
- underline
-
Получает или устанавливает, должен ли шрифт рендериться с подчеркиванием.underline -> bool
Определяет, должен ли шрифт рендериться с подчеркиванием.
При установке в True все отрисованные шрифты будут содержать подчеркивание. Подчеркивание всегда имеет толщину один пиксель, независимо от размера шрифта. Это можно комбинировать с режимами жирного шрифта, курсива и зачёркивания.
Новое в pygame 2.0.0.
- strikethrough
-
Получает или устанавливает, должен ли шрифт рендериться с зачёркиванием.strikethrough -> bool
Определяет, должен ли шрифт рендериться с зачёркиванием.
При установке в True все отрисованные шрифты будут содержать зачёркивание. Зачёркивание всегда имеет толщину один пиксель, независимо от размера шрифта. Это можно комбинировать с режимами жирного шрифта, курсива и подчеркивания.
Новое в pygame 2.1.3.
- render()
-
отображение текста на новой поверхностиrender(text, antialias, color, background=None) -> Surface
Создаёт новую поверхность с заданным текстом, отрисованным на ней.
pygame.fontне предоставляет способ прямого отображения текста на существующей поверхности: вместо этого необходимо использоватьFont.render()для создания изображения (Surface) текста, а затем разместить это изображение на другой поверхности.Текст может быть только одной строкой: символы новой строки не отображаются. Символы null ('x00') вызывают TypeError. Поддерживаются Unicode и символьные (байтовые) строки. Для Unicode-строк ранее поддерживались только символы UCS-2 ('\u0001' до '\uFFFF'), а любые символы с большим кодом Unicode вызывали UnicodeError. Теперь поддерживаются символы в диапазоне UCS-4. Для символьных строк предполагается кодировка
LATIN1. Аргумент antialias — булево значение: если True, символы будут иметь плавные края. Аргумент color — цвет текста [например: (0,0,255) для синего]. Необязательный аргумент background — цвет для фона текста. Если фон не указан, область за пределами текста будет прозрачной.Возвращаемая поверхность будет иметь размеры, необходимые для размещения текста (такие же, как возвращаемые
Font.size()). Если для текста передана пустая строка, возвращается пустая поверхность размером ноль на высоту шрифта.В зависимости от типа фона и антиалиасинга, возвращаются разные типы поверхностей. Для повышения производительности важно знать, какой тип изображения будет использоваться. Если антиалиасинг не используется, возвращаемое изображение всегда будет 8-битным изображением с палитрой из двух цветов. Если фон прозрачный, устанавливается colorkey. Антиалиасированные изображения рендерятся в 24-битные
RGBизображения. Если фон прозрачный, включается альфа-канал пикселей.Оптимизация: если вы знаете, что конечное место назначения текста (на экране) всегда будет иметь твёрдый фон, а текст антиалиасирован, можно повысить производительность, указав цвет фона. Это приведет к тому, что полученное изображение сохранит информацию о прозрачности с помощью colorkey вместо (намного менее эффективного) альфа-канала.
Если рендерится '\n', будет рендериться неизвестный символ. Обычно прямоугольник. Вместо этого необходимо обрабатывать новые строки самостоятельно.
Рендеринг шрифтов не потокобезопасен: только один поток может рендерить текст в любое время.
Изменено в pygame 2.0.3: Рендеринг UCS4 unicode работает и не вызывает исключения. Используйте if hasattr(pygame.font, "UCS4"): для проверки, поддерживает ли Pygame рендеринг UCS4 unicode, включая больше языков и эмодзи.
- size()
-
определение необходимого пространства для рендеринга текстаsize(text) -> (width, height)
Возвращает размеры, необходимые для рендеринга текста. Это может быть использовано для определения позиции текста перед его рендерингом. Также может использоваться для обрезки слов и других эффектов компоновки.
Обратите внимание, что большинство шрифтов используют керинг, который корректирует ширины для определённых пар букв. Например, ширина "ae" не всегда равна ширине "a" + "e".
- set_underline()
-
управление рендерингом текста с подчеркиваниемset_underline(bool) -> None
При включении все рендерированные шрифты будут содержать подчеркивание. Подчеркивание всегда имеет толщину один пиксель, независимо от размера шрифта. Это можно комбинировать с режимами жирного шрифта, курсива и зачёркивания.
Примечание
Это то же самое, что и атрибут
underline.
- get_underline()
-
проверка, будет ли текст рендериться с подчеркиваниемget_underline() -> bool
Возвращает True, когда включено подчеркивание шрифта.
Примечание
Это то же самое, что и атрибут
underline.
- set_strikethrough()
-
управление рендерингом текста с зачёркиваниемset_strikethrough(bool) -> None
При включении все рендерированные шрифты будут содержать зачёркивание. Зачёркивание всегда имеет толщину один пиксель, независимо от размера шрифта. Это можно комбинировать с режимами жирного шрифта, курсива и подчеркивания.
Примечание
Это то же самое, что и атрибут
strikethrough.Новое в pygame 2.1.3.
- get_strikethrough()
-
проверка, будет ли текст рендериться с зачёркиваниемget_strikethrough() -> bool
Возвращает True, когда включено зачёркивание шрифта.
Примечание
Это то же самое, что и атрибут
strikethrough.Новое в pygame 2.1.3.
- set_bold()
-
включить имитацию рендеринга жирного текстаset_bold(bool) -> None
Включает рендеринг жирного текста. Это имитация растяжения шрифта, которая не всегда хорошо выглядит с различными типами шрифтов. Если возможно, загрузите шрифт из файла реального жирного шрифта. Жирный шрифт будет иметь другую ширину, чем обычный. Это можно комбинировать с режимами курсива, подчеркивания и зачеркивания.
Примечание
Это то же самое, что и атрибут
bold.
- get_bold()
-
проверить, будет ли текст отображаться жирнымget_bold() -> bool
Возвращает True, когда режим отображения жирного шрифта включен.
Примечание
Это то же самое, что и атрибут
bold.
- set_italic()
-
включить имитацию рендеринга курсивного текстаset_italic(bool) -> None
Включает имитацию рендеринга курсивного текста. Это имитация наклона шрифта, которая не всегда хорошо выглядит с различными типами шрифтов. Если возможно, загрузите шрифт из файла реального курсивного шрифта. Курсивный шрифт будет иметь другую ширину, чем обычный. Это можно комбинировать с режимами жирный, подчеркивание и зачеркивание.
Примечание
Это то же самое, что и атрибут
italic.
- metrics()
-
получить метрики для каждого символа в переданной строкеmetrics(text) -> list
Список содержит кортежи для каждого символа, которые содержат минимальное
Xсмещение, максимальноеXсмещение, минимальноеYсмещение, максимальноеYсмещение и смещение продвижения (смещение + ширина) символа. [(minx, maxx, miny, maxy, advance), (minx, maxx, miny, maxy, advance), ...]. Для каждого нераспознанного символа в список записывается None.
- get_italic()
-
проверить, будет ли текст отображаться курсивомget_italic() -> bool
Возвращает True, когда режим отображения курсивного шрифта включен.
Примечание
Это то же самое, что и атрибут
italic.
- get_linesize()
-
получить межстрочный интервал шрифтаget_linesize() -> int
Возвращает высоту в пикселях строки текста со шрифтом. При рендеринге нескольких строк текста это рекомендуемое расстояние между строками.
- get_height()
-
получить высоту шрифтаget_height() -> int
Возвращает высоту в пикселях фактически отображаемого текста. Это средний размер каждого глифа в шрифте.
- get_ascent()
-
получить восходящую линию шрифтаget_ascent() -> int
Возвращает высоту в пикселях восходящей линии шрифта. Восходящая линия — это количество пикселей от базовой линии шрифта до верхней части шрифта.
- get_descent()
-
получить нисходящую линию шрифтаget_descent() -> int
Возвращает высоту в пикселях нисходящей линии шрифта. Нисходящая линия — это количество пикселей от базовой линии шрифта до нижней части шрифта.
- set_script()
-
установить код скрипта для форматирования текстаset_script(str) -> None
Экспериментальная функция: функция все еще находится в разработке, доступна для тестирования и отзывов. Она может измениться. Пожалуйста, оставьте отзывы разработчикам
Устанавливает скрипт, используемый для форматирования текста harfbuzz, принимая на вход 4-символьный код скрипта. Например, хинди записывается на языке деванагари, для которого код скрипта "Deva". Полный список кодов скриптов см. в ISO 15924.
Этот метод требует pygame, построенного с SDL_ttf 2.20.0 или выше. В противном случае метод выдаст pygame.error.
New in pygame 2.2.0.
Изменить на GitHub
© Pygame Developers.
Licensed under the GNU LGPL License version 2.1.
https://www.pygame.org/docs/ref/font.html