Spaces:
Runtime error
Runtime error
import streamlit as st | |
import numpy as np | |
from PIL import Image | |
uploaded_file = st.file_uploader("Choose an image", type=['png', 'jpg', 'jpeg']) | |
pixelsize = st.selectbox( | |
'Pixel grid size', | |
(256, 128, 64, 32), format_func=lambda x: f'{x}px') | |
if uploaded_file: | |
submit_button = st.button(label='Generate pixel art!') | |
if uploaded_file and submit_button: | |
img_raw = Image.open(uploaded_file) | |
hsv_image = img_raw.convert("HSV") | |
hue, saturation, value = hsv_image.split() | |
threshold = 180 | |
saturation = saturation.point(lambda x: 255 if x > threshold else x) | |
hsv_image = Image.merge("HSV", (hue, saturation, value)) | |
img = hsv_image.convert("RGB") | |
size = img.size | |
new_size = (size[0] * pixelsize // max(size), size[1] * pixelsize // max(size)) | |
img = img.convert("RGB").convert("P", palette=Image.ADAPTIVE, colors=128).resize(new_size, resample=Image.NEAREST).quantize(colors=256, kmeans=0, dither=Image.Dither.FLOYDSTEINBERG) | |
img = img.resize(size, resample=Image.NEAREST) | |
col1, col2 = st.columns(2) | |
col1.image(img_raw) | |
col2.image(img, channels='RGB') | |