Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ninest/craftpainting
🌄 Create Minecraft-style paintings
https://github.com/ninest/craftpainting
craftpainting flask flask-web image minecraft pillow python python3
Last synced: 5 days ago
JSON representation
🌄 Create Minecraft-style paintings
- Host: GitHub
- URL: https://github.com/ninest/craftpainting
- Owner: ninest
- License: mit
- Created: 2020-06-19T18:45:33.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-02-16T05:30:50.000Z (over 1 year ago)
- Last Synced: 2024-10-25T16:51:20.712Z (12 days ago)
- Topics: craftpainting, flask, flask-web, image, minecraft, pillow, python, python3
- Language: Python
- Homepage:
- Size: 6.26 MB
- Stars: 15
- Watchers: 2
- Forks: 1
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
Craftpainting
Create Minecraft-like paintings in the terminal
## 🚀 Usage
Install it by running
```bash
pip install craftpainting# on on mac,
pip3 install craftpainting
```### CLI
```bash
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
```python
from craftpainting import create_painting, enlarge_image
from PIL import Imageimage = 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
# note that the default repetitions is 10p.show()
```To use in Python, Pillow is required. Install it:
```bash
pip install pillow# or on mac,
pip3 install pillow
```### Web
Visit [craftpainting.herokuapp.com](https://craftpainting.herokuapp.com/).
*Note: the website is hosted on Heroku on the free plan, so it will take around 10 seconds to load.*
## 🏳️🌈 Examples
### Sunset dense
```bash
craftpainting sunset_dense.jpg -o painting_sunset_dense.jpg
```
#### Original
### Beach
```bash
craftpainting beach.png -s 3x2 -o painting_beach.png
```
#### Original
### Code
```bash
craftpainting code.jpg -s 2x2 -o painting_code.jpg
```
#### Original
### Landscape
```bash
craftpainting landscape.jpg -g -r 5 -o painting_landscape.jpg
```Smaller values of `repetitions` produce images of smaller sizes.
#### Original
## 🛠 Build setup
```bash
# install all packages
cd src/
pipenv shell
pipenv install# run test.py
python test.py
```### Web
```bash
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
```## ♥️ Support
If you liked this project, consider supporting by
- ⭐️ Starring the repository
- 🎒 Checking out my other [projects](https://github.com/ninest)
- ☕️ Buying me [coffee](https://www.buymeacoffee.com/ninest)## 📜 License
- MIT
- Sunset Dense taken from [Minecraft Gamepedia](https://minecraft.gamepedia.com/Painting)
- Other images taken from [Pexels](https://www.pexels.com/)