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
- Clone the repository:
git clone https://github.com/kodu-ai/img-characterize.git
cd img-characterize
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
- Install development dependencies:
pip install -e ".[dev]"
Running Tests
pytest tests/
Building Documentation
cd docs
make html
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests
- 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
-
Font Not Found
- Ensure required system fonts are installed
- Use custom fonts by specifying font_path
-
Memory Issues
- Use --subdivide for large images
- Reduce detail_level for faster processing
-
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file img_characterize-0.3.2.tar.gz.
File metadata
- Download URL: img_characterize-0.3.2.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f9e2e7182c7b95618aea1c17aecc19b80321ed89ba256e4b8a5fe103e2a9c6a
|
|
| MD5 |
8eaef810f4d6750f151cc8bc4f3c9ad8
|
|
| BLAKE2b-256 |
799ebe0f10d90aa3f1121be71d99e9feaf9479f947264c15b8359c0959689659
|
File details
Details for the file img_characterize-0.3.2-py3-none-any.whl.
File metadata
- Download URL: img_characterize-0.3.2-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
880e5f0313997698588c14826c1b40895b17d4cd6c6bdbe149d56eb68ee09fed
|
|
| MD5 |
a437cc1b4ee96a604d9162d7f6b9d859
|
|
| BLAKE2b-256 |
9315418c4eb6ef6b9ce3db107da6d173ec1eaf51097f9c54e0a98362df3aacd8
|