Skip to main content

Convert images to character art with support for multiple character sets and formats

Project description

img-characterize

Convert images to character art with support for multiple character sets and formats.

Features

  • Multiple character sets (ASCII, Emoji, Chinese, etc.)
  • Color and black/white modes
  • Multiple output formats (PNG, JPG, TXT)
  • Batch processing support
  • Automatic character selection based on brightness
  • GUI interface for easy use
  • Command-line interface for automation
  • Image optimization capabilities
  • Large image subdivision support

Installation

pip install img-characterize

Quick Start

Command Line

Convert a single image:

img-characterize -i image.jpg -s ascii

Convert multiple images:

img-characterize -i image1.jpg image2.png -s emoji --color

Convert all images in a directory:

img-characterize -i ./images/ -s chinese --color --optimize

Python API

from img_characterize import convert_image

# Simple conversion
output_path = convert_image(
    "input.jpg",
    "output",
    character_set="ascii"
)

# Advanced options
output_path = convert_image(
    "input.jpg",
    "output",
    character_set="emoji",
    detail_level=15,
    complexity=20,
    color_mode=True,
    subdivide=True,
    optimize=True,
    empty_char=True,
    output_formats=["png", "txt"]
)

Command Line Options

  • -i, --input: Input image files or directories
  • -s, --character-set: Character set to use (default: ascii)
    • Available sets: ascii, arabic, braille, chinese, cyrillic, emoji, hangul, hiragana, katakana, kanji, latin, numbers, numbers+, roman, simple
  • -d, --detail-level: Detail level (character size in pixels, default: 12)
  • -c, --complexity: Number of different characters to use (default: 12)
  • --color: Enable color output
  • --subdivide: Subdivide large images
  • --optimize: Optimize output files
  • --empty-char: Include empty character for darker areas
  • -f, --formats: Output formats (png, jpg, txt)

Character Sets

Each character set has different characteristics suitable for different types of images:

  • ascii: Good for general use, wide brightness range (2-81)
  • emoji: Best for color images, largest brightness range (31-173)
  • chinese: Excellent detail, wide range (0-107)
  • braille: Compact representation, small range (3-18)
  • numbers: Clean look, moderate range (21-43)
  • roman: Serif style, good contrast (27-81)

Development

Setup Development Environment

  1. Clone the repository:
git clone https://github.com/kodu-ai/img-characterize.git
cd img-characterize
  1. Create a virtual environment:
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
  1. Install development dependencies:
pip install -e ".[dev]"

Running Tests

pytest tests/

Building Documentation

cd docs
make html

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Acknowledgments

  • PIL/Pillow for image processing
  • NumPy for numerical operations
  • The open-source community for font resources

Troubleshooting

Common Issues

  1. Font Not Found

    • Ensure required system fonts are installed
    • Use custom fonts by specifying font_path
  2. Memory Issues

    • Use --subdivide for large images
    • Reduce detail_level for faster processing
  3. Quality Issues

    • Adjust complexity for more/fewer characters
    • Try different character sets
    • Enable color mode for color-rich images

Error Messages

  • "Font not found": Install required system fonts
  • "Image too large": Use --subdivide option
  • "Invalid character set": Check available sets

Support

  • GitHub Issues: Bug reports and feature requests
  • Documentation: Full API reference and examples
  • Email: support@kodu.ai

Roadmap

  • Additional character sets
  • Custom character set support
  • Animation support
  • Web interface
  • Cloud processing support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

img_characterize-0.3.1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

img_characterize-0.3.1-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file img_characterize-0.3.1.tar.gz.

File metadata

  • Download URL: img_characterize-0.3.1.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for img_characterize-0.3.1.tar.gz
Algorithm Hash digest
SHA256 c3c7b6387ce6ce80a7dba55b29dc3035f26398aac383f5e7eea129bea7467f8c
MD5 48dfb8125f9b0e6ac1b486167a823110
BLAKE2b-256 42a37da6ccae3132d14e3618aebc91076b96678c2983abac71292113393636d9

See more details on using hashes here.

File details

Details for the file img_characterize-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for img_characterize-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e07df8b12d9a4f60b6f83e3da1bd2f75d0753d5bda2c8f75859faf8af8359523
MD5 8543f5c6a629cb4b6e00ceb199b1c603
BLAKE2b-256 8378c55f86f6b275ddcb0a1aa306f996937bf2649d8f67c1cb5f9060c605da95

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page