def save_image(image_type='image', view_selected=None, index=-1, zoom_val=0, add_index_to_name=True, add_colorbar=None, cb_ticks_num=None, cb_ticks_font_size=None): if add_colorbar is None: add_colorbar = False #todo: Fix!! bpy.context.scene.save_views_with_cb if cb_ticks_num is None: cb_ticks_num = bpy.context.scene.cb_ticks_num if cb_ticks_font_size is None: cb_ticks_font_size = bpy.context.scene.cb_ticks_font_size if view_selected is None: view_selected = bpy.context.scene.save_selected_view if index == -1: fol = bpy.path.abspath(bpy.context.scene.output_path) files = [ mu.namebase(f) for f in glob.glob( op.join(fol, '{}*.{}'.format(image_type, get_figure_format()))) ] files_with_numbers = sum([len(re.findall('\d+', f)) for f in files]) if files_with_numbers > 0: index = max([int(re.findall('\d+', f)[0]) for f in files]) + 1 if len(files) > 0 else 0 else: index = 0 switch_to_object_mode() index = bpy.context.scene.frame_current if index == -1 else index mu.show_only_render(True) fol = bpy.path.abspath(bpy.context.scene.output_path) if add_index_to_name: image_name = op.join( fol, '{}_{}.{}'.format(image_type, index, get_figure_format())) else: image_name = op.join(fol, '{}.{}'.format(image_type, get_figure_format())) print('Image saved in {}'.format(image_name)) bpy.context.scene.render.filepath = image_name view3d_context = mu.get_view3d_context() if view_selected: _addon().view_all() # todo: Understand when zoom(-1) is needed # if not _addon().subcorticals_are_hiding(): # _addon().zoom(-1) # mu.select_all_brain(True) # bpy.ops.view3d.camera_to_view_selected(view3d_context) # mu.view_selected() if zoom_val != 0: _addon().zoom(zoom_val) # _addon().zoom(1) # mu.center_view() bpy.ops.render.opengl(view3d_context, write_still=True) if add_colorbar: add_colorbar_to_image(image_name, cb_ticks_num, cb_ticks_font_size) # if view_selected: # _addon().zoom(1) return image_name
def save_image(image_type='image', view_selected=None, index=-1): if view_selected is None: view_selected = bpy.context.scene.save_selected_view if index == -1: fol = bpy.path.abspath(bpy.context.scene.output_path) files = [ mu.namebase(f) for f in glob.glob(op.join(fol, '{}*.png'.format(image_type))) ] files_with_numbers = sum([len(re.findall('\d+', f)) for f in files]) if files_with_numbers > 0: index = max([int(re.findall('\d+', f)[0]) for f in files]) + 1 if len(files) > 0 else 0 else: index = 0 if not _addon().is_solid(): _addon().change_to_solid_brain() exit_from_camera_view() index = bpy.context.scene.frame_current if index == -1 else index mu.show_only_render(True) fol = bpy.path.abspath(bpy.context.scene.output_path) image_name = op.join(fol, '{}_{}.png'.format(image_type, index)) print('Image saved in {}'.format(image_name)) bpy.context.scene.render.filepath = image_name view3d_context = mu.get_view3d_context() if view_selected: _addon().view_all() # mu.select_all_brain(True) # bpy.ops.view3d.camera_to_view_selected(view3d_context) # mu.view_selected() bpy.ops.render.opengl(view3d_context, write_still=True) # if view_selected: # _addon().zoom(1) return image_name
def view_all(): c = mu.get_view3d_context() bpy.ops.view3d.view_all(c) zoom(1)
def zoom(delta): c = mu.get_view3d_context() bpy.ops.view3d.zoom(c, delta=delta)
def minimize_brain(): context = mu.get_view3d_context() bpy.ops.screen.back_to_previous(context)
def maximize_brain(): context = mu.get_view3d_context() bpy.ops.screen.screen_full_area(context)