pygame.font
pygame module for loading and rendering fonts
pygame.font.init
— initialize the font module pygame.font.quit
— uninitialize the font module pygame.font.get_init
— true if the font module is initialized pygame.font.get_default_font
— get the filename of the default font pygame.font.get_sdl_ttf_version
— gets SDL_ttf version pygame.font.get_fonts
— get all available fonts pygame.font.match_font
— find a specific font on the system pygame.font.SysFont
— create a Font object from the system fonts pygame.font.Font
— create a new Font object from a file The font module allows for rendering TrueType fonts into Surface objects.This module is built on top of the SDL_ttf library, which comes with allnormal pygame installations.
Most of the work done with fonts are done by using the actual Font objects.The module by itself only has routines to support the creation of Font objectswith pygame.font.Font()create a new Font object from a file.
You can load fonts from the system by using the pygame.font.SysFont()create a Font object from the system fontsfunction. There are a few other functions to help look up the system fonts.
Pygame comes with a builtin default font, freesansbold. This can always beaccessed by passing
None
as the font name.Before pygame 2.0.3, pygame.font accepts any UCS-2 / UTF-16 character('\u0001' to '\uFFFF'). After 2.0.3, pygame.font built with SDL_ttf2.0.15 accepts any valid UCS-4 / UTF-32 character(like emojis, if the font has them) ('\U00000001' to '\U0010FFFF')).More about this in Font.render().
Before pygame 2.0.3, this character space restriction can be avoided byusing the pygame.freetypeEnhanced pygame module for loading and rendering computer fonts based
pygame.ftfont
to emulate the Fontmodule. This can be used by defining the environment variable PYGAME_FREETYPEbefore the first import of pygamethe top level pygame package. Since the problempygame.ftfont
solves no longer exists, it will likely be removed in the future.- pygame.font.init()¶
initialize the font module
init() -> None
This method is called automatically by
pygame.init()
. It initializes thefont module. The module must be initialized before any other functions willwork.It is safe to call this function more than once.
- pygame.font.quit()¶
uninitialize the font module
quit() -> None
Manually uninitialize SDL_ttf's font system. This is called automatically by
pygame.quit()
.It is safe to call this function even if font is currently not initialized.
- pygame.font.get_init()¶
true if the font module is initialized
get_init() -> bool
Test if the font module is initialized or not.
- pygame.font.get_default_font()¶
get the filename of the default font
get_default_font() -> string
Return the filename of the system font. This is not the full path to thefile. This file can usually be found in the same directory as the fontmodule, but it can also be bundled in separate archives.
- pygame.font.get_sdl_ttf_version()¶
gets SDL_ttf version
get_sdl_ttf_version(linked=True) -> (major, minor, patch)
Experimental: feature still in development available for testing and feedback. It may change.Please leave get_sdl_ttf_version feedback with authors
Returns a tuple of integers that identify SDL_ttf's version.SDL_ttf is the underlying font rendering library, written in C,on which pygame's font module depends. If 'linked' is True (the default),the function returns the version of the linked TTF library.Otherwise this function returns the version of TTF pygame was compiled with
New in pygame 2.1.3.
- pygame.font.get_fonts()¶
get all available fonts
get_fonts() -> list of strings
Returns a list of all the fonts available on the system. The names of thefonts will be set to lowercase with all spaces and punctuation removed. Thisworks on most systems, but some will return an empty list if they cannotfind fonts.
Changed in pygame 2.1.3: Checks through user fonts instead of just global fonts for Windows.
- pygame.font.match_font()¶
find a specific font on the system
match_font(name, bold=False, italic=False) -> path
Returns the full path to a font file on the system. If bold or italic areset to true, this will attempt to find the correct family of font.
The font name can also be an iterable of font names, a string ofcomma-separated font names, or a bytes of comma-separated font names, inwhich case the set of names will be searched in order.If none of the given names are found, None is returned.
New in pygame 2.0.1: Accept an iterable of font names.
Changed in pygame 2.1.3: Checks through user fonts instead of just global fonts for Windows.
Example:
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()¶
create a Font object from the system fonts
SysFont(name, size, bold=False, italic=False) -> Font
Return a new Font object that is loaded from the system fonts. The font willmatch the requested bold and italic flags. Pygame uses a small set of commonfont aliases. If the specific font you ask for is not available, a reasonablealternative may be used. If a suitable system font is not found this willfall back on loading the default pygame font.
The font name can also be an iterable of font names, a string ofcomma-separated font names, or a bytes of comma-separated font names, inwhich case the set of names will be searched in order.
New in pygame 2.0.1: Accept an iterable of font names.
Changed in pygame 2.1.3: Checks through user fonts instead of just global fonts for Windows.
- pygame.font.Font¶
create a new Font object from a file
Font(file_path=None, size=12) -> Font
Font(file_path, size) -> Font
Font(pathlib.Path, size) -> Font
Font(object, size) -> Font
pygame.font.Font.bold
— Gets or sets whether the font should be rendered in (faked) bold. pygame.font.Font.italic
— Gets or sets whether the font should be rendered in (faked) italics. pygame.font.Font.underline
— Gets or sets whether the font should be rendered with an underline. pygame.font.Font.strikethrough
— Gets or sets whether the font should be rendered with a strikethrough. pygame.font.Font.render
— draw text on a new Surface pygame.font.Font.size
— determine the amount of space needed to render text pygame.font.Font.set_underline
— control if text is rendered with an underline pygame.font.Font.get_underline
— check if text will be rendered with an underline pygame.font.Font.set_strikethrough
— control if text is rendered with a strikethrough pygame.font.Font.get_strikethrough
— check if text will be rendered with a strikethrough pygame.font.Font.set_bold
— enable fake rendering of bold text pygame.font.Font.get_bold
— check if text will be rendered bold pygame.font.Font.set_italic
— enable fake rendering of italic text pygame.font.Font.metrics
— gets the metrics for each character in the passed string pygame.font.Font.get_italic
— check if the text will be rendered italic pygame.font.Font.get_linesize
— get the line space of the font text pygame.font.Font.get_height
— get the height of the font pygame.font.Font.get_ascent
— get the ascent of the font pygame.font.Font.get_descent
— get the descent of the font pygame.font.Font.set_script
— set the script code for text shaping Load a new font from a given filename or a python file object. The size isthe height of the font in pixels. If the filename is
None
the pygamedefault font will be loaded. If a font cannot be loaded from the argumentsgiven an exception will be raised. Once the font is created the size cannotbe changed. If no arguments are given then the default font will be used anda font size of 12 is used.Font objects are mainly used to render text into new Surface objects. Therender can emulate bold or italic features, but it is better to load from afont with actual italic or bold glyphs.
- bold¶
Gets or sets whether the font should be rendered in (faked) bold.
bold -> bool
Whether the font should be rendered in bold.
When set to True, this enables the bold rendering of text. Thisis a fake stretching of the font that doesn't look good on manyfont types. If possible load the font from a real bold fontfile. While bold, the font will have a different width than whennormal. This can be mixed with the italic, underline andstrikethrough modes.
New in pygame 2.0.0.
- italic¶
Gets or sets whether the font should be rendered in (faked) italics.
italic -> bool
Whether the font should be rendered in italic.
When set to True, this enables fake rendering of italictext. This is a fake skewing of the font that doesn't look goodon many font types. If possible load the font from a real italicfont file. While italic the font will have a different widththan when normal. This can be mixed with the bold, underline andstrikethrough modes.
New in pygame 2.0.0.
- underline¶
Gets or sets whether the font should be rendered with an underline.
underline -> bool
Whether the font should be rendered in underline.
When set to True, all rendered fonts will include anunderline. The underline is always one pixel thick, regardlessof font size. This can be mixed with the bold, italic andstrikethrough modes.
New in pygame 2.0.0.
- strikethrough¶
Gets or sets whether the font should be rendered with a strikethrough.
strikethrough -> bool
Whether the font should be rendered with a strikethrough.
When set to True, all rendered fonts will include anstrikethrough. The strikethrough is always one pixel thick,regardless of font size. This can be mixed with the bold,italic and underline modes.
New in pygame 2.1.3.
- render()¶
draw text on a new Surface
render(text, antialias, color, background=None) -> Surface
This creates a new Surface with the specified text rendered on it.pygame.fontpygame module for loading and rendering fonts provides no way to directly draw text on an existingSurface: instead you must use Font.render() to create an image(Surface) of the text, then blit this image onto another Surface.
The text can only be a single line: newline characters are not rendered.Null characters ('x00') raise a TypeError. Both Unicode and char (byte)strings are accepted. For Unicode strings only UCS-2 characters('\u0001' to '\uFFFF') were previously supported and any greaterunicode codepoint would raise a UnicodeError. Now, characters in theUCS-4 range are supported. For char strings a
LATIN1
encoding isassumed. The antialias argument is a boolean: if True the characterswill have smooth edges. The color argument is the color of the text[e.g.: (0,0,255) for blue]. The optional background argument is a colorto use for the text background. If no background is passed the areaoutside the text will be transparent.The Surface returned will be of the dimensions required to hold the text.(the same as those returned by Font.size()). If an empty string is passedfor the text, a blank surface will be returned that is zero pixel wide andthe height of the font.
Depending on the type of background and antialiasing used, this returnsdifferent types of Surfaces. For performance reasons, it is good to knowwhat type of image will be used. If antialiasing is not used, the returnimage will always be an 8-bit image with a two-color palette. If thebackground is transparent a colorkey will be set. Antialiased images arerendered to 24-bit
RGB
images. If the background is transparent apixel alpha will be included.Optimization: if you know that the final destination for the text (on thescreen) will always have a solid background, and the text is antialiased,you can improve performance by specifying the background color. This willcause the resulting image to maintain transparency information bycolorkey rather than (much less efficient) alpha values.
If you render '\n' an unknown char will be rendered. Usually arectangle. Instead you need to handle newlines yourself.
Font rendering is not thread safe: only a single thread can render textat any time.
Changed in pygame 2.0.3: Rendering UCS4 unicode works and does notraise an exception. Use if hasattr(pygame.font, "UCS4"): to see ifpygame supports rendering UCS4 unicode including more languages andemoji.
- size()¶
determine the amount of space needed to render text
size(text) -> (width, height)
Returns the dimensions needed to render the text. This can be used tohelp determine the positioning needed for text before it is rendered. Itcan also be used for word wrapping and other layout effects.
Be aware that most fonts use kerning which adjusts the widths forspecific letter pairs. For example, the width for "ae" will not alwaysmatch the width for "a" + "e".
- set_underline()¶
control if text is rendered with an underline
set_underline(bool) -> None
When enabled, all rendered fonts will include an underline. The underlineis always one pixel thick, regardless of font size. This can be mixedwith the bold, italic and strikethrough modes.
Note
This is the same as the underline attribute.
- get_underline()¶
check if text will be rendered with an underline
get_underline() -> bool
Return True when the font underline is enabled.
Note
This is the same as the underline attribute.
- set_strikethrough()¶
control if text is rendered with a strikethrough
set_strikethrough(bool) -> None
When enabled, all rendered fonts will include a strikethrough. Thestrikethrough is always one pixel thick, regardless of font size.This can be mixed with the bold, italic and underline modes.
Note
This is the same as the strikethrough attribute.
New in pygame 2.1.3.
- get_strikethrough()¶
check if text will be rendered with a strikethrough
get_strikethrough() -> bool
Return True when the font strikethrough is enabled.
Note
This is the same as the strikethrough attribute.
New in pygame 2.1.3.
- set_bold()¶
enable fake rendering of bold text
set_bold(bool) -> None
Enables the bold rendering of text. This is a fake stretching of the fontthat doesn't look good on many font types. If possible load the font froma real bold font file. While bold, the font will have a different widththan when normal. This can be mixed with the italic, underline andstrikethrough modes.
Note
This is the same as the bold attribute.
- get_bold()¶
check if text will be rendered bold
get_bold() -> bool
Return True when the font bold rendering mode is enabled.
Note
This is the same as the bold attribute.
- set_italic()¶
enable fake rendering of italic text
set_italic(bool) -> None
Enables fake rendering of italic text. This is a fake skewing of the fontthat doesn't look good on many font types. If possible load the font froma real italic font file. While italic the font will have a differentwidth than when normal. This can be mixed with the bold, underline andstrikethrough modes.
Note
This is the same as the italic attribute.
- metrics()¶
gets the metrics for each character in the passed string
metrics(text) -> list
The list contains tuples for each character, which contain the minimum
X
offset, the maximumX
offset, the minimumY
offset, themaximumY
offset and the advance offset (bearing plus width) of thecharacter. [(minx, maxx, miny, maxy, advance), (minx, maxx, miny, maxy,advance), ...]. None is entered in the list for each unrecognizedcharacter.
- get_italic()¶
check if the text will be rendered italic
get_italic() -> bool
Return True when the font italic rendering mode is enabled.
Note
This is the same as the italic attribute.
- get_linesize()¶
get the line space of the font text
get_linesize() -> int
Return the height in pixels for a line of text with the font. Whenrendering multiple lines of text this is the recommended amount of spacebetween lines.
- get_height()¶
get the height of the font
get_height() -> int
Return the height in pixels of the actual rendered text. This is theaverage size for each glyph in the font.
- get_ascent()¶
get the ascent of the font
get_ascent() -> int
Return the height in pixels for the font ascent. The ascent is the numberof pixels from the font baseline to the top of the font.
- get_descent()¶
get the descent of the font
get_descent() -> int
Return the height in pixels for the font descent. The descent is thenumber of pixels from the font baseline to the bottom of the font.
- set_script()¶
set the script code for text shaping
set_script(str) -> None
Experimental: feature still in development available for testing and feedback. It may change.Please leave feedback with authors
Sets the script used by harfbuzz text shaping, taking a 4 characterscript code as input. For example, Hindi is written in the Devanagariscript, for which the script code is "Deva". See the full list ofscript codes in ISO 15924.
This method requires pygame built with SDL_ttf 2.20.0 or above. Otherwise themethod will raise a pygame.error.
New in pygame 2.2.0.
pygame.font — pygame v2.6.0 documentation (2025)
References
- https://www.bedrockexplorer.com/marketplace-offer/ascent/kawaii-top
- https://milanote.com/guide/characters
- https://thenevadaindependent.com/article/in-return-to-nevada-obama-condemns-trumps-character-touts-harris-proposals
- https://www.pygame.org/docs/ref/font.html/
Top Articles
A Beginner's Guide to Battling Ropes for More Active, Explosive Workouts
Massage Chairs For Home - Best Buy
1922, News Clippings, July thru September
Latest Posts
8 Best Magnifying Floor Lamps in 2024 - Reviews & Top Picks - Optics Mag
It's the season — 5 bed bug prevention tips to protect your mattress from infestation
Recommended Articles
- YunExpress Tracking: wat is het en hoe gebruik je het?
- Mercado asegurador, evolución y perspectivas en torno a los nuevos riesgos y la sostenibilidad - MAPFRE Global Risks
- 4 843 Quintas e Herdades - CASA SAPO
- It’s A Bird, It’s A Plane, It’s A Box Office Hit: ‘Superman’ Opening To $123M – Sunday AM Update
- Meinung: Sascha Lobo: Wie funktioniert eigentlich ChatGPT wirklich?
- Buscar personas en Facebook: por nombre, foto, sin registro
- Upgrade to Windows 11: FAQ
- Wir räumen auf | Sky
- How to get the face reference
- Spotify Premium - Spotify (RO)
- Von Russland annektiert
- Create a survey - Google Surveys Help
- Program TV DigiSport
- Monthly Weather Forecast - Netweather.tv
- Autos online kaufen und deutschlandweit liefern lassen
- France - Où partir en vacances en France
- Afternoon Tea FAQ - Woodland Park Zoo Seattle WA
- Stadswandeling Amsterdam-Noord: de trendy stad
- Part 3: Principles for good management of public resources
- Usa tus beneficios de YouTube Premium
- Comment évaluer la performance des employés dans une entreprise ? - Hrcompliance
- Documentos de Google: Editor de documentos en línea | Google Workspace
- ООО "ЕВРОЛОГИСТИК" - Директор Федоров Дмитрий Сергеевич
- OpenAI and Microsoft Partnership on the Rocks Amid Windsurf Clash and Pentagon Deal
- Watch The Originals Season 5 | HBO Max
- Słodkie kłamstewka | Serial | 2010
- Neue kostenlose E-Mail-Adresse erstellen | WEB.DE
- Ears - Ear, Nose, and Throat Disorders - MSD Manual Consumer Version
- Outils de gestion du travail et de productivité de l’IA
- MSNBC News Live Stream - MSNBC Live Streaming
- Trump threatens 35% tariff on Canadian goods over dangerous cross-border fentanyl dispute
- High res version. | Sickos Haha Yes
- Dami’s Food & Drink Oran 🇩🇿
- The Fascinating Significance of Number 7 Across Various Cultures
- दूसरी भाषा बोलने वाले लोगों से बातचीत करें
- Inside Anthony Elanga’s Newcastle United transfer – Fear, relief and why Howe wanted him
- College football schedule, games 2024: What to watch in Week 8, TV channels, Saturday kickoff times
- Toe Spacers Could Improve Your Foot Health — if You Wear Them Correctly | Livestrong.com
- [討論] Infiniti是走錯了哪一步?
- ΖΩΔΙΑ | POPAGANDA - Η ΖΩΗ ΣΕ ΥΨΗΛΗ ΑΝΑΛΥΣΗ
- Kobayashi-san Chi no Maid Dragon: Valentine, Soshite Onsen! - Amari Kitai Shinaide Kudasai
- Impureza Release Fiery Salute on "Reconquistar Al-Ándalus" | Metalheads Forever Magazine
- Desmond F. X. Kon ZC-MD // Ow Yeong Wai Kit | A GIVEN GRACE: AN ANTHOLOGY OF CHRISTIAN POEMS
- 5 tips for healthy, glowing skin
- How Does the Skin Work?
- Outdoor Retractable Awnings for Sale
- Neu im Kino - «Der Spatz im Kamin»: Ein schreckliches Familientreffen
- MiWiFi Login - miwifi.com. Updated in 2024
- FULL - Translation from English into German
- Dark Net Markets Comparison Chart | Darknet stats
- 12 Hair Color Trends Everyone Will Be Asking For This Summer
- At hand, on hand or in hand
- Szöveg online fordítás és Fordító
- Ghost of Tsushima sur PlayStation 4
- Calculator - English
- Luxo Jr.'s: The Great Longneck Migration 2: Rise in the Crossover (Jaden Groves Crossover) and (ZacTheBear Crossover)
- 11 Top CA Firms in India That Achieved Career Success
- What to Watch For: Bellator 128
- The 11 best restaurants in Seattle that you need to try
- What Is ChatGPT? Key Facts About OpenAI’s Chatbot. | Built In
- Clearance, avec ou sans abonnement ? - Clearance
- Na Xie Hua Er by Fan Wei Qi
- La porta di accesso alla tua mail e ai servizi di Libero
- CA nears first-in-nation ban on plastic glitter in cosmetics
- Lecithin Kapseln, Granulat oder flüssig in der Apotheke kaufen | APONEO
- Flughafen Berlin Brandenburg [BER] Ankunft & Flugplan
- Fix problems signing into your AOL account
- Sign up for YouTube Premium or YouTube Music Premium memberships - Computer
- maca - Compléments alimentaires - FORUM Nutrition
- Service Options | Combs, Parsons & Collins Funeral Home, ...
- b oder p? Regeln und Beispiele
- Beef Stroganoff Is a Dinnertime Classic
- أفضل 8 مواقع لإعادة كتابة الجمل باستخدام الذكاء الاصطناعي اون لاين
- Cafe Flora menu - Seattle WA 98112
- vue de la terre promise de georges duhamel, Signé
- Fenêtres comment obtenir de l'aide qui n'arrêtent pas de s'ouvrirent
- Ozone layer recovery is on track, helping avoid global warming by 0.5°C
- To increase/decrease/reduce by X times/times.
- Pos-T-Vac Replacement Parts
- كيفية معرفة باسورد الواي فاي من كمبيوتر يعمل بنظام ويندوز 11
- How To Meal Prep For Beginners: A Step-by-Step Guide To Getting Started [2025] - Meals By Mel
- كيفية الدخول على اليوتيوب - موضوع
- housework or chores?
- Are Getty Images Copyright Free: Discover the Truth About Getty Images
- Rich List-The Al Zamil Family - Arabian Business: Latest News on the Middle East, Real Estate, Finance, and More
- The Truth About Soybeans And Inflammation | Dr. Will Cole
- Welche Vitamine gibt es? Liste mit allen 13 Vitaminen - PharmaDosis
- Ancient bone-eating worms ate mosasaur, ichthyosaur and plesiosaur skeletons
- Torch Set for sale| 10 ads for used Torch Sets
- Get the most out of home blood pressure monitoring
- 10 Old-Fashioned French Bistros to Try in New York City
- Structured snippet requirements - Advertising Policies Help
- Thursday, July 3: The Second and Final Season of 'The Sandman' Lands on Netflix
- Download free VPN with no data limits | Proton VPN
- Senators | California State Senate
- Uniswap 101: What is Uniswap? | Uniswap Labs
- This common shaving mistake is giving you razor burn
- Opciones de planes de Microsoft 365 y Office 365 - Service Descriptions
- Serum do twarzy | Makeup
- De EA app downloaden, installeren en bijwerken
Article information
Author: Lakeisha Bayer VM
Last Updated:
Views: 5588
Rating: 4.9 / 5 (69 voted)
Reviews: 92% of readers found this page helpful
Author information
Name: Lakeisha Bayer VM
Birthday: 1997-10-17
Address: Suite 835 34136 Adrian Mountains, Floydton, UT 81036
Phone: +3571527672278
Job: Manufacturing Agent
Hobby: Skimboarding, Photography, Roller skating, Knife making, Paintball, Embroidery, Gunsmithing
Introduction: My name is Lakeisha Bayer VM, I am a brainy, kind, enchanting, healthy, lovely, clean, witty person who loves writing and wants to share my knowledge and understanding with you.