{"id":30625101,"url":"https://github.com/gavinlyonsrepo/colossus_ltsm","last_synced_at":"2026-03-03T04:33:06.846Z","repository":{"id":311288720,"uuid":"1043424450","full_name":"gavinlyonsrepo/Colossus_LTSM","owner":"gavinlyonsrepo","description":"Colossus_LTSM is a Python tool for converting TrueType fonts (.ttf) into C/C++ bitmap arrays and for visualizing font data stored in C/C++ header files. It is aimed at users working with embedded systems, LCDs, and GUIs where compact fonts are needed.","archived":false,"fork":false,"pushed_at":"2025-08-24T13:49:28.000Z","size":840,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-30T09:12:24.977Z","etag":null,"topics":["bitmap","bitmap-font","bitmap-font-converter","bitmap-font-generator","cplusplus","embedded","embedded-systems","font-rendering","fonts","gui","lcd","python3","tool","ttf","ttf-fonts","utlity"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gavinlyonsrepo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-23T20:29:25.000Z","updated_at":"2025-08-24T13:49:31.000Z","dependencies_parsed_at":"2025-08-24T01:36:41.543Z","dependency_job_id":"cc4fb3f4-4a64-4ea1-b7e9-cd61a287bb72","html_url":"https://github.com/gavinlyonsrepo/Colossus_LTSM","commit_stats":null,"previous_names":["gavinlyonsrepo/colossus_ltsm"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gavinlyonsrepo/Colossus_LTSM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinlyonsrepo%2FColossus_LTSM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinlyonsrepo%2FColossus_LTSM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinlyonsrepo%2FColossus_LTSM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinlyonsrepo%2FColossus_LTSM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gavinlyonsrepo","download_url":"https://codeload.github.com/gavinlyonsrepo/Colossus_LTSM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinlyonsrepo%2FColossus_LTSM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001117,"owners_count":26083021,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitmap","bitmap-font","bitmap-font-converter","bitmap-font-generator","cplusplus","embedded","embedded-systems","font-rendering","fonts","gui","lcd","python3","tool","ttf","ttf-fonts","utlity"],"created_at":"2025-08-30T18:01:07.231Z","updated_at":"2026-03-03T04:33:06.841Z","avatar_url":"https://github.com/gavinlyonsrepo.png","language":"Python","funding_links":["https://www.paypal.com/paypalme/whitelight976"],"categories":[],"sub_categories":[],"readme":"# Colossus_LTSM\n\n[![Website](https://img.shields.io/badge/Website-Link-blue.svg)](https://gavinlyonsrepo.github.io/)  [![Rss](https://img.shields.io/badge/Subscribe-RSS-yellow.svg)](https://gavinlyonsrepo.github.io//feed.xml)  [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/paypalme/whitelight976)\n\n## Table of Contents\n\n* [Overview](#overview)\n* [Installation](#installation)\n* [Libraries](#libraries)\n* [Usage](#usage)\n* [Input](#input)\n* [Output](#output)\n* [Configuration file](#configuration-file)\n* [Desktop Entry](#desktop-entry)\n* [Glyph rendering](#glyph-rendering)\n* [Screenshots](#screenshots)\n* [Projects](#projects)\n\n## Overview\n\n**Colossus_LTSM** is a Python tool for converting TrueType fonts (`.ttf`) into C/C++ bitmap arrays and for visualizing font data stored in C/C++ header files.  \nIt is aimed at users working with embedded systems, LCDs, and GUIs where compact fonts are needed.\n\n* Convert `.ttf` fonts to C/C++ arrays\n* Adjustable font size, ASCII range, and addressing mode\n* Visualize fonts from existing C/C++ headers\n* GUI built with Tkinter\n* Lightweight: only depends on `Pillow`\n\n## Installation\n\n1. [github repository](https://www.github.com/gavinlyonsrepo/Colossus_LTSM)\n2. [Pypi package](https://pypi.org/project/colossus-ltsm/)\n\nThe program is present in python package index, Pypi.\nInstall (you can use *pip* or *pipx*) to the location or environment of your choice.\n\n```python\n# For example with pipx \npipx install colossus-ltsm\n```\n\n## Libraries\n\n[Pillow](https://python-pillow.org/) for image processing\n\n## Usage\n\n0. Github repository: Colossus_LTSM\n1. PyPI package name: colossus-ltsm\n2. Import path: import colossus_ltsm\n3. Executable command: colossus\n\nRun the GUI:\n\nSelect from application menu(if desktop entry installed) or run from terminal with:\n\n```python\ncolossus\n# or directly with Python\n python3 -m colossus_ltsm.colossus_main\n```\n\n## Input\n\n* Select a `.ttf` font file\n* Set font size, Width and Height(e.g., 12, 16, 24)\n* Define ASCII range (e.g., 32-126)\n* Choose data addressing mode (horizontal or vertical)\n* Choose C or C++ arrays\n* Choose file extension (.h or .hpp)\n* Choose font name and file name\n* Some ttf files are available in the `extras/ttf` directory for testing.\n\n## Output\n\n* Generates a C or C++ header file with bitmap arrays.\n* Visualizes the font in the GUI, a PNG image can also be exported.\n\nExample output :\n\n```c\n// Example Font\n// An 8 by 8 character size font starting at \n// ASCII offset 0x30 in ASCII table with 0x02 characters in font. \n// 0 and 1 , size 20 bytes, 4 Control bytes at start.\nstatic const std::array\u003cuint8_t, 20\u003e FontBinaryExample =\n{\n0x08, 0x08, 0x30, 0x01,   // x-size, y-size, offset, (last character-offset : 0x31-0x30)\n0x7C,0xC6,0xCE,0xD6,0xE6,0xC6,0x7C,0x00, // ASCII font data '0' : 0x30\n0x18,0x38,0x18,0x18,0x18,0x18,0x7E,0x00 // ASCII font data  '1' : 0x31\n};\n```\n\nExported PNG image of font data visualization:\n\n![ img font ](https://github.com/gavinlyonsrepo/Colossus_LTSM/blob/main/extras/images/HomeSpun3232.png)\n\n## Configuration file\n\nThe configuration file is created on startup and populated by default values.\nThe file is located at '~/.config/colossus_ltsm/colossus_ltsm.cfg' on Linux systems.\n\n| Setting | Value | Default | Note |\n| ------ | ------ | ----- | ----- |\n| scale | int | 4 | Scale of font displayed |\n| Columns | int | 16 | Number of columns of font characters to display |\n| debug | bool | False | Enable debug output to terminal |\n\n## Desktop Entry\n\nA button on the main GUI allows Linux users to install a desktop entry and icon for Colossus.This creates a `.desktop` file in `~/.local/share/applications/` and an icon in `~/.local/share/icons/`, allowing Colossus to be launched from the application menu. The button is automatically disabled if the desktop entry is already installed. Uses *Curl* to download the icon from GitHub and creates the desktop entry file with the correct paths.\n\n## Glyph rendering\n\nGlyph rendering help [readme.](extras/docs/README_glyph_help.md)\nExplains how the converter measures and positions glyphs within the bitmap cell, and how to interpret messages in the conversion log related to width scaling and clipping.\n\n## Screenshots\n\n![ image ](https://github.com/gavinlyonsrepo/Colossus_LTSM/blob/main/extras/images/screenshot.png)\n\n## Projects\n\nSome of my libraries that use these fonts are:\n\n| MCU type | Library link | Data adddressing mode |\n| ------ | ------ | ----- |\n| Arduino | [GFX](https://github.com/gavinlyonsrepo/display16_LTSM) | Horizontal |\n| Raspberry Pi Pico | [GFX 16 bit](https://github.com/gavinlyonsrepo/displaylib_16bit_PICO) | Horizontal |\n| Raspberry Pi Pico | [GFX 1 bit](https://github.com/gavinlyonsrepo/displaylib_1bit_PICO) | Vertical |\n| Raspberry Pi | [GFX](https://github.com/gavinlyonsrepo/Display_Lib_RPI) | Horizontal |\n| PIC | [OLED](https://github.com/gavinlyonsrepo/pic_18F47K42_projects ) | Vertical |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgavinlyonsrepo%2Fcolossus_ltsm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgavinlyonsrepo%2Fcolossus_ltsm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgavinlyonsrepo%2Fcolossus_ltsm/lists"}