Welcome to this years Python challenge for Hacktoberfest, a project with beginners and aspiring developers in mind, utilizing Python to convert images into ASCII Art.
Hacktoberfest is a month-long celebration of open source, organised by Digital Ocean. (More details here)
If you've never made a pull request before, or participated in an open-source project, we recommend taking a look at:
- Our Start Here Guidelines
- Our Youtube Video.
These two resources have everything you need to learn about open-source, with a step-by-step guide to making your very first PR. Once you've got your feet wet, you're ready to come back and dive into Hacktoberfest fun!
ASCII art is a graphic design technique that uses computers for presentation and consists of pictures pieced together from the 95 printable characters defined by the ASCII Standard from 1963 and ASCII compliant character sets with proprietary extended characters. ~ Wikipedia
In order to get started on this project, it is recommended that you watch the section on Scripting in the Python course. We talk about sys.argv
and Pillow
library (Image processing) in that section which would help you!
-
First up you need to fork (make a copy) of this repo to your Github account.
-
Clone (download) your fork to your computer
-
Set your streams so you can sync your clone with the original repo (get the latest updates)
git remote add upstream https://github.com/zero-to-mastery/ascii-art.git
git pull upstream master
- The above 2 commands will synchronize your forked version of the project with the actual repository.
-
Make sure you have Python 3 installed on your machine
-
Install necessary dependencies by running
pip3 install -r requirements.txt
. -
Run the example code with the command:
python3 example/make_art.py example/ztm-logo.png
-
Stare with amazement 😮
-
Start chatting with other ZTM students in the #hacktoberfest-2023 channel on our Discord to get help, work together, and share your contributions!
- Install Docker
- Run
docker build -t ascii-art .
- Run
docker run -i ascii-art < path/to/image
Now that you see how this command line tool works, let's see how we can evolve it with our ZTM community help!! Maybe we want to display this on an HTML web page where users can submit images and we convert it to ASCII art? Maybe we want to improve how the Command Line Tool works/make it more customizeable? Or maybe modify the script to do many other types of art beyond ASCII.
The options are endless and there is no wrong answer. This is all for fun, so try to customize the tool whichever way you think would be best and let's see what we get at the end of the month! Enjoy!
⚠ Please do not make changes to the files in the example directory, These files should remain intact for future contributors to examine and compare with the community version! Pull requests with changes to these files will be closed.
- Examine the code in
community-version.py
, figure out what improvements your fellow community members have made (check outFEATURES.md
for a list of existing features you can add to or improve). - Make an improvement, it doesnt have to be elaborate
- Create a pull request
- Tweet about making your first Hacktoberfest pull request
Congratulations! You are now one pull request closer to getting that free t-shirt. Repeat these steps until you have made at least 4 qualifying pull requests. You can check how many qualifying pull requests you have made at https://hacktoberfest.digitalocean.com/profile Have Fun and Happy Coding!
Looking for a challenge?
We have left the original code which was written in Python 2 under the example/make_art_python2.py
file. See what happens when you run it with Python 3. See all of the errors? Can you fix it so it works with python 3? The answer is with the example/make_art.py
file which is written in Python 3.
All discussions around this event can now be had in our dedicated Hacktoberfest channel on Discord!