|
|
|
import gradio as gr |
|
|
|
from utils.color_utils import ( |
|
hex_to_rgb, |
|
) |
|
from utils.image_utils import ( |
|
convert_str_to_int_or_zero, |
|
) |
|
|
|
excluded_color_list = gr.State([(0,0,0,0),(255,255,255,0)]) |
|
|
|
def add_color(color, excluded_colors_var): |
|
excluded_colors = excluded_colors_var.value |
|
|
|
color = hex_to_rgb(color) + (255,) |
|
if color not in [tuple(lst) for lst in excluded_colors]: |
|
excluded_colors.append(color) |
|
excluded_color_lst = [tuple(lst) for lst in excluded_colors] |
|
else: |
|
excluded_color_lst = [tuple(lst) for lst in excluded_colors] |
|
return excluded_color_lst, excluded_color_lst |
|
|
|
def delete_color(row, excluded_colors_var): |
|
global excluded_color_list |
|
excluded_colors = list(excluded_colors_var) |
|
row_index = convert_str_to_int_or_zero(row) |
|
print(f"Delete Excluded Color {row_index} of {len(excluded_colors) - 1}") |
|
if row_index <= len(excluded_colors) - 1: |
|
del excluded_colors[row_index] |
|
excluded_color_lst = [tuple(lst) for lst in excluded_colors] |
|
excluded_color_list = excluded_color_lst |
|
return excluded_color_lst |
|
else: |
|
excluded_color_lst = [tuple(lst) for lst in excluded_color_list] |
|
print(f"Row index {row_index} not found in the list:{excluded_color_lst}") |
|
excluded_color_list = excluded_color_lst |
|
return excluded_color_lst |
|
|
|
def build_dataframe(excluded_colors_var): |
|
excluded_colors = [tuple(lst) for lst in excluded_colors_var.value] |
|
|
|
return excluded_colors |
|
|
|
def on_input(excluded_colors): |
|
print(f"input: {excluded_colors}") |
|
excluded_color_lst = [tuple(lst) for lst in excluded_colors] |
|
print(f"output: {excluded_color_lst}") |
|
return excluded_color_lst, excluded_color_lst |
|
|
|
|
|
def on_color_display_select(selected_rows, event: gr.SelectData): |
|
|
|
selected_index = event.index[0] |
|
print(f"Selected row index:{selected_rows[selected_index]}, index: {selected_index}") |
|
return selected_index |