Metadata-Version: 2.1
Name: pixelator
Version: 1.0.0
Summary: Pixelate images to a specified size and color palette for AI/ML and various other purposes
Home-page: https://github.com/connor-makowski/pixelator
Download-URL: https://github.com/connor-makowski/pixelator/dist/pixelator-1.0.0.tar.gz
Author: Connor Makowski
Author-email: connor.m.makowski@gmail.com
License: MIT
Keywords: pixelate,picture,pixel,pixels,ai,ml
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 2.7
Requires-Python: >=3.6, <4
Description-Content-Type: text/markdown
License-File: LICENSE

Pixelator
==========
A simple python package to pixelate images given a color palette

Features
--------

- Users can:
  1. Load in array data, image files or capture directly from a camera
  2. Pixelate images to a specific color palette and image resolution
  3. Access pixelated array data or write it back to an image file

Setup
----------

Make sure you have Python 3.6.x (or higher). You can download it [here](https://www.python.org/downloads/).

### Installation

```
pip install pixelator
```

### Getting Started
Import the pixelator into your project
```
from pixelator import Pixelator
```

Some important notes:
- All data is stored and processed as BGR (to match open cv2)
  - EG: Provided pallettes should be in BGR

### Examples

Load from a file:
```
from pixelator import Pixelator
# Use the input filename provided
image = Pixelator(filename='./images/input.jpg')
# Pixelate the image to a 28x28 black and white array
pixelated_image = image.pixelate(
    width=28,
    height=28,
    palette=[[0,0,0],[255,255,255]]
)
# Write to `output.png` scaled up to a 500x500 image (to be easily viewed)
pixelated_image.write(filename='./images/output_test_1.jpg', width=300, height=300)
```
Input:
![](images/input.jpg)

Output:
![](images/output_test_1.jpg)

Capture from a webcam:
```
from pixelator import Pixelator
# Capture from a webcam since no data or filename is provided
image = Pixelator()

# Pixelate the image to a 28x28 black and white array
pixelated_image = image.pixelate(
    width=64,
    height=64,
    palette=[[0,0,0],[80,80,80],[160,160,160],[200,200,200],[255,255,255]]
)
# Write to `output.png` scaled up to a 500x500 image (to be easily viewed)
pixelated_image.write(filename='./images/output_test_3.jpg', width=300, height=300)
```
![](images/output_test_3.jpg)

Access Pixelator Data:
```
from pixelator import Pixelator
# Use the input filename provided
image = Pixelator(filename='./images/input.jpg')
# Pixelate the image to a 28x28 black and white array
pixelated_image = image.pixelate(
    width=28,
    height=28,
    palette=[[0,0,0],[255,255,255]]
)
# Show pixelated image data
print(pixelated_image.data)
```
