35

GitHub - RameshAditya/asciify: Convert an image into ASCII Art. ✨

 5 years ago
source link: https://github.com/RameshAditya/asciify
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

Convert Images into ASCII Art with the power of Python

Contents

What ASCIIFY is

ASCIIFY is a python script that takes in as input an image, and returns a text output that resembles the input image. In other words, it replicates an image with certain characters.

For example, when the following image of Octocat -

is passed as a parameter into ASCIIFY, the following output is observed -

....................................................................................................
....................................................................................................
.....................................####:...............####.......................................
.....................................#########################......................................
.....................................#########################......................................
.....................................########################.......................................
....................................###########################.....................................
...................................#############################....................................
...................................########?+?#######%++########....................................
...................................#####:::..::::::::::..::+####....................................
...................................####:::....::::::::.?..::####....................................
...................................####:::..?.::::::::?.?.::####....................................
...................................+###:::+??;::::::::???.::@###....................................
....................................###:::.??.::::::::.?..::###.....................................
.......................................###:::::::?::::::::###.......................................
........................................:####::::::::::@###.........................................
..................................###.......############............................................
..................................:,##.......@#######@..............................................
..................................:.##......###########.............................................
.....................................#:;....###########.............................................
......................................#@%#:S#####.#####@............................................
.......................................#######.##.######............................................
............................................##.##.######............................................
............................................##.##.######............................................
........................................::::##:##:######::::........................................
.....................................::::::###:##:###:###::::::.....................................
....................................,:::::::++##S::###++:::::::.....................................
.....................................:::::::++:++:++++++:::::::.....................................
.......................................:::::++:++:++++++:::::.......................................
..........................................::++:++:++++++::..........................................
..................................................,.................................................
....................................................................................................

How ASCIIFY works

ASCIIFY works in a rather simple and intuitive way. Here's the algorithm -

  • Resize the image to a standard dimension, while maintaining aspect ratio
  • Convert to grayscale (the reason for doing so is because characters are replaced based on their intensity)
  • Create list of special characters to replace pixels with
  • Classify and divide pixels into buckets or groups, based on their intensity
  • Replace all pixels in a bucket with the corresponding special character
  • Print the text into terminal or write into a file
  • Profit!

How to use ASCIIFY

  • Clone the repo
  • Run the python script, and pass the image path as the parameter
  • The script will print the output in the terminal, and will also write into a file 'img.txt' in the same directory as the python script
  • Profit!

Future Plans

  • Alternatively support colored outputs by printing the text onto an image

Support Me

If you liked this, leave a star! ⭐️

If you liked this and also liked my other work, be sure to follow me for more! ?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK