Spaces:
Running
Running
import sys, random, argparse | |
import numpy as np | |
import math | |
from PIL import Image, ImageFont, ImageDraw | |
import gradio as gr | |
# 70 levels of gray | |
gscale1 = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,\\"^`'. " | |
# 10 levels of gray | |
gscale2 = '@%#*+=-:. ' | |
def getAverageL(image): | |
im = np.array(image) | |
w, h = im.shape | |
return np.average(im.reshape(w*h)) | |
def covertImageToAscii(input_img, cols, scale, moreLevels): | |
global gscale1, gscale2 | |
image = Image.fromarray(input_img).convert('L') | |
W, H = image.size[0], image.size[1] | |
w = W/cols | |
h = w/scale | |
rows = int(H/h) | |
if cols > W or rows > H: | |
print("Image too small for specified cols!") | |
exit(0) | |
aimg = [] | |
for j in range(rows): | |
y1 = int(j*h) | |
y2 = int((j+1)*h) | |
if j == rows-1: | |
y2 = H | |
aimg.append("") | |
for i in range(cols): | |
x1 = int(i*w) | |
x2 = int((i+1)*w) | |
if i == cols-1: | |
x2 = W | |
img = image.crop((x1, y1, x2, y2)) | |
avg = int(getAverageL(img)) | |
if moreLevels: | |
gsval = gscale1[int((avg*69)/255)] | |
else: | |
gsval = gscale2[int((avg*9)/255)] | |
aimg[j] += gsval | |
return aimg | |
def sepia(input_img): | |
aimg = covertImageToAscii(input_img, 200, 0.43, False) | |
my_image = Image.new(mode="RGB", size=(2000, 2000), color=(0, 0, 0)) | |
image_editable = ImageDraw.Draw(my_image) | |
image_editable.text((10, 10), "\n".join(aimg), (237, 230, 211)) | |
return [my_image, "\n".join(aimg)] | |
iface = gr.Interface(sepia, | |
gr.inputs.Image(shape=(200, 200)), | |
["image", "text"], | |
title = "ASCII Art", | |
description = "Convert an image to ASCII art based on ascii character density. Copy and paste the text to a notepad to see it correctly") | |
iface.launch(server_name="0.0.0.0", server_port=7860) | |
''' | |
import gradio as gr | |
import numpy as np | |
from PIL import Image | |
def generate_ascii_art(image): | |
try: | |
# Convert the numpy array to a PIL Image | |
img = Image.fromarray(np.uint8(image)) | |
# Resize the image to a smaller size for faster processing | |
img = img.resize((80, 60)) | |
# Convert the image to grayscale | |
img = img.convert("L") | |
# Define ASCII characters to represent different intensity levels | |
ascii_chars = "@%#*+=-:. " | |
# Convert each pixel to ASCII character based on intensity | |
ascii_image = "" | |
for pixel_value in img.getdata(): | |
ascii_image += ascii_chars[pixel_value // 25] | |
# Reshape the ASCII string to match the resized image dimensions | |
ascii_image = "\n".join([ascii_image[i:i + img.width] for i in range(0, len(ascii_image), img.width)]) | |
return ascii_image | |
except Exception as e: | |
return f"Error: {e}" | |
iface = gr.Interface( | |
fn=generate_ascii_art, | |
inputs="image", | |
outputs="text", | |
title="ASCII Art Generator", | |
description="Upload an image, and this app will turn it into ASCII art!", | |
live=True | |
) | |
iface.launch(server_name="0.0.0.0", server_port=7860) | |
''' | |
''' | |
import gradio as gr | |
import subprocess | |
def run_command(command): | |
try: | |
result = subprocess.check_output(command, shell=True, text=True) | |
return result | |
except subprocess.CalledProcessError as e: | |
return f"Error: {e}" | |
iface = gr.Interface( | |
fn=run_command, | |
inputs="text", | |
outputs="text", | |
#live=True, | |
title="Command Output Viewer", | |
description="Enter a command and view its output.", | |
examples=[ | |
["ls"], | |
["pwd"], | |
["echo 'Hello, Gradio!'"]] | |
) | |
iface.launch(server_name="0.0.0.0", server_port=7860) | |
''' |