Skip to content

Convert FontAwesome icons to PNG format with flexible options. | 将 FontAwesome 图标转换为 PNG 格式

License

Notifications You must be signed in to change notification settings

SakuraPuare/fontawesome-converter

Repository files navigation

FontAwesome Converter

FontAwesome Converter

Convert FontAwesome icons to PNG format

Python License SVG PNG PyPI version PyPI downloads

English | 中文

FontAwesome Icons

📋 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 and webfonts/ for font rendering
  • The metadata/icons.json file 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.


Built with ❤️ by SakuraPuare

About

Convert FontAwesome icons to PNG format with flexible options. | 将 FontAwesome 图标转换为 PNG 格式

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages