File size: 3,944 Bytes
8fcaabd
96efdf1
 
3b1708c
 
 
 
e9ed894
3b1708c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e9ed894
 
92bfde1
 
6154d12
0e872db
 
 
b7de9de
4bc6412
0e872db
 
4bc6412
3b1708c
6270fef
b372c11
6270fef
b372c11
4bc6412
 
6270fef
 
4bc6412
b7de9de
 
f983ea3
4bc6412
 
a32e35d
e960a9a
92bfde1
b7de9de
 
 
e960a9a
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import gradio as gr
from PIL import Image

def sort_doc(in_list: list, steps_in: int, control: int, prev_list: str):
    control_json={'control':'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','char':'','leng':62}
    key_cnt=len(in_list)
    print(key_cnt)

    control_char=list(control_json['control'])
    char_len=len(control_char)    
    if not steps_in:
        n_cnt=0
        nx=key_cnt
        while True:
            if nx >= 1:
                n_cnt+=1
                nx = nx/char_len
            else:
                steps=n_cnt
                break    
    if steps_in:
        steps=steps_in
    if control:
        control_len=control_json['leng']-control
        control_char=list(control_json['control'][:control_len])
        control_val=list(control_json['control'][control_len:])
        val_len=len(control_val)
        control_val_box=[]
        for ea in control_val:
            control_val_box.append(ea)
        print(f'CONTROL_VAL_BOX:: {control_val_box}')
        #prev_list=control_val_box
    json_out={}
    
    big_cnt=0
    cnt=0
    go=True
    step_cont_box=[]

    if prev_list:
        print("LOD")
        last_key=list(prev_list.keys())[-1]
        print(last_key)
        for ea_dig in last_key:
            ea_dig=control_json['control'].index(ea_dig)
            ea_dig=int(ea_dig)
            print(f'{ea_dig} :: {list(control_json["control"][ea_dig])[0]}')
            #step_cont_box.append(int(list(control_json["control"][ea_dig])[0]))
            step_cont_box.append(ea_dig)
            print(step_cont_box)
        cnt=int(step_cont_box[-1])+1
    if not prev_list:
        print("NOT LOD")
        for ii in range(steps):
            print(ii)
            step_cont_box.append(0)

    pos=len(step_cont_box)-1
    if go:
        for i, ea in enumerate(in_list):
            if go:
                if cnt > char_len-1:
                    #print(step_cont_box)
                    go1=True
                    for ii,ev in enumerate(step_cont_box):
                        if go:
                            if ev >= char_len-1:
                                step_cont_box[ii]=0
                                if go1==True:
                                    step_cont_box[ii-1]=step_cont_box[ii-1]+1
                                    go1=False
                    cnt=1
                else:
                    step_cont_box[pos]=cnt
                    cnt+=1
                #print(step_cont_box)
                out_js=""
                for iii,j in enumerate(step_cont_box):
                    #print(j)
                    out_js = out_js+control_char[j]
                json_out[out_js]=in_list[i]
                big_cnt+=1
                if big_cnt==key_cnt:
                    print("DONE")
                    go=False
    return json_out


def get_pixels(im):
    img=Image.open(im)
    pixels = img.load() # create the pixel map
    im_width=img.size[0]
    im_height=img.size[1]
    print(f'{im_width} :: {im_height}')
    pixel_box=[]
    pixel_list={}
    for i in range(im_width):    # for every col:
        for j in range(im_height):    # For every row
            pixel = pixels[i,j]
            r,g,b=pixels[i,j]
            if str(pixel) in pixel_box:
                #print("YES")
                pixel_list[str(pixel)].append((i,j))
                print(pixel_list[str(pixel)])
            else: 
                #pixel_box.append({f'{pixels[i,j]}':[(i,j)]})
                pixel_list[str(pixel)]=[(i,j)]
                pixel_box.append(str(pixel))
            
            #pixels[i,j] = (i, j, 100) # set the colour accordingly
            #print(pixels[i,j])
    #for ea in pixel_box:
    print(len(pixel_list))    
    print(len(pixel_box))    
    return pixel_list
with gr.Blocks() as app:
    in_im=gr.Image(type='filepath')
    go_btn=gr.Button()
    out_json=gr.JSON()
    go_btn.click(get_pixels,in_im,out_json)
app.launch()