Spec-Zone.ru › Pygame
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.freetype pygame.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_ttf
get_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.

END_OF_DOCUMENT_MARKER
pygame.font.Font
создание нового объекта шрифта из файла
Font(file_path=None, size=12) -> Font
Font(file_path, size) -> Font
Font(pathlib.Path, size) -> Font
Font(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.

END_OF_DOCUMENT_MARKER
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API