| Crates.io | pixel2ascii |
| lib.rs | pixel2ascii |
| version | 0.1.1 |
| created_at | 2026-01-05 23:06:03.769118+00 |
| updated_at | 2026-01-06 17:40:00.157278+00 |
| description | Convert images into ASCII art with color and grayscale support, including block-based sampling, ANSI color output, and CLI. |
| homepage | https://github.com/SameerVers3/pixel2ascii |
| repository | https://github.com/SameerVers3/pixel2ascii |
| max_upload_size | |
| id | 2024729 |
| size | 49,780 |
Convert images into ASCII art with optional ANSI truecolor support.
default, dense, and Unicode blocksgit clone https://github.com/SameerVers3/pixel2ascii.git
cd pixel2ascii
cargo build --release
The binary will be at target/release/pixel2ascii.
cargo install pixel2ascii
pixel2ascii <INPUT> [OPTIONS]
Basic usage (grayscale, 100 characters wide):
pixel2ascii image.png
Colorized output at 120 characters wide:
pixel2ascii image.png --color --width 120
Use block characters for a bolder look:
pixel2ascii image.png --charset-preset blocks
Invert luminance (useful for light terminals):
pixel2ascii image.png --invert
Save output to a file:
pixel2ascii image.png -o output.txt
Custom charset (dark → light):
pixel2ascii image.png --charset "@#%*+=-:. "
| Flag / Option | Short | Default | Description |
|---|---|---|---|
<INPUT> |
required | Path to input image file | |
--width |
-w |
100 |
Maximum ASCII character width |
--aspect |
0.5 |
Character height/width ratio for aspect correction | |
--no-aspect |
Disable aspect correction (square blocks) | ||
--invert |
Invert luminance mapping | ||
--color |
-c |
Enable ANSI truecolor foreground | |
--bg |
Use background color mode (requires --color) |
||
--no-color |
Force grayscale output (overrides --color) |
||
--charset |
Custom charset ordered dark → light (≥2 chars) | ||
--charset-preset |
default |
Preset: default, dense, or blocks |
|
--output |
-o |
Write output to file instead of stdout | |
--quiet |
Suppress non-error messages | ||
--help |
-h |
Show help | |
--version |
-V |
Show version |
| Preset | Characters |
|---|---|
default |
@%#*+=-:. |
dense |
@M#W$9876543210?!abc;:+=-,._ |
blocks |
█▓▒░ (Unicode block elements) |
image crate to decode PNG, JPEG, GIF, BMP, etc.L = 0.2126 × R + 0.7152 × G + 0.0722 × B
This is the standard Rec. 709 luminance formula.
pixel2ascii/
├── Cargo.toml
├── README.md
└── src/
├── main.rs # CLI entry point
├── lib.rs # Library exports
├── cli.rs # Clap-based argument parsing
├── image.rs # Image loading and block sampling
├── font.rs # Charset bitmap generation (font8x8)
└── ascii.rs # ASCII rendering logic
| Crate | Purpose |
|---|---|
clap |
Command-line argument parsing |
image |
Image decoding (PNG, JPEG, etc.) |
font8x8 |
8×8 bitmap font for charset intensity calculation |
MIT © Sameer
Contributions are welcome! Please open an issue or submit a pull request.
Made with ❤️ in Rust