def test_canvas_render(blend_func): """Test rendering a canvas to an array. Different blending functions are used to test what various Visuals may produce without actually using different types of Visuals. """ with Canvas(size=(125, 125), show=True, title='run') as c: im1 = np.zeros((100, 100, 4)).astype(np.float32) im1[:, :, 0] = 1 im1[:, :, 3] = 1 im2 = np.zeros((50, 50, 4)).astype(np.float32) im2[:, :, 1] = 1 im2[:, :, 3] = 0.4 # Create the image image1 = ImageVisual(im1) image1.transform = STTransform(translate=(20, 20, 0)) image1.transforms.configure(canvas=c, viewport=(0, 0, 125, 125)) image2 = ImageVisual(im2) image2.transform = STTransform(translate=(0, 0, -1)) image2.transforms.configure(canvas=c, viewport=(0, 0, 125, 125)) if blend_func: image1.set_gl_state(preset='translucent', blend_func=blend_func) image2.set_gl_state(preset='translucent', blend_func=blend_func) @c.events.draw.connect def on_draw(ev): gloo.clear('black') gloo.set_viewport(0, 0, *c.physical_size) image1.draw() image2.draw() rgba_result = c.render() rgb_result = c.render(alpha=False) # the results should be the same except for alpha np.testing.assert_allclose(rgba_result[..., :3], rgb_result) # the image should have something drawn in it assert not np.allclose(rgba_result[..., :3], 0) # the alpha should not be completely transparent assert not np.allclose(rgba_result[..., 3], 0) if blend_func is None or 'one' in blend_func: # no transparency np.testing.assert_allclose(rgba_result[..., 3], 255) else: # the alpha should have some transparency assert (rgba_result[..., 3] != 255).any()
def __init__( self, renderer, data, cmap="gray", clim=(0, 1), interp="nearest", alpha=100, order=1, ): super().__init__( renderer, data, cmap=cmap, clim=clim, interp=interp, alpha=alpha, order=order, ) self.visual = ImageVisual(self._data, clim=self._clim, cmap=cmap, interpolation=self._interp) self.alphaFilter = Alpha(self._alpha / 100.0) self.visual.attach(self.alphaFilter) self._rescale() print("Vispy")
def draw_init(self, backgroundImg=False, fontsize=14, fontColor="white"): gloo.clear(color="#231e1f") # gloo.set_state("translucent", depth_test=False,blend=True) try: self.text.clear() except: pass self.selected_point = -1 self.fontsize = fontsize panzoom = PanZoomTransform(self.canvas) if backgroundImg: self.im = read_png("timg.png") self.image = ImageVisual(self.im, method="subdivide") self.image.update = self.canvas.update self.image.transform = STTransform( scale=(2 / self.image.size[0], 2 / self.image.size[1]), translate=(-1, -1), ) else: self.image = None self.markers = PointCollection( "agg", vertex=self.pvertex, fragment=self.pfragment, color="shared", size="local", transform=panzoom, ) self.lines = PathCollection( mode="agg", vertex=self.lvertex, fragment=self.lfragment, color="shared", linewidth="global", transform=panzoom, ) self.markers.update.connect(self.canvas.update) self.lines.update.connect(self.canvas.update) self.text = TextVisual(u"", color="white") self.text.font_size = self.fontsize self.text.visible = False self.textpos = None self.canvas.events.draw.connect(self.on_draw) self.canvas.events.resize.connect(self.on_resize) self.canvas.events.mouse_press.connect(self.on_mouse_press) self.canvas.show()
def __init__(self): app.Canvas.__init__(self, size=(800, 600), keys="interactive") img_data = get_mandlebrot_escape_values(600, 400) self.image = ImageVisual(img_data, cmap=colormap) image_transform = STTransform(scale=(1.3, 1.3), translate=(100, 0)) self.image_transform_sys = TransformSystem(self) self.image_transform_sys.visual_to_document = image_transform self.vertical_bar = get_vertical_bar() # construct a default transform that does identity scaling # and does not translate the coordinates colorbar_transform = NullTransform() self.colorbar_transform_sys = TransformSystem(self) self.colorbar_transform_sys.visual_to_document = colorbar_transform self.show()
def __init__(self): # dimensions of generated image img_dim = np.array([700, 500]) # position of colorbar colorbar_pos = np.array([100, 300]) # size of the colorbar, measured as (major, minor) colorbar_size = np.array([400, 20]) # position of the generated image image_pos = np.array([200, 80]) app.Canvas.__init__(self, size=(800, 600), keys="interactive") img_data = get_mandlebrot_escape_values(img_dim[0], img_dim[1]) self.image = ImageVisual(img_data, cmap=colormap) self.image.transform = \ STTransform(scale=1.1, translate=image_pos) self.vertical_bar = get_vertical_bar(colorbar_pos, colorbar_size) self.show()
def __init__(self, renderer, data, cmap='viridis', clim=(0, 1), interp='nearest', alpha=100, order=1): super().__init__(renderer, data, cmap=cmap, clim=clim, interp=interp, alpha=alpha, order=order) self.visual = ImageVisual(self._data, clim=self._clim, cmap=self._cmap, interpolation=self._interp) self.alphaFilter = Alpha(self._alpha / 100.) self.visual.attach(self.alphaFilter) self._rescale()