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() | |