Difference between revisions of "love.graphics.newImageFont"

(made note of BMFont's superiority)
m (Cleanup.)
 
(3 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
In versions prior to [[0.9.0]], LÖVE expects ISO 8859-1 encoding for the glyphs string.
 
In versions prior to [[0.9.0]], LÖVE expects ISO 8859-1 encoding for the glyphs string.
  
Instead of using this function, consider using a BMFont generator such as [http://www.angelcode.com/products/bmfont/ bmfont], [http://kvazars.com/littera/ littera], or [https://www.bmglyph.com/ bmGlyph] with [[love.graphics.newFont]]. Because slime said it was better.
+
{{newobjectnotice}}
  
{{newobjectnotice}}
 
 
== Function ==
 
== Function ==
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
font = love.graphics.newImageFont( filename, glyphs )
+
font = love.graphics.newImageFont( filename, glyphs, extraspacing )
 
</source>
 
</source>
 
=== Arguments ===
 
=== Arguments ===
 
{{param|string|filename|The filepath to the image file.}}
 
{{param|string|filename|The filepath to the image file.}}
 
{{param|string|glyphs|A string of the characters in the image in order from left to right.}}
 
{{param|string|glyphs|A string of the characters in the image in order from left to right.}}
 +
{{New_feature|0.10.0|
 +
{{param|number|extraspacing (0)|Additional spacing (positive or negative) to apply to each glyph in the Font.}}
 +
}}
 
=== Returns ===
 
=== Returns ===
 
{{param|Font|font|A Font object which can be used to draw text on screen.}}
 
{{param|Font|font|A Font object which can be used to draw text on screen.}}
Line 20: Line 22:
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
font = love.graphics.newImageFont( image, glyphs )
+
font = love.graphics.newImageFont( imageData, glyphs, extraspacing )
 
</source>
 
</source>
 
=== Arguments ===
 
=== Arguments ===
{{param|Image|image|The Image object to create the font from.}}
+
{{param|ImageData|imageData|The ImageData object to create the font from.}}
 
{{param|string|glyphs|A string of the characters in the image in order from left to right.}}
 
{{param|string|glyphs|A string of the characters in the image in order from left to right.}}
 +
{{New_feature|0.10.0|
 +
{{param|number|extraspacing (0)|Additional spacing (positive or negative) to apply to each glyph in the Font.}}
 +
}}
 
=== Returns ===
 
=== Returns ===
 
{{param|Font|font|A Font object which can be used to draw text on screen.}}
 
{{param|Font|font|A Font object which can be used to draw text on screen.}}
  
== Function ==
+
== Notes ==
{{newin|[[0.10.0]]|100|type=variant}}
+
Instead of using this limited function, consider using a BMFont generator such as [http://www.angelcode.com/products/bmfont/ bmfont], [http://kvazars.com/littera/ littera], or [https://www.bmglyph.com/ bmGlyph] with [[love.graphics.newFont]].
=== Synopsis ===
+
 
 +
== Examples ==
 +
=== Create a simple image font ===
 +
Download this [[:File:font_example.png|image file]] which will be used by LÖVE to create the font. Of course, when you want to create a font for your game you probably want to make the background transparent instead of black.
 +
 
 
<source lang="lua">
 
<source lang="lua">
font = love.graphics.newImageFont( filename, glyphs, extraspacing )
+
local font = love.graphics.newImageFont("font_example.png", " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
 +
function love.draw()
 +
love.graphics.setFont(font)
 +
love.graphics.print("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 16, 16)
 +
love.graphics.print("Text is now drawn using the font", 16, 32)
 +
end
 
</source>
 
</source>
=== Arguments ===
+
 
{{param|string|filename|The filepath to the image file.}}
 
{{param|string|glyphs|A string of the characters in the image in order from left to right.}}
 
{{param|number|extraspacing|Additional spacing (positive or negative) to apply to each glyph in the Font.}}
 
=== Returns ===
 
{{param|Font|font|A Font object which can be used to draw text on screen.}}
 
 
== See Also ==
 
== See Also ==
 +
* [[Constructs::Font]]
 +
* [[ImageFontFormat|Image Font Format]]
 
* [[parent::love.graphics]]
 
* [[parent::love.graphics]]
* [[Constructs::Font]]
+
 
* [[ImageFontFormat | Image Font Format]]
 
 
[[Category:Functions]]
 
[[Category:Functions]]
 
[[Sub-Category::Object Creation| ]]
 
[[Sub-Category::Object Creation| ]]
Line 49: Line 59:
 
{{#set:Since=020}}
 
{{#set:Since=020}}
 
{{#set:PrettySince=0.2.0}}
 
{{#set:PrettySince=0.2.0}}
 +
 
== Other Languages ==
 
== Other Languages ==
 
{{i18n|love.graphics.newImageFont}}
 
{{i18n|love.graphics.newImageFont}}

Latest revision as of 19:44, 26 July 2022

Creates a new Font by loading a specifically formatted image.

In versions prior to 0.9.0, LÖVE expects ISO 8859-1 encoding for the glyphs string.


O.png This function can be slow if it is called repeatedly, such as from love.update or love.draw. If you need to use a specific resource often, create it once and store it somewhere it can be reused!  



Function

Synopsis

font = love.graphics.newImageFont( filename, glyphs, extraspacing )

Arguments

string filename
The filepath to the image file.
string glyphs
A string of the characters in the image in order from left to right.
Available since LÖVE 0.10.0
number extraspacing (0)
Additional spacing (positive or negative) to apply to each glyph in the Font.

Returns

Font font
A Font object which can be used to draw text on screen.

Function

Synopsis

font = love.graphics.newImageFont( imageData, glyphs, extraspacing )

Arguments

ImageData imageData
The ImageData object to create the font from.
string glyphs
A string of the characters in the image in order from left to right.
Available since LÖVE 0.10.0
number extraspacing (0)
Additional spacing (positive or negative) to apply to each glyph in the Font.

Returns

Font font
A Font object which can be used to draw text on screen.

Notes

Instead of using this limited function, consider using a BMFont generator such as bmfont, littera, or bmGlyph with love.graphics.newFont.

Examples

Create a simple image font

Download this image file which will be used by LÖVE to create the font. Of course, when you want to create a font for your game you probably want to make the background transparent instead of black.

local font = love.graphics.newImageFont("font_example.png", " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
function love.draw()
	love.graphics.setFont(font)
	love.graphics.print("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 16, 16)
	love.graphics.print("Text is now drawn using the font", 16, 32)
end

See Also



Other Languages