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

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

3天内不再提示

鸿蒙开发教学-图片的引用

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-02-01 17:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

加载图片资源

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

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

  • 本地资源

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

Image('images/view.jpg')
.width(200)
.width(200)
.width(200)
  • 网络资源

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

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

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

调用方式:

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

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

image.png

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

调用方式:

Image($rawfile('snap'))
Image($rawfile('snap'))
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< string >();
    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)
.width(200)
.width(200)
  • base64 路径格式为data:image/[png|jpeg|bmp|webp];base64,[base64 data],其中[base64 data]为Base64字符串数据。 Base64格式字符串可用于存储图片的像素数据,在网页上使用较为广泛。

审核编辑 黄宇

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

    关注

    33

    文章

    9588

    浏览量

    157591
  • 数据源
    +关注

    关注

    1

    文章

    66

    浏览量

    10100
  • 鸿蒙
    +关注

    关注

    60

    文章

    3014

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙智能体开发知识库---创建知识库

    。 从列表点击知识库名称进入知识列表页面 选择对应的知识类型填写相关信息: 导入方式-文档:使用文档形式导入知识数据,可以配置引用源信息; 2.导入方式-图片:使用图片形式导入知识数据,可以配置
    发表于 03-06 10:18

    报名开启!2026年开源鸿蒙“北向应用”与“南向设备”开发研修班等你加入!

    为深化校企合作,推动开源鸿蒙(OpenHarmony)技术发展,促进高校教师掌握开源鸿蒙北向应用开发和南向设备开发的前沿技术与教学实践方法,
    的头像 发表于 01-08 17:24 1373次阅读
    报名开启!2026年开源<b class='flag-5'>鸿蒙</b>“北向应用”与“南向设备”<b class='flag-5'>开发</b>研修班等你加入!

    钉钉正式开源HarmonyOS图片编辑组件

    近日,由钉钉团队自主研发的“HarmonyOS图片编辑组件”正式上线OpenHarmony三方库中心仓并开源。作为一款填补鸿蒙社区图像处理领域空白的重量级组件,该方案基于HarmonyOS
    的头像 发表于 01-05 09:58 641次阅读

    开源鸿蒙领学课堂——山东·泰安站圆满举办

    生态建设。山东科技大学以"开源技术赋能教学实践与人才培养"为主题,共同围绕开源鸿蒙系统生态、应用开发实践、教学资源共建及产学合作协同育人等议题展开深度交流,旨在搭建技术学习与经验共享平
    的头像 发表于 12-05 19:13 3338次阅读
    开源<b class='flag-5'>鸿蒙</b>领学课堂——山东·泰安站圆满举办

    想体验鸿蒙生态,该怎么获取鸿蒙开发板?有哪些途径?

    如何快速上手体验鸿蒙生态? 想体验鸿蒙生态,该怎么获取鸿蒙开发板?有哪些途径?
    发表于 11-29 08:40

    如何申请鸿蒙开发板?想体验鸿蒙生态。

    如何申请鸿蒙开发板?想体验鸿蒙生态。
    发表于 11-29 08:34

    基于开源鸿蒙图片编辑开发样例(2)

    本期内容介绍基于开源鸿蒙在RK3568上开发图片编辑样例的全流程,分为上篇和下篇,本篇为下篇,主要介绍标记、保存图片功能。
    的头像 发表于 10-31 09:19 3333次阅读
    基于开源<b class='flag-5'>鸿蒙</b>的<b class='flag-5'>图片</b>编辑<b class='flag-5'>开发</b>样例(2)

    基于开源鸿蒙图片编辑开发样例(1)

    本期内容介绍基于开源鸿蒙在RK3568上开发图片编辑样例的全流程,分为上篇和下篇,本篇为上篇,主要介绍添加相册图片、编译图片功能。
    的头像 发表于 10-31 09:16 3197次阅读
    基于开源<b class='flag-5'>鸿蒙</b>的<b class='flag-5'>图片</b>编辑<b class='flag-5'>开发</b>样例(1)

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

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

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

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

    鸿蒙开发API9 到 API12,有哪些不同

    ​ ##HarmonyOS 应用开发## 虽然API9已经属于过时了,但是现在很多学校里教的还是基于API9的鸿蒙开发,当学生需要在毕业设计中使用API12进行开发时,还是需要先掌握一
    发表于 06-29 22:47

    鸿蒙5开发宝藏案例分享---优化应用包体积大小问题

    ?** 鸿蒙包体积优化实战:藏在官方文档里的宝藏技巧!** 大家好呀~我是你们的鸿蒙开发小伙伴!今天在翻官方文档时,发现了一个超实用的「包体积优化」案例宝藏库!这些技巧明明能大幅提升应用体验,却很
    发表于 06-13 10:09

    鸿蒙5开发宝藏案例分享---跨线程性能优化指南

    ;>Worker</span>做多线程开发时,总遇到对象跨线程卡顿的问题,原来鸿蒙早就提供了解决方案。下面结合代码和实战案例,带你彻底玩转性能优化! 一、痛点:跨线程
    发表于 06-12 17:13

    鸿蒙5开发宝藏案例分享---应用接续提升内容发布体验

    ?【开发经验分享】鸿蒙应用接续功能实战:这些隐藏案例助你实现跨设备丝滑流转! 各位开发者小伙伴们好呀~今天在肝项目时意外解锁了HarmonyOS的一个\"宝藏技能\"——应用接续
    发表于 06-03 18:25

    鸿蒙5开发宝藏案例分享---一多开发实例(图片美化)

    ?【鸿蒙开发宝藏案例分享】一次搞定多端适配的图片美化应用开发思路!? Hey小伙伴们~ 今天在翻鸿蒙文档时挖到一个超实用的大宝藏!原来官方早
    发表于 06-03 16:09