コード例 #1
0
    def text2svg(self):
        # anti-aliasing
        size = self.size * 10
        lsh = self.lsh * 10

        if self.font == '':
            self.font = get_customization()['style']['font']

        dir_name = get_text_dir()
        hash_name = self.text2hash()
        file_name = os.path.join(dir_name, hash_name) + '.svg'
        if os.path.exists(file_name):
            return file_name
        settings = self.text2settings()
        width = 600
        height = 400
        disable_liga = self.disable_ligatures
        return manimpango.text2svg(
            settings,
            size,
            lsh,
            disable_liga,
            file_name,
            START_X,
            START_Y,
            width,
            height,
            self.text,
        )
コード例 #2
0
ファイル: text_mobject.py プロジェクト: deerajnagothu/manim
    def text2svg(self):
        """Convert the text to SVG using Pango."""
        size = self.font_size
        dir_name = get_text_dir()
        disable_liga = self.disable_ligatures
        if not os.path.exists(dir_name):
            os.makedirs(dir_name)
        hash_name = self.text2hash()
        file_name = os.path.join(dir_name, hash_name) + ".svg"
        if os.path.exists(file_name):
            return file_name

        extra_kwargs = {}
        extra_kwargs['justify'] = self.justify
        extra_kwargs['pango_width'] = DEFAULT_PIXEL_WIDTH - 100
        if self.lsh:
            extra_kwargs['line_spacing'] = self.lsh
        return MarkupUtils.text2svg(
            f'<span foreground="{self.color}">{self.text}</span>',
            self.font,
            self.slant,
            self.weight,
            size,
            0,  # empty parameter
            disable_liga,
            file_name,
            START_X,
            START_Y,
            DEFAULT_PIXEL_WIDTH,  # width
            DEFAULT_PIXEL_HEIGHT,  # height
            **extra_kwargs)
コード例 #3
0
 def get_file_path_by_content(self, content: str) -> str:
     hash_content = str((content, self.justify, self.indent, self.alignment,
                         self.line_width))
     svg_file = os.path.join(get_text_dir(),
                             tex_hash(hash_content) + ".svg")
     if not os.path.exists(svg_file):
         self.markup_to_svg(content, svg_file)
     return svg_file
コード例 #4
0
    def text2svg(self):
        # anti-aliasing
        size = self.size * 10
        lsh = self.lsh * 10

        if self.font == '':
            print(NOT_SETTING_FONT_MSG)

        dir_name = get_text_dir()  #consts.TEXT_DIR
        hash_name = self.text2hash()
        file_name = os.path.join(dir_name, hash_name) + '.svg'
        if os.path.exists(file_name):
            return file_name

        surface = cairo.SVGSurface(file_name, 600, 400)
        context = cairo.Context(surface)
        context.set_font_size(size)
        context.move_to(START_X, START_Y)

        settings = self.text2settings()
        offset_x = 0
        last_line_num = 0
        for setting in settings:
            font = setting.font
            slant = self.str2slant(setting.slant)
            weight = self.str2weight(setting.weight)
            text = self.text[setting.start:setting.end].replace('\n', ' ')

            context.select_font_face(font, slant, weight)
            if setting.line_num != last_line_num:
                offset_x = 0
                last_line_num = setting.line_num
            context.move_to(START_X + offset_x,
                            START_Y + lsh * setting.line_num)
            context.show_text(text)
            offset_x += context.text_extents(text)[4]

        return file_name
コード例 #5
0
ファイル: text_mobject.py プロジェクト: TonyCrane/manim
 def get_file_path(self):
     full_markup = self.get_full_markup_str()
     svg_file = os.path.join(get_text_dir(), tex_hash(full_markup) + ".svg")
     if not os.path.exists(svg_file):
         self.markup_to_svg(full_markup, svg_file)
     return svg_file
コード例 #6
0
ファイル: text_mobject.py プロジェクト: yk616/manim
 def get_file_path_by_content(self, content: str) -> str:
     svg_file = os.path.join(get_text_dir(), tex_hash(content) + ".svg")
     if not os.path.exists(svg_file):
         self.markup_to_svg(content, svg_file)
     return svg_file