Spaces:
Build error
Build error
import gradio as gr | |
import cv2 | |
import numpy as np | |
import random | |
# Convert decimal color to hexadecimal color | |
def RGB_to_Hex(rgb): | |
color = "#" | |
for i in rgb: | |
num = int(i) | |
color += str(hex(num))[-2:].replace("x", "0").upper() | |
return color | |
# Randomly generate light or dark colors | |
def random_color(is_light=True): | |
return ( | |
random.randint(0, 127) + int(is_light) * 128, | |
random.randint(0, 127) + int(is_light) * 128, | |
random.randint(0, 127) + int(is_light) * 128, | |
) | |
def switch_color(color_style): | |
if color_style == "light": | |
is_light = True | |
elif color_style == "dark": | |
is_light = False | |
back_color_ = random_color(is_light) # Randomly generate colors | |
back_color = RGB_to_Hex(back_color_) # Convert to hexadecimal | |
# Draw color pictures. | |
w, h = 50, 50 | |
img = np.zeros((h, w, 3), np.uint8) | |
cv2.rectangle(img, (0, 0), (w, h), back_color_, thickness=-1) | |
return back_color, back_color, img | |
inputs = [gr.Radio(["light", "dark"], value="light")] | |
outputs = [ | |
gr.ColorPicker(label="color"), | |
gr.Textbox(label="hexadecimal color"), | |
gr.Image(type="numpy", label="color picture"), | |
] | |
title = "Color Generator" | |
description = ( | |
"Click the Submit button, and a dark or light color will be randomly generated." | |
) | |
demo = gr.Interface( | |
fn=switch_color, | |
inputs=inputs, | |
outputs=outputs, | |
title=title, | |
description=description, | |
) | |
if __name__ == "__main__": | |
demo.launch() | |