HarmonyOS 鸿蒙Next 如何从 *.ttf 的字体文件中提取出里面的图片给 Image 组件用

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何从 *.ttf 的字体文件中提取出里面的图片给 Image 组件用

想知道如何从 *.ttf 的字体文件中提取出里面的图片给 Image 组件用 我们的项目中有从字体文件中提取图标图片组件用的需求,目前不知道怎么将图片提取出来

2 回复

这边提供一个demo,可以实现 *.ttf字体的使用,以及通过字体文件的unicode生成内容的demo,看下能否满足需求。

import font from '@ohos.font';

@Entry

@Component

struct Index {

  @State message: string = 'Hello World';

  aboutToAppear() {

    font.registerFont({

      familyName: 'iconfont',

      familySrc: $rawfile('iconfont.ttf')

    })

  }

  build() {

    Row() {

      Column() {

        Text("1")

        Text("\u002f")

          .fontSize(50)

          .fontWeight(FontWeight.Bold)

          .fontFamily("iconfont")

      }

      .width('100%')

    }

    .height('100%')

  }

}

需要注意的是鸿蒙中使用Unicode编码是 “\u+四位十六进制编码“

更多关于HarmonyOS 鸿蒙Next 如何从 *.ttf 的字体文件中提取出里面的图片给 Image 组件用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,直接从*.ttf字体文件中提取图片并用于Image组件并不直接支持。ttf文件主要用于存储字体数据,而非图像资源。若需将字体中的图标或符号用于Image组件,可考虑以下方式:

  1. 字体图标渲染:利用鸿蒙的字体渲染能力,将ttf文件中的图标或符号渲染为纹理(Texture),再通过Canvas或自定义绘制组件的方式间接呈现。这通常涉及在自定义绘制逻辑中,使用Font对象加载ttf文件,并绘制特定字符。

  2. 字体图标转图片:在开发环境外,使用第三方工具(如FontForge、GlyphHanger等)将ttf文件中的图标或符号导出为PNG、JPG等图像格式。随后,将导出的图像资源导入鸿蒙项目,并直接赋值给Image组件的src属性。

  3. SVG格式替代:若图标以矢量形式存在,考虑使用SVG格式而非ttf。SVG文件可直接在鸿蒙的Image组件中加载,且支持缩放不失真。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部