1. Resize the image
The converter first reduces the source image to a smaller width, usually between 60 and 160 characters. A 4K photo has millions of pixels, but a readable ASCII block may only have a few thousand characters. Smaller output is easier to copy and read. Wider output keeps more detail but breaks quickly on mobile screens.
2. Convert pixels to brightness
Every sampled pixel is converted to grayscale. A dark pixel receives a low brightness value, while a light pixel receives a high value. The tool can then apply brightness and contrast changes before choosing characters.
3. Map brightness to characters
A dense character such as @ or # represents a darker region. A light character such as ., :, or a space represents a brighter region. A common dark-to-light ramp is @%#*+=-:. . Change the ramp and the final look changes immediately.
4. Fix the aspect ratio
Text characters are usually taller than they are wide. If a converter maps one pixel row to one text row without correction, the output looks stretched vertically. A good converter reduces the output height to compensate.
5. Why contrast matters
ASCII art needs separation. A portrait with a clear face against a plain background works better than a busy crowd photo. If everything has the same brightness, the converter has no meaningful shape to preserve.
Practical settings
- Use 80-120 characters wide for general sharing.
- Use higher contrast for portraits and logos.
- Use a minimal charset for clean icons.
- Use dense charsets for detailed images.
- Crop the subject before converting when the background is messy.