0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙HarmonyOS引用图片的方法

王程 ? 来源:jf_75796907 ? 作者:jf_75796907 ? 2024-02-01 14:35 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

Image通过调用接口来创建,接口调用形式如下:

Image(src: string | Resource | media.PixelMap)

该接口通过图片数据源获取图片,支持本地图片和网络图片的渲染展示。其中,src是图片的数据源。

加载图片资源

Image支持加载存档图(重点)、多媒体像素图(了解即可)两种类型。

存档图类型数据源
存档图类型的数据源可以分为本地资源、网络资源、Resource资源、媒体库资源和base64。

本地资源

创建文件夹,将本地图片放入ets文件夹下的任意位置。
Image组件引入本地图片路径,即可显示图片(根目录为ets文件夹)。

Image('images/view.jpg')
.width(200)

网络资源

引入网络图片需申请权限ohos.permission.INTERNET,具体申请方式请参考权限申请声明。此时,Image组件的src参数为网络图片的链接。

Image('https://www.example.com/example.JPG') // 实际使用时请替换为真实地址

Resource资源

使用资源格式可以跨包/跨模块引入图片,resources文件夹下的图片都可以通过$r资源接口读取到并转换到Resource格式。

wKgaomW7O4KAAa-0AAPlTbvC--8299.png

调用方式:

Image($r('app.media.icon'))

还可以将图片放在rawfile文件夹下。

wKgaomW7O4iASOaJAATP0f9qAjI641.png

还可以将图片放在rawfile文件夹下。

调用方式:

Image($rawfile('snap'))

媒体库file://data/storage
支持file://路径前缀的字符串,用于访问通过媒体库提供的图片路径。
a. 调用接口获取图库的照片url。

import picker from '@ohos.file.picker';
@Entry
@Component
struct Index {
  @State imgDatas: string[] = [];
  // 获取照片url集
  getAllImg() {
    
    let result = new Array();
    try {
      let PhotoSelectOptions = new picker.PhotoSelectOptions();
      PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
      PhotoSelectOptions.maxSelectNumber = 5;
      let photoPicker = new picker.PhotoViewPicker();
      photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult) => {
        this.imgDatas = PhotoSelectResult.photoUris;
        console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
      }).catch((err) => {
        console.error(`PhotoViewPicker.select failed with. Code: ${err.code}, message: ${err.message}`);
      });
    } catch (err) {
      console.error(`PhotoViewPicker failed with. Code: ${err.code}, message: ${err.message}`);    }
  }

  // aboutToAppear中调用上述函数,获取图库的所有图片url,存在imgDatas中
  async aboutToAppear() {
    this.getAllImg();
  }
  // 使用imgDatas的url加载图片。
  build() {
    Column() {
      Grid() {
        ForEach(this.imgDatas, item => {
          GridItem() {
            Image(item)
              .width(200)
          }
        }, item => JSON.stringify(item))
      }
    }.width('100%').height('100%')
  }
}

b. 从媒体库获取的url格式通常如下。

Image('file://media/Photos/5')
.width(200)

base64
路径格式为data:image/[png|jpeg|bmp|webp];base64,[base64 data],其中[base64 data]为Base64字符串数据。
Base64格式字符串可用于存储图片的像素数据,在网页上使用较为广泛

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    9069

    浏览量

    154269
  • 数据源
    +关注

    关注

    1

    文章

    65

    浏览量

    9945
  • 鸿蒙
    +关注

    关注

    60

    文章

    2656

    浏览量

    44342
  • HarmonyOS
    +关注

    关注

    80

    文章

    2130

    浏览量

    33663
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HarmonyOS 5】鸿蒙应用隐私保护详解

    HarmonyOS 5】鸿蒙应用隐私保护详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一
    的头像 发表于 07-11 18:30 ?448次阅读

    HarmonyOS 5】鸿蒙中常见的标题栏布局方案

    HarmonyOS 5】鸿蒙中常见的标题栏布局方案 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财
    的头像 发表于 07-11 18:30 ?363次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】<b class='flag-5'>鸿蒙</b>中常见的标题栏布局方案

    HarmonyOS 5】鸿蒙中进度条的使用详解

    HarmonyOS 5】鸿蒙中进度条的使用详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财#
    的头像 发表于 07-11 18:26 ?322次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】<b class='flag-5'>鸿蒙</b>中进度条的使用详解

    HarmonyOS 5】鸿蒙页面和组件生命周期函数

    HarmonyOS 5】鸿蒙页面和组件生命周期函数 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财
    的头像 发表于 07-11 18:24 ?369次阅读

    HarmonyOS 5】鸿蒙星闪NearLink详解

    HarmonyOS 5】鸿蒙星闪NearLink详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理
    的头像 发表于 07-11 18:24 ?464次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】<b class='flag-5'>鸿蒙</b>星闪NearLink详解

    HarmonyOS 5】鸿蒙mPaaS详解

    HarmonyOS 5】鸿蒙mPaaS详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、
    的头像 发表于 07-11 18:23 ?358次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】<b class='flag-5'>鸿蒙</b>mPaaS详解

    HarmonyOS 5】金融应用开发鸿蒙组件实践

    HarmonyOS 5】金融应用开发鸿蒙组件实践 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财#
    的头像 发表于 07-11 18:20 ?369次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】金融应用开发<b class='flag-5'>鸿蒙</b>组件实践

    HarmonyOS 5】鸿蒙中的UIAbility详解(二)

    HarmonyOS 5】鸿蒙中的UIAbility详解(二) ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用
    的头像 发表于 07-11 18:17 ?367次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】<b class='flag-5'>鸿蒙</b>中的UIAbility详解(二)

    HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能

    HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能 ##鸿蒙开发能力 ##HarmonyOS SDK应用服
    的头像 发表于 07-11 18:16 ?396次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】<b class='flag-5'>鸿蒙</b>应用实现发票扫描、文档扫描输出PDF<b class='flag-5'>图片</b>或者表格的功能

    HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解

    HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##
    的头像 发表于 07-07 11:57 ?216次阅读
    【 <b class='flag-5'>HarmonyOS</b> 5 入门系列 】<b class='flag-5'>鸿蒙</b><b class='flag-5'>HarmonyOS</b>示例项目讲解

    HarmonyOS实战:一招搞定保存图片到相册

    保存图片功能几乎是每个应用程序必备的功能之一,当用户遇到喜欢的图片时可以保存到手机相册。那么在鸿蒙中保存图片是否也需要申请用户存储权限以及如何将图片
    的头像 发表于 06-24 17:04 ?363次阅读

    HarmonyOS 5】鸿蒙中的UIAbility详解(三)

    HarmonyOS 5】鸿蒙中的UIAbility详解(三) ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用
    的头像 发表于 06-14 22:32 ?169次阅读

    华为推出首款搭载HarmonyOS 5的鸿蒙电脑

    近日,华为正式发布搭载基于开源鸿蒙5.0.2 Release版本打造的全新HarmonyOS 5的鸿蒙电脑HUAWEI MateBook Pro与HUAWEI MateBook Fold非凡大师
    的头像 发表于 05-26 09:28 ?773次阅读

    HarmonyOS 应用开发赋能套件:鸿蒙原生应用开发的 “神助攻”

    的课程、文档、样例代码等资源,在开发者旅程各阶段提供全方位的支持。开发者可以通过鸿蒙开发者官网一站式获取HarmonyOS赋能套件。 感知阶段:快速了解鸿蒙开发理念与最新动态   感知阶段主要面向
    发表于 02-17 16:37

    名单公布!【书籍评测活动NO.56】极速探索HarmonyOS NEXT:纯血鸿蒙应用开发实践

    开发的核心技术,以及鸿蒙应用在实际开发中的应用方法。 本书共分为四篇,共计16章,分别为鸿蒙开发基础篇、鸿蒙开发进阶篇、HarmonyOS
    发表于 01-20 16:53