Spaces:
Running
Running
import gradio as gr | |
import numpy as np | |
with gr.Blocks() as demo: | |
imgs = gr.State() | |
gallery = gr.Gallery(allow_preview=False) | |
def deselect_images(): | |
return gr.Gallery(selected_index=None) | |
def generate_images(): | |
images = [] | |
for _ in range(9): | |
image = np.ones((100, 100, 3), dtype=np.uint8) * np.random.randint( | |
0, 255, 3 | |
) # image is a solid single color | |
images.append(image) | |
return images, images | |
demo.load(generate_images, None, [gallery, imgs]) | |
with gr.Row(): | |
selected = gr.Number(show_label=False) | |
darken_btn = gr.Button("Darken selected") | |
deselect_button = gr.Button("Deselect") | |
deselect_button.click(deselect_images, None, gallery) | |
def get_select_index(evt: gr.SelectData): | |
return evt.index | |
gallery.select(get_select_index, None, selected) | |
def darken_img(imgs, index): | |
index = int(index) | |
imgs[index] = np.round(imgs[index] * 0.8).astype(np.uint8) | |
return imgs, imgs | |
darken_btn.click(darken_img, [imgs, selected], [imgs, gallery]) | |
if __name__ == "__main__": | |
demo.launch() | |