FontAwesome Converter
📋 Overview
FontAwesome Converter is a Python tool that allows you to convert FontAwesome icons to PNG format with flexible options. The tool supports both SVG-based and font-based rendering methods and can generate icons in multiple sizes simultaneously.
✨ Features
- 🎨 Multiple Rendering Methods: Convert using SVG or font-based rendering
- 📐 Flexible Size Options: Generate icons in multiple preset sizes (16px to 512px)
- 🔣 Style Support: Convert icons in solid, regular, or brands styles
- 🎭 Color Customization: Apply custom colors to your icons
- 📁 Organized Output: Automatically organizes icons by size in separate folders
- 🔄 Batch Processing: Convert individual icons or the entire icon set
- 📊 Logging Control: Adjustable verbosity with multiple log levels
🚀 Installation
From PyPI (Recommended)
pip install fontawesome-converter
From Source
# Clone the repository
git clone https://github.com/SakuraPuare/fontawesome-converter.git
cd fontawesome-converter
# Install the package
pip install -e .
📖 Usage
📂 FontAwesome Path Requirements
The /path/to/fontawesome argument should point to the extracted FontAwesome package directory downloaded from fontawesome.com/download. After downloading the ZIP file, extract it and use the path to the extracted directory.
Expected Directory Structure
fontawesome-directory/
├── css/
├── js/
├── svgs/
│ ├── solid/
│ ├── regular/
│ └── brands/
├── webfonts/
└── metadata/
└── icons.json
Important notes:
- Make sure to use the path to the extracted directory, not the ZIP file
- The tool needs access to
svgs/directory for SVG rendering andwebfonts/for font rendering- The
metadata/icons.jsonfile is required for both rendering methods- Both Free and Pro versions of FontAwesome are supported
💻 Command Line Interface
Convert a single icon:
fa-convert convert arrow-right /path/to/fontawesome --style solid --size 512 --color "#FF0000"
Convert all icons:
fa-convert convert-all /path/to/fontawesome --style solid --size 512
⚙️ Options
| Option | Description |
|---|---|
--style |
Icon style (solid, regular, brands) |
--size |
Maximum output size in pixels (will generate all standard sizes up to this value) |
--color |
Color for the icon (as hex code) |
--render-method |
Method to use for rendering (svg or font) |
--output-dir |
Directory to save the outputs |
--log-level |
Set logging verbosity (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
🐍 Python API
from fontawesome_converter import FontAwesomeConverter
# Initialize converter
converter = FontAwesomeConverter("/path/to/fontawesome")
# Convert a single icon
converter.convert_svg("arrow-right", style="solid", size=512, color="#FF0000")
# Convert all icons
converter.convert_all(style="solid", size=512, render_method="svg")
📊 Output Structure
Converted icons are organized in the following structure:
View Output Directory Structure
output/
16px/
icon1_solid.png
icon2_regular.png
...
24px/
icon1_solid.png
icon2_regular.png
...
32px/
...
48px/
...
64px/
...
128px/
...
256px/
...
512px/
...
🔍 Examples
Basic Usage
Convert an icon to multiple sizes (maximum 512px):
fa-convert convert arrow-right /path/to/fontawesome
Custom Colors
Convert all "solid" style icons to blue PNGs:
fa-convert convert-all /path/to/fontawesome --style solid --color "#0000FF"
Verbose Logging
Adjust log level for detailed information:
fa-convert --log-level DEBUG convert arrow-right /path/to/fontawesome
🔧 Requirements
- Python 3.10+
- FontAwesome files (can be downloaded from FontAwesome)
- Dependencies:
- cairosvg - for SVG rendering
- Pillow - for image processing
- loguru - for enhanced logging
- click - for CLI interface
- tqdm - for progress bars
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for fontawesome-converter 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fontawesome_converter-1.1.0.tar.gz | 11.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fontawesome_converter-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.7 kB
Release files / fontawesome_converter-1.1.0.tar.gz
| Download URL | fontawesome_converter-1.1.0.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
76a26c931c8f387feb885df9743bee243d210f6eb41737c970fc1a4cdb9f0dc2
|
|
BLAKE2b-256 checksum How to use checksums |
cbe302012f5055c96ddfd1ba805d2a1f21f4e66dddeed3bd32544f14aee7b268
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 22, 2025.
Transparency logRelease files / fontawesome_converter-1.1.0-py3-none-any.whl
| Download URL | fontawesome_converter-1.1.0-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3cdd094cd7bf308ff2a56afcc7d765ef90e3852e7bda28f23a86b4abf280613d
|
|
BLAKE2b-256 checksum How to use checksums |
4fc4059167d6152f66b465fd878239ba49f7ebc49c47d7b0a9093fb51d2e8f95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 22, 2025.
Transparency log