Difference between revisions of "Component: gLCD Font Library (Graphical Library)"
Line 29: | Line 29: | ||
17, 17.0, 30-08-24, BR, Added watchdog disable to prevent taking too long error message | 17, 17.0, 30-08-24, BR, Added watchdog disable to prevent taking too long error message | ||
17, 17.0, 30-08-24, BR, Changed dynamic font file from .txt to .xml to work with dynamic library updates | 17, 17.0, 30-08-24, BR, Changed dynamic font file from .txt to .xml to work with dynamic library updates | ||
+ | 22, 19.1, 02-09-24, BR, Changed single .xml font file to multiple files to speed up font parsing system | ||
+ | 23, 19.1, 05-09-24, BR, Now works with fonts with and without library headers allowing for easier font development | ||
+ | 23, 19.1, 05-09-24, BR, Any printed ASCII above 127 is now treated as a degrees character | ||
+ | 23, 19.1, 05-09-24, BR, Fixed degrees symbol out of bounds issue | ||
+ | 24, 19.1, 05-09-24, BR, Added a calculation to show the number of ROM bytes used by the selected font | ||
+ | 25, 19.1, 11-09-24, BR, Allowed fonts with uppercase characters only to convert lowercase characters to uppercase | ||
+ | 26, 19.1, 26-10-24, BR, Mod to allow larger space widths to be entered | ||
+ | 27, 19.1, 04-11-24, BR, Fixed a bug with the space widths and reapplied the previous method, now with more options | ||
+ | |||
+ | |||
==Detailed description== | ==Detailed description== | ||
Line 195: | Line 205: | ||
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
| width="90%" | Embed Font Set | | width="90%" | Embed Font Set | ||
+ | |- | ||
+ | | colspan="2" | Specifies whether or not to add an embedded font set into the program memory. Some displays have their own in-built font set and so do not require an additional embedded font. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
+ | | width="90%" | Embed Width Data | ||
|- | |- | ||
| colspan="2" | Specifies whether or not to add an embedded font set into the program memory. Some displays have their own in-built font set and so do not require an additional embedded font. | | colspan="2" | Specifies whether or not to add an embedded font set into the program memory. Some displays have their own in-built font set and so do not require an additional embedded font. | ||
Line 203: | Line 218: | ||
| colspan="2" | Font picker to decide which font to use on your display. | | colspan="2" | Font picker to decide which font to use on your display. | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] |
− | | width="90%" | | + | | width="90%" | Bytes Required |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Number of bytes required in program memory to store the selected font. |
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] |
− | | width="90%" | | + | | width="90%" | Character Spacing |
|- | |- | ||
− | | colspan="2" | Sets the number of | + | | colspan="2" | Sets the number of blank pixels between each character when printing text. |
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
Line 217: | Line 232: | ||
|- | |- | ||
| colspan="2" | Details if the font has fixed width characters or variable width characters. | | colspan="2" | Details if the font has fixed width characters or variable width characters. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
+ | | width="90%" | Height Fixed | ||
+ | |- | ||
+ | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
Line 237: | Line 257: | ||
|- | |- | ||
| colspan="2" | Details the number of characters available, different fonts may have different characters available. | | colspan="2" | Details the number of characters available, different fonts may have different characters available. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
+ | | width="90%" | Uppercase Only | ||
+ | |- | ||
+ | | colspan="2" | Only Uppercase characters are supported, convert any lowercase to uppercase before printing. | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] |
Latest revision as of 08:59, 9 June 2025
Author | Matrix TSL |
Version | 19.1 |
Category | Graphical Library |
Contents
gLCD Font Library component
A component designed to simplify the task of creating dynamic fonts for use with graphical displays.
Version information
Library Version, Component Version, Date, Author, Info 11, 1.0, 20-06-24, BR, Renamed Number fonts to (Number Only) 12, 1.0, 20-06-24, BR, Added new sizes of Arial and SevenSegment fonts 13, 1.0, 20-06-24, BR, Fixed a bug with fonts with more then 255 bytes per character 14, 1.0, 09-08-24, MW, Added new font size variations 15, 1.0, 12-08-24, BR, Fixed a bug with fonts with more then 65535 bytes per font set 16, 16.0, 13-08-24, MW, Added new sizes of Arial, Courier, Fourteen and SevenSegment fonts 16, 16.0, 13-08-24, MW, corrected spelling of Segment and Calibri fonts 16, 16.0, 14-08-24, MW & BR, changed the way the fonts work by reading font from a text file instead of within Font component 17, 17.0, 30-08-24, BR, Added dynamic font selection and made public 17, 17.0, 30-08-24, BR, Added watchdog disable to prevent taking too long error message 17, 17.0, 30-08-24, BR, Changed dynamic font file from .txt to .xml to work with dynamic library updates 22, 19.1, 02-09-24, BR, Changed single .xml font file to multiple files to speed up font parsing system 23, 19.1, 05-09-24, BR, Now works with fonts with and without library headers allowing for easier font development 23, 19.1, 05-09-24, BR, Any printed ASCII above 127 is now treated as a degrees character 23, 19.1, 05-09-24, BR, Fixed degrees symbol out of bounds issue 24, 19.1, 05-09-24, BR, Added a calculation to show the number of ROM bytes used by the selected font 25, 19.1, 11-09-24, BR, Allowed fonts with uppercase characters only to convert lowercase characters to uppercase 26, 19.1, 26-10-24, BR, Mod to allow larger space widths to be entered 27, 19.1, 04-11-24, BR, Fixed a bug with the space widths and reapplied the previous method, now with more options
Detailed description
The font component provides a series of bitmap glyphs to the graphical display components and is built into these components.
Each font can be capable of providing a full character set or just a set of numeric characters, these latter being marked with the word Number.
Custom Fonts
Custom fonts can be created using the Custom option and providing a link to a file generated by a tool called The Dot Factory.
To do this you must first download and install the dot factory on your computer.
http://www.eran.io/the-dot-factory-an-lcd-font-and-image-generator/
Once the software is installed, run the software and click the spanner (wrench) icon next to the Preset. Configure the software like this.
For a fixed width font like courier new you can change the Width (x) setting from Tightest to Fixed.
Click Apply and then click the folder next to the Font option to set the font type and size. Click OK when done.
In the main text window underneath the Font you can specify the characters you will create glyphs for. This can be reduced to ensure you only create glyphs for characters you are going to be using in your program.
For a complete font glyph set similar to other Flowcode fonts copy and paste the following into the text field.
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Once you're done click the Generate button and then click File and Save as files, save to a location on your PC ideally with your Flowcode project file.
In Flowcode point the custom file to the .c file generated by the dot factory.
The new custom font should now simulate and work on embedded hardware. The Flowcode file will need to retain the link to the font .c file so be sure to keep both files when transferring projects.
Examples
No additional examples
Macro reference
ReadASCIILUT
ReadFontStat
![]() |
ReadFontStat |
Collects a stat about the selected font | |
![]() |
Index |
0=SpaceColumns, 1=CharacterHeight | |
![]() |
Return |
ReadWidth
![]() |
ReadWidth |
Gets the width of the ASCII character font data | |
![]() |
Character |
ASCII position so A = 'A' | |
![]() |
Return |
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_Lib_Fonts.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_Lib_Fonts.fcfx