Ejemplo n.º 1
0
    def primitives(self):
        if hasattr(self, '_primitives'):
            return self._primitives

        # Calculate rectangle and text size
        font = ImageFont.truetype(self.font)
        text_size = font.getsize(self.text)

        if self.wrap is not None and text_size[0] > self.wrap:
            # TODO: insert the logic here
            pass
        # No wrap, simple logic
        text_size = font.getsize(
            self.text)  # equivalent to text's top left at origin  # noqa
        half_text_size = scale_point(text_size, 0.5)
        text_position = add_points(self.center, negate(half_text_size))

        pad = self.padding, self.padding
        rect_size = add_points(text_size, pad)

        rect_top_left = add_points(text_position, negate(pad))
        # add padding to bottom point as well
        rect_bottom_right = add_points(rect_top_left,
                                       (add_points(rect_size, pad)))

        self._primitives = [
            Text(self.text, text_position, self.font),
            Rectangle(rect_top_left, rect_bottom_right)
        ]
        return self._primitives
Ejemplo n.º 2
0
    def primitives(self):
        if hasattr(self, '_primitives'):
            return self._primitives
        # No wrap, simple Logic

        # Calculate text size
        font = ImageFont.truetype(self.font)
        text_size = font.getsize(
            self.text)  # equivalent to text's top left at origin  # noqa
        half_text_size = scale_point(text_size, 0.5)
        text_position = add_points(self.center, negate(half_text_size))

        padding = self.padding
        left = text_position[0] - padding - abs(self.slide)
        right = text_position[0] + text_size[0] + padding + abs(self.slide)

        rect_top_left = (left, text_position[1] - padding)
        rect_bottom_right = (right, text_position[1] + text_size[1] + padding)

        self._primitives = [
            Text(self.text, text_position, self.font),
            ParalleloGram(rect_top_left, rect_bottom_right, self.slide)
        ]
        return self._primitives
Ejemplo n.º 3
0
 def center(self):
     return scale_point(add_points(self.top_left, self.bottom_right), 0.5)
Ejemplo n.º 4
0
 def center(self):
     return scale_point(add_points(self.start, self.end), 0.5)