mirror of
https://github.com/gradio-app/gradio.git
synced 2025-02-05 11:10:03 +08:00
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
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()
|