Skip to main content

Create Minecraft-like paintings

Project description

Craftpainting

Create Minecraft-like paintings in the terminal

Version PyPI - Downloads Make a PR MIT Buy Me A Coffee

sunset dense

🚀 Usage

Install it by running

pip install craftpainting

# on on mac,
pip3 install craftpainting

CLI

craftpainting input_path.png -s SIZE -r REPETITIONS -o output_path.png 

size

Enter a string of WxH, such as 2x1. Units are Minecraft blocks, so a width of 2x1 translates to an image of 32x16.

repetitions

The number of times enlarge the image. By default, an image 32x16 or 48x32 is too small and doesn't look good.

The value of -r dictates how many times each pixel should be multiplied. It's 15 by default, so an image of size 2x1 in blocks looks like it's 32x16 pixels, but is actually 480x240.

Set to 0 to get the minimum possible size.

gray

Append -g (or --gray) to the command to make the painting black and white.

outputpath

If no output path is specified, the image will be shown, but won't be saved.

Python

from craftpainting import create_painting, enlarge_image
from PIL import Image

image = Image.open('images/sunset_dense.jpg')
p = create_painting(image)  # create the (super tiny) image
p = enlarge_image(p, repetitions=15)  # enlarge it so it looks better
p.show()

To use in Python, Pillow is required. Install it:

pip install pillow

# or on mac,
pip3 install pillow

Web

Visit craftpainting.herokuapp.com.

web demo

Note: the website is hosted on Heroku on the free plan, so it will take around 10 seconds to load.

🏳️‍🌈 Examples

Sunset dense

craftpainting sunset_dense.jpg -o painting_sunset_dense.jpg

sunset dense

Original

sunset dense

Beach

craftpainting beach.png -s 3x2 -o painting_beach.png

beach

Original

beach

Code

craftpainting code.jpg -s 2x2 -o painting_code.jpg

code

Original

code

Landscape

craftpainting landscape.jpg -g -r 5 -o painting_landscape.jpg

Smaller values of repetitions produce images of smaller sizes.

code

Original

code

🛠 Build setup

# install all packages
cd src/
pipenv shell
pipenv install

# run test.py
python test.py

Web

cd web/
pipenv shell
pipenv install

# run the site on the dev server
python app.py

# host on heroku
git add .
git commit -m "update site"
cd ..  # go to the route directory
git subtree push --prefix web heroku master

📜 License

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

craftpainting-0.0.3.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

craftpainting-0.0.3-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file craftpainting-0.0.3.tar.gz.

File metadata

  • Download URL: craftpainting-0.0.3.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.6

File hashes

Hashes for craftpainting-0.0.3.tar.gz
Algorithm Hash digest
SHA256 fef9294427a42aec9c997ad8d8125edc70ec42357874cf3190b3586d90c1c97b
MD5 6be30d8320ef578182666d9c1fb96ba6
BLAKE2b-256 b8f485f5347d650c19c3d87d627b98638b8bfb494983f0d7741599e25e73aa10

See more details on using hashes here.

File details

Details for the file craftpainting-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: craftpainting-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.6

File hashes

Hashes for craftpainting-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e7a5eeff615874b19030a4cd22c2590264787f40afadea5e0f4081b1f23665d0
MD5 f1a3314f7b26230c1c964b8bd697c8c2
BLAKE2b-256 477d8dcf7ac985d69928b8be0dd5a2d05d49023b9ba494448632b5713c372201

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page