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()
예제 #2
0
    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()
예제 #3
0
 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)
예제 #4
0
    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))