CoolFace
Apppublic

Omnibus/pixel_mapping

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
app.py121 linesDownload Raw Back to root
1import gradio as gr2from PIL import Image3 4def sort_doc(in_list: list, steps_in: int, control: int, prev_list: str):5    control_json={'control':'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','char':'','leng':62}6    key_cnt=len(in_list)7    print(key_cnt)8 9    control_char=list(control_json['control'])10    char_len=len(control_char)    11    if not steps_in:12        n_cnt=013        nx=key_cnt14        while True:15            if nx >= 1:16                n_cnt+=117                nx = nx/char_len18            else:19                steps=n_cnt20                break    21    if steps_in:22        steps=steps_in23    if control:24        control_len=control_json['leng']-control25        control_char=list(control_json['control'][:control_len])26        control_val=list(control_json['control'][control_len:])27        val_len=len(control_val)28        control_val_box=[]29        for ea in control_val:30            control_val_box.append(ea)31        print(f'CONTROL_VAL_BOX:: {control_val_box}')32        #prev_list=control_val_box33    json_out={}34    35    big_cnt=036    cnt=037    go=True38    step_cont_box=[]39 40    if prev_list:41        print("LOD")42        last_key=list(prev_list.keys())[-1]43        print(last_key)44        for ea_dig in last_key:45            ea_dig=control_json['control'].index(ea_dig)46            ea_dig=int(ea_dig)47            print(f'{ea_dig} :: {list(control_json["control"][ea_dig])[0]}')48            #step_cont_box.append(int(list(control_json["control"][ea_dig])[0]))49            step_cont_box.append(ea_dig)50            print(step_cont_box)51        cnt=int(step_cont_box[-1])+152    if not prev_list:53        print("NOT LOD")54        for ii in range(steps):55            print(ii)56            step_cont_box.append(0)57 58    pos=len(step_cont_box)-159    if go:60        for i, ea in enumerate(in_list):61            if go:62                if cnt > char_len-1:63                    #print(step_cont_box)64                    go1=True65                    for ii,ev in enumerate(step_cont_box):66                        if go:67                            if ev >= char_len-1:68                                step_cont_box[ii]=069                                if go1==True:70                                    step_cont_box[ii-1]=step_cont_box[ii-1]+171                                    go1=False72                    cnt=173                else:74                    step_cont_box[pos]=cnt75                    cnt+=176                #print(step_cont_box)77                out_js=""78                for iii,j in enumerate(step_cont_box):79                    #print(j)80                    out_js = out_js+control_char[j]81                json_out[out_js]=in_list[i]82                big_cnt+=183                if big_cnt==key_cnt:84                    print("DONE")85                    go=False86    return json_out87 88 89def get_pixels(im):90    img=Image.open(im)91    pixels = img.load() # create the pixel map92    im_width=img.size[0]93    im_height=img.size[1]94    print(f'{im_width} :: {im_height}')95    pixel_box=[]96    pixel_list={}97    for i in range(im_width):    # for every col:98        for j in range(im_height):    # For every row99            pixel = pixels[i,j]100            r,g,b=pixels[i,j]101            if str(pixel) in pixel_box:102                #print("YES")103                pixel_list[str(pixel)].append((i,j))104                print(pixel_list[str(pixel)])105            else: 106                #pixel_box.append({f'{pixels[i,j]}':[(i,j)]})107                pixel_list[str(pixel)]=[(i,j)]108                pixel_box.append(str(pixel))109            110            #pixels[i,j] = (i, j, 100) # set the colour accordingly111            #print(pixels[i,j])112    #for ea in pixel_box:113    print(len(pixel_list))    114    print(len(pixel_box))    115    return pixel_list116with gr.Blocks() as app:117    in_im=gr.Image(type='filepath')118    go_btn=gr.Button()119    out_json=gr.JSON()120    go_btn.click(get_pixels,in_im,out_json)121app.launch()