File size: 1,924 Bytes
ad8cacf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
"""

Processing-related UI components.

"""

import gradio as gr
from app.ui.components_common import EMOJI

def create_svg_components():
    """Create SVG conversion components."""
    with gr.Group():
        gr.Markdown(f"## {EMOJI['settings']} SVG変換設定")
        with gr.Accordion(f"{EMOJI['settings']} 詳細設定", open=False):
            color_mode = gr.Radio(
                choices=["color", "binary"],
                value="color",
                label="カラーモード"
            )
            hierarchical = gr.Radio(
                choices=["stacked", "cutout"],
                value="stacked",
                label="階層モード"
            )
            mode = gr.Radio(
                choices=["spline", "polygon", "none"],
                value="spline",
                label="トレースモード"
            )
            filter_speckle = gr.Slider(
                minimum=0, maximum=128, value=10, step=1,
                label="ノイズフィルタ (0-128)"
            )
            color_precision = gr.Slider(
                minimum=1, maximum=8, value=6, step=1,
                label="色精度 (1-8)"
            )
            corner_threshold = gr.Slider(
                minimum=0, maximum=180, value=60, step=1,
                label="角度閾値 (0-180)"
            )
    
    return (
        color_mode, hierarchical, mode,
        filter_speckle, color_precision, corner_threshold
    )

def create_process_button():
    """Create process button component."""
    return gr.Button(
        f"{EMOJI['magic']} 処理開始",
        variant="primary"
    )

def create_grid_display_option():
    """Create grid display option component."""
    return gr.Checkbox(
        label=f"{EMOJI['grid']} グリッド表示",
        value=True,
        info="SVGをグリッド状に配置して表示"
    )