Esempio n. 1
0
def gen_fa_mask(icon_name='fas fa-grin',
                size=512,
                icon_dir='.temp',
                pro_icon_path=None,
                pro_css_path=None):
    """
    Generates a Font Awesome icon mask from the given FA prefix + name.
    """

    # FA prefixes which map to a font file.
    font_files = {
        'fas': 'fa-solid-900.ttf',
        'far': 'fa-regular-400.ttf',
        'fab': 'fa-brands-400.ttf'
    }

    icon_prefix = icon_name.split(' ')[0]
    icon_name_raw = icon_name.split(' ')[1]

    css_path = pro_css_path or os.path.join(STATIC_PATH, 'fontawesome.min.css')
    ttf_path = pro_icon_path or os.path.join(STATIC_PATH,
                                             font_files[icon_prefix])

    icon = IconFont(css_file=css_path, ttf_file=ttf_path)

    # If a length and width are provided, make icon the smaller of the two
    if isinstance(size, tuple):
        size = min(size)

    icon.export_icon(icon=icon_name_raw[len(icon.common_prefix):],
                     size=size,
                     filename="icon.png",
                     export_dir=icon_dir)
Esempio n. 2
0
def gen_fa_mask(icon_name='fas fa-grin', size=512, icon_dir='.temp'):
    """
    Generates a Font Awesome icon mask from the given FA prefix + name.
    """

    # FA prefixes which map to a font file.
    font_files = {
        'fas': 'fa-solid-900.ttf',
        'far': 'fa-regular-400.ttf',
        'fab': 'fa-brands-400.ttf'
    }

    icon_prefix = icon_name.split(' ')[0]
    icon_name_raw = icon_name.split(' ')[1]

    icon = IconFont(css_file=os.path.join(STATIC_PATH, 'fontawesome.min.css'),
                    ttf_file=os.path.join(STATIC_PATH,
                                          font_files[icon_prefix]))

    icon.export_icon(icon=icon_name_raw[len(icon.common_prefix):],
                     size=size,
                     filename="icon.png",
                     export_dir=icon_dir)
Esempio n. 3
0
 def __init__(self):
     """Initialize the class."""
     self.css_file = pkg_resources.resource_filename(
         __package__, 'data/fontawesome.css')
     self.ttf_files = [
         pkg_resources.resource_filename(__package__, 'data/{}'.format(x))
         for x in ('fa-regular-400.ttf', 'fa-solid-900.ttf')]
     self.icon_sets = [
         IconFont(self.css_file, ttf) for ttf in self.ttf_files]
     self.icons = dict()
     for i, icon_set in enumerate(self.icon_sets):
         self.icons.update(
             {k: (i, icon_set) for k in icon_set.css_icons.keys()})
     self.tmpdir = tempfile.TemporaryDirectory()
Esempio n. 4
0
def gen_fa_mask(
    icon_name: str = "fas fa-grin",
    size: int = 512,
    icon_dir: str = ".temp",
    pro_icon_path: str = None,
    pro_css_path: str = None,
    filename: str='icon.png'
):
    """
    Generates a Font Awesome icon mask from the given FA prefix + name.
    """

    # FA prefixes which map to a font file.
    font_files = {
        "fas": "fa-solid-900.ttf",
        "far": "fa-regular-400.ttf",
        "fab": "fa-brands-400.ttf",
    }

    icon_prefix = icon_name.split(" ")[0]
    icon_name_raw = icon_name.split(" ")[1]

    css_path = pro_css_path or os.path.join(STATIC_PATH, "fontawesome.min.css")
    ttf_path = pro_icon_path or os.path.join(STATIC_PATH, font_files[icon_prefix])

    icon = IconFont(css_file=css_path, ttf_file=ttf_path)

    # If a length and width are provided, make icon the smaller of the two
    if isinstance(size, tuple):
        size = min(size)

    icon.export_icon(
        icon=icon_name_raw[len(icon.common_prefix) :],
        size=size,
        filename=filename,
        export_dir=icon_dir,
    )