1. 产品
  2.   Font
  3.   C++
  4.   BAWR
 
  

免费 C++ 字体处理 API,用于创建 TrueType 字体

开源 C++ 库允许软件开发者创建 TrueType 字体、PNG 纹理、图集映射和 ImGui 字体加载器

BAWR 库是一款卓越的工具,已彻底革新了 C++ 中的 SVG(可缩放矢量图形)和字体图标处理。它为软件开发者提供了一整套功能丰富的特性和功能,能够在 C++ 应用中高效地操作和利用这些图形资源。凭借其用户友好的界面和强大的能力,BAWR 库已成为程序员在项目中加入丰富且视觉上吸引人的图标的首选。

BAWR 库是一个专为处理 SVG 和字体图标而设计的开源 C++ 库。它简化了使用这些图形资源的过程,使软件开发者能够无缝地将其集成到应用程序中。库包含多项重要功能,例如从 SVG 集合创建 TrueType 字体、从 SVG 集合生成 PNG 纹理、嵌入二进制文件、生成 ImGui 字体加载器、创建 C++ Atlas 图、对 SVG 文件应用变换、将 C++ 字体常量生成为宏等。

BAWR 库显著降低了在 C++ 应用程序中处理和集成图标所需的时间和精力。通过利用库提供的丰富函数和类,开发者可以轻松加载、解析、操作和渲染 SVG 与字体图标,从而提升软件的视觉体验。其全面的功能、简易的集成以及对 SVG 与字体图标的双重支持,使其成为开发者的强大工具。尝试使用 BAWR 库,开启在 C++ 项目中创建惊艳图标界面的无限可能。

Previous Next

开始使用 BAWR

推荐使用 BAWR 的方式是通过 GitHub。请使用以下命令顺利安装该库。

通过 GitHub 安装 BAWR

  git clone https:://github.com/mnesarco/bawr.git
cd bawr
 

您也可以手动安装;直接从 GitHub 仓库下载最新的发布文件。

使用 C++ API 生成 TrueType 字体

开源的 BAWR 库使软件开发者能够在 C++ 应用程序中仅用几行代码就轻松创建和管理 TrueType 字体。它还提供对字体图标的强大支持,允许开发者加载和使用流行的图标字体,如 Font Awesome、Material Design Icons 等。使用 BAWR 库,开发者可以轻松将字体图标集成到其应用程序中,从而更简便地动态自定义和缩放图标。以下示例展示了开发者如何仅用几行代码生成 TrueType 字体。

通过 C++ 生成 Truetype 字体

class MyFont( Font ):

    # Generated font copyright notice [Mandatory]
    copyright = "Copyright 2020 Frank D. Martinez M."

    # Font name [Mandatory]
    name = "my-icons"

    # Font family [Mandatory]
    family = "my-icons"

    # First font glyph code [Optional] (default = 0xe000)
    # start_code = 0xe000

    # List of tuple of the icon sets included in this font [Mandatory]
    collections = (BootstrapIcons, MyIcons)

    # Global font transformation [Optiona] (See: Font transformations)
    transformation = []

    # Output format [Optional] (default = ['ttf'])
    output_formats = ['ttf']

    # Verbose output. Shows glyph generation details [Optional] (default = False)
    verbose = False

通过 C++ 进行 SVG 解析和渲染

BAWR 库擅长解析 SVG 文件,提取关键元素,并精确渲染。它支持广泛的 SVG 功能,包括路径、形状、渐变、滤镜和变换。这使得软件开发者能够在其应用程序中准确显示 SVG 图标,提供在不同屏幕分辨率下无缝缩放的高质量视觉效果。该库还提供对字体图标的强大支持,允许开发者加载和使用流行的图标字体,如 Font Awesome、Material Design Icons 等。

在 C++ 应用中生成优化的 PNG 图集

class MyAtlas( Atlas ):

# [Optional] width of the atlas image (default = 512)
width = 512

# [Mandatory] sizes of the icons to be generated and included in the atlas
sizes = (16, 32, 64)

# [Mandatory] References to collections (icon sets) to be included
    collections = (BootstrapIcons, MyIcons)

# [Optional] name prefix for the generated files (default = font.name)
# name = ...

# [Optional] Embed the Atlas png into a C++ source.
class MyCppAtlasEmbed( CppEmbedded ):
    source = "${BAWR_OUTPUT_DIR}/atlas.png"

通过 PHP 进行字体图标组合与操作

开源的 BAWR 库允许软件开发者在 C++ 应用程序中组合多个图标,以创建更复杂的视觉元素。此功能在设计独特的 UI 组件或根据用户偏好生成动态图标时尤为有用。除了 SVG 图标,BAWR 库还支持字体图标。它提供了一系列实用工具,用于提取字体字形、确定其度量并在各种表面上渲染它们。此外,它还提供了完整的工具集来操作图标。无论用户需要调整大小、旋转或对图标进行颜色变换,库都提供直观的函数来高效完成这些任务。

 中国人