def remove_blotch(blotchId): log('Client requested removal of blotch ', blotchId) global session session.currImgSession.remove_blotch(int(blotchId)) pyperclip.copy(session.get_clipboard_str()) return session.get_UIState_msg().SerializeToString()
def set_zoom(viewRatio: str, srcRatio: str): viewRatio = int(viewRatio) srcRatio = int(srcRatio) log(f'Client requested zoom of {viewRatio}:{srcRatio} (viewRatio:srcRatio)') global session session.set_img_zoom(viewRatio, srcRatio) return session.get_UIState_msg().SerializeToString()
def do_open_folder(): log('opening folder selection ui') # global imageFolder # imageFolder = ImageFolder.from_gui_folder_selection() global session session.set_imgFolder(ImageFolder.from_gui_folder_selection()) # session.imgFolder.register_images_on_session(session) session.set_currImgSession(ImageSession(session.imgFolder.images[0])) uiState = session.get_UIState_msg() return uiState.SerializeToString()
def set_clipboard_cols(): body = request.get_data() log('clipboard cols body', body) cvc = ClipboardViewColumns.FromString(body) log('/set_clipboard_cols', cvc.to_dict()) global session session.selectedClipboardCols = cvc pyperclip.copy(session.get_clipboard_str()) return session.get_UIState_msg().SerializeToString()
def do_get_selected_scan(): fname = request.args.get('fname') idx = int(request.args.get('selectedIdx')) log('Processing get for file:', fname) # global imageFolder, colours # colours = [] global session scanImg = session.get_image_by_name(fname) imgSess = ImageSession(scanImg) session.set_currImgSession(imgSess) session.currSelectedImgIdx = idx return session.get_UIState_msg().SerializeToString()
def do_new_circle(): # body = json.loads(request.get_data()) body = request.get_data() # print(request) print('body:', body) pc = PickedCircle.FromString(body) log('/new_circle', pc.to_dict()) # global image # self.image = image # global imageFolder # image = imageFolder.get_image_with_fname(pc.img_file_name) global session # image = session.imgFolder.get_image_with_fname(pc.img_file_name) image: BaseImage = session.get_image_by_name(pc.img_file_name) imgSess = session.currImgSession # self.image.add_circle(int(body['center']['y']), int(body['center']['x']), int(body['radius'])) # self.image.show() cr = int(pc.center_row) cc = int(pc.center_col) r = int(pc.radius) # im = image.get_circle_context(int(pc.center_y), int( # pc.center_x), int(pc.radius)) # contextPNG = im.to_png_bytes() # img64 = base64.b64encode(contextPNG).decode('ascii') # session.currImgSession.add_circle(cr, cc, r) # # colour = image.get_circle_colour(cr, cc, r) # comparePNG = image.get_colour_display(cr, cc, r).to_png_bytes() # compare64 = base64.b64encode(comparePNG).decode('ascii') imgSess.add_circle(cr, cc, r) # imgSess.blotchCircles[-1].register_imgs_on_session(session) # global colours # colours.append([int(x) for x in colour]) # clipboard = '\n'.join('\t'.join(str(component) for component in _colour) # for _colour in colours) # pyperclip.copy( # clipboard # ) # pyperclip.copy(imgSess.get_clipboard_str()) pyperclip.copy(session.get_clipboard_str()) # return { # "circContext": img64, # "meanColour": "", # "colourCompare": compare64, # "clipboardContent": imgSess.get_clipboard_content_msg().SerializeToString(), # } return session.get_UIState_msg().SerializeToString()