Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
GMImage.FontTypeMetrics
Queries space needed for text.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
GraphicsMagick | 7.3 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example |
---|---|---|
ImageRef | The image reference number. | 1 |
text | Some text | "Hello World" |
Result
Returns list or error.
Description
Queries space needed for text.Obtain font metrics for text string given current font, point size, and density settings.
Returns list with following values:
- text width in pixel
- text height in pixel
- Ascent, the distance in pixels from the text baseline to the highest/upper grid coordinate used to place an outline point.
- Descent, the distance in pixels from the baseline to the lowest grid coordinate used to place an outline point. Always a negative value.
- Maximum horizontal advance in pixels.
- Font size
To extract values, please pass through Math.TextToNumber or similar functions which always uses dot as decimal separator.
See also Font.CalculateTextWidth function.
Examples
Draw some text on a picture:
# open a picture
Set Variable [ $ref ; Value: MBS("GMImage.NewFromContainer"; Annotate Image::InputImage) ]
# set font size
Set Variable [ $r ; Value: MBS("GMImage.SetFontPointsize"; $ref; 20) ]
# set the font
Set Variable [ $r ; Value: MBS("GMImage.SetFont"; $ref; "@/System/Library/Fonts/LucidaGrande.ttc") ]
# set the fill color
Set Variable [ $r ; Value: MBS("GMImage.SetFillColor"; $ref; "RGB 0 0 0") ]
# Query size for this text:
Set Variable [ $r ; Value: MBS("GMImage.FontTypeMetrics"; $ref; Annotate Image::Text) ]
# draw the text:
Set Variable [ $r ; Value: MBS("GMImage.Annotate"; $ref; Annotate Image::Text; "100x200+10+40"; 1) ]
# write image
Set Field [ Annotate Image::OutputImage ; MBS( "GMImage.WriteToPNGContainer"; $ref ) ]
# free memory
Set Variable [ $Error ; Value: MBS("GMImage.Release";$ref) ]
Measure text:
MBS("GMImage.FontTypeMetrics"; $ref; Annotate Image::Text)
Example result:
"528.000000
47.000000
39.000000
-8.000000
66.000000
40.000000"
See also
- Font.CalculateTextWidth
- GMImage.Annotate
- GMImage.New
- GMImage.NewFromContainer
- GMImage.Release
- GMImage.SetFillColor
- GMImage.SetFont
- GMImage.SetFontPointsize
- GMImage.WriteToPNGContainer
- Math.TextToNumber
Release notes
- Version 7.3
- Added GMImage.FontTypeMetrics function.
Example Databases
Blog Entries
This function checks for a license.
Created 20th June 2017, last changed 26th September 2021