def recreate_text_effect(self): try: self.__logger.info(__name__ + " recreating text effect") width, height = self.__display.get_size() font = Font() font.auto_adjust_font_size_to_height(height) parameters = TextEffectParameters() parameters.text_color = Color.from_normalized_float( self.ids.text_color_button.background_color) parameters.background_color = Color.from_normalized_float( self.ids.background_color_button.background_color) parameters.text = self.ids.text_input.text parameters.display_size = self.__display.get_size() parameters.font = font self.__text_effect.apply(parameters) except Exception as ex: self.__logger.info( __name__ + " recreate text effect failed with ex={0}".format(ex.message)) popup = ErrorWindow() popup.gather_traces(ex.message) Clock.unschedule(self.send_current_frame) popup.open()
def apply_effect(self, time_delta): try: if self.__frame_count % 10 == 0: self.__logger.debug( __name__ + " drawing frame {0}".format(self.__frame_count)) self.__frame_count += 1 display_size = Context.get_display().get_size() effect = RainbowEffectAnimation(display_size) left_color = self.ids.left_color_button.background_color left_color_end = self.ids.left_color_button_end.background_color right_color = self.ids.right_color_button.background_color right_color_end = self.ids.right_color_button_end.background_color left_colors = [ Color.from_normalized_float(left_color).rgb, Color.from_normalized_float(left_color_end).rgb ] right_colors = [ Color.from_normalized_float(right_color).rgb, Color.from_normalized_float(right_color_end).rgb ] effect.set_left_colors(left_colors) effect.set_right_colors(right_colors) effect.set_duration(2000) effect.draw_vertical_rainbow_frame_at(self._time_elapsed) image = effect.get_image() self._effect_provider.set_image(image) self._effect_provider.apply_image() if self._direction is "Up": self._time_elapsed += int(time_delta * 1000) else: self._time_elapsed -= int(time_delta * 1000) if self._time_elapsed > 2000: self._direction = "Down" self._time_elapsed = 1999 if self._time_elapsed < 0: self._direction = "Up" self._time_elapsed = 0 except Exception as ex: self.__logger.error(__name__ + " drawing frame failed") popup = ErrorWindow() popup.gather_traces(ex.message) Clock.unschedule(self.apply_effect) popup.open()
def apply(self, parameters): self.__effect.set_point_size(int(parameters.point_size)) self.__effect.set_line_color( Color.from_normalized_float(parameters.color)) self.__effect.draw_lines(parameters.points)
def test_convert_from_normalized_float(self): normalized_color = (1, 0, 0, 1) color = Color.from_normalized_float(normalized_color) self.assertEqual(color.get_as_tuple(), (255, 0, 0))