太阳穴长痘是什么原因| 肝血不足吃什么补最快| 92年出生属什么生肖| 八面玲珑是指什么生肖| 出生医学证明有什么用| 继发性不孕是什么意思| 獐子是什么动物| 表白是什么意思| 人事代理什么意思| 甘薯是什么| 加字五行属什么| 购置是什么意思| 口腔老是出血是什么原因| 眼睛红血丝多是什么原因| 崔字五行属什么| 导管扩张是什么意思| 仰面朝天是什么生肖| 李世民属什么生肖| gn是什么单位| 为什么会宫缩| 子宫粘连有什么症状| 叶赫那拉氏是什么旗| 7月24日什么星座| 天天做梦是什么原因| 生小孩有什么补贴政策| 韭黄和韭菜有什么区别| 艾滋病有什么症状| 秋季养胃吃什么好| 什么面好吃| 多吃洋葱有什么好处| 用什么洗脸可以祛斑| 什么玉最好有灵性养人| 乙酰氨基酚片是什么药| 什么的哭| 一什么无什么| 三人死亡属于什么事故| 吃什么可以抑制食欲| 姜枣茶什么时间喝最好| 胆囊小是什么原因| 什么猪没有嘴| 风湿类风湿有什么区别| 瑜伽是什么意思| 西兰花炒什么好吃| 明天是什么节气| 皮肤过敏吃什么药| 什么叫县级以上的医院| o血型的人有什么特点| 螃蟹不能和什么食物一起吃| 生肖龙和什么生肖最配| 护照补办需要什么材料| 大乔叫什么| 番薯是什么| 宁五行属性是什么| 沙蒜是什么| 瞽叟是什么意思| 蚊子最怕什么气味| 吃什么东西对心脏好| 肛门是什么意思| smt是什么| 血氧低吃什么提高的快| 儿时是什么意思| 呼吸短促是什么原因| 大暑是什么意思啊| 小苏打是什么成分| 素什么意思| 健脾丸和归脾丸有什么区别| 火腿肠是什么做的| 好机车是什么意思| 拉屎擦屁股纸上有血什么原因| 芒果吃多了有什么坏处| 面包虫是什么| 肾结石有什么症状表现| 荷花代表什么象征意义| 强度是什么意思| 吃什么长指甲最快| rice什么意思| 小番茄有什么营养价值| 胃不消化吃什么药效果最好| 糜烂型脚气用什么药最好| 钾高是什么原因引起的| 空腹洗澡有什么危害| 夏天吃西瓜有什么好处| 放臭屁吃什么药| 吃什么水果退烧| ace是什么| 附子是什么| 情愫是什么意思| jealousy是什么意思| 榴莲什么人不适合吃| 人为什么要穿衣服| 什么眼霜好| 包皮是什么意思| 类风湿是什么意思| 嚷能组什么词| 凝视是什么意思| 吃葵花籽有什么好处和坏处吗| 拜阿司匹林和阿司匹林有什么区别| 口腔溃疡为什么是白色的| 耳膜破了有什么症状| 剪发虫是什么| 没有斗代表什么| 喝紫苏水有什么功效| 自制力是什么意思| 拍手腕中间有什么好处| 月经推迟量少是什么原因| 板带是什么| 三点水翟读什么| 本科属于什么学位| 晚上吃什么水果对身体好| 压马路什么意思| 口腔上火了吃什么降火最快| 什么是闭口| 连续放屁是什么原因呢| 胆固醇高是什么原因引起| 新生儿ad滴剂什么时候吃最好| 开诚布公什么意思| 什么是豆粕| ca是什么意思| 平面模特是做什么的| 头眩晕看什么科| 睾丸痛挂什么科| st是什么意思| 5月7日是什么星座| 关照是什么意思| 自来水是什么水| 胃出血什么症状| 计发月数是什么意思| 今年什么时候进伏天| 骨密度是查什么的| 窦炎是什么意思| 玫瑰花代表什么意思| ym是什么衣服品牌| 多囊卵巢综合征吃什么药| 狮子座是什么星座| 朱砂五行属什么| 健忘是什么意思| 知柏地黄丸有什么作用| 技校是什么| 静脉曲张吃什么药最好| 全自动洗衣机不排水是什么原因| 生理期不能吃什么水果| 男人身体怕冷是什么原因如何调理| 侃大山什么意思| 海胆什么味道| 实字五行属什么| 喉咙发炎是什么症状| 冲突是什么意思| 毛主席什么时候死的| 荨麻疹擦什么药| 梦见亲人哭是什么征兆| 经常咳嗽是什么原因| 湿气重吃什么好| 做肉丸用什么淀粉最佳| 镇关西是什么意思| 来月经同房会有什么后果| 立加羽读什么| 做nt挂什么科| 脚背麻木是什么原因| 什么是慢性病| 宫颈柱状上皮异位是什么意思| 意尔康属于什么档次| 牙龈疼是什么原因| 建档立卡是什么意思| 上次闰六月是什么时候| 中出是什么意识| 珠胎暗结是什么意思| 什么积木| 戾气太重是什么意思| 病人说胡话是什么征兆| 尿隐血是什么意思| 番薯什么时候传入中国| 青蒜是什么| 快递客服主要做什么| 腿软无力是什么原因| 梦见很多人是什么意思| 樱花什么时候开| 7.30是什么星座| 妈咪是什么意思| 躯体症状是什么| 什么是好人| 什么克木| 梦到分手了是什么征兆| 肾阴虚火旺有什么症状| 儿童超敏c反应蛋白高说明什么| 长颈鹿吃什么树叶| 胃酸烧心吃什么药可以根治| 金标是什么意思| 牙齿什么时候换完| 什么春白雪| 二级医院什么意思| 什么是绿茶女| 对公转账是什么意思| 1884年属什么生肖| 子宫憩室是什么意思| 火疖子用什么药| 钧五行属什么| 什么情况下做肠镜| 茱萸是什么| 上门女婿什么意思| 臭屁是什么意思| 长膘是什么意思| 活检和穿刺有什么区别| 旋转跳跃我闭着眼是什么歌| 羽五行属什么| 特别是什么意思| 玄五行属什么| cheese是什么意思| 草字头内念什么| 吃维生素b6有什么好处和副作用| 碳酸氢钠有什么作用| 痛风都不能吃什么东西| 二十不惑什么意思| 为什么一同房就有炎症| 内痔有什么症状与感觉| 为什么家里有蟑螂| 疣是什么样子图片| 桀是什么意思| 伸什么缩什么| 天才是指什么生肖| 目加此念什么| 熊猫血型是什么血型| 社保指的是什么| 女生的小鸡鸡长什么样| 感官世界讲的什么| 月经时间过长是什么原因引起的| asia是什么意思| 乳房疼痛应该挂什么科| 中叶是什么意思| 牡丹是什么植物| 湿疹用什么药膏最有效| 雌二醇高说明什么| 镇静是什么意思| 尿道炎吃什么药比较好的快| 过敏性荨麻疹吃什么药| 安全期是什么意思| 5点至7点是什么时辰| 血精和精囊炎吃什么药| 工会副主席是什么级别| 医院可以点痣吗挂什么科| 吃丝瓜有什么功效和作用| 什么照片看不出照的是谁| 吃什么水果补血| 看痘痘挂什么科| 守护者是什么意思| 吃什么药不能喝酒| 孕酮偏低是什么原因| 上火流鼻血是什么原因| 缺血吃什么补血最快| 什么是物理| 看病人买什么水果| 9月25是什么星座| 头痛呕吐什么原因| 萎缩性鼻炎用什么药| 神经炎吃什么药| 散瞳后需要注意什么| 银饰为什么会变黑| 高考什么时候恢复| 抄送和密送是什么意思| 宫寒有什么症状| 豌豆的什么不能吃| 特别嗜睡是什么原因| 余的部首是什么| 大天真香是什么意思| 梦见鞋丢了是什么意思| 百度
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

打嗝不停是什么原因

童长老 ? 来源:jf_14594073 ? 作者:jf_14594073 ? 2025-08-06 10:24 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

harmony-utils之PhotoHelper,相册相关工具类

harmony-utils 简介与说明


harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
picker_utils 是harmony-utils拆分出来的一个子库,包含PickerUtil、PhotoHelper、ScanUtil。

下载安装
ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils

//全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
   AppUtil.init(this.context);
 }

API方法与使用


select 通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频
//相册选择图片
PhotoHelper.select().then((result) = > {
  let uris = result.photoUris;
  let uriStr = `调用相册,返回uris:n${uris.join('n')}`;
}).catch((err: BusinessError) = > {
  let str = `调用相册,异常:n${JSON.stringify(err)}`;
});
selectEasy 通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频
//相册选择图片/视频(多选)
let options: photoAccessHelper.PhotoSelectOptions = {
  MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_VIDEO_TYPE,
  maxSelectNumber: 12,
  isPhotoTakingSupported: false,
  isSearchSupported: false,
  isEditSupported: false,
  isOriginalSupported: true
}
PhotoHelper.selectEasy(options).then((uris) = > {
  let uriStr = `调用相册,返回uris:n${uris.join('n')}`;
}).catch((err: BusinessError) = > {
  let str = `调用相册,异常:n${JSON.stringify(err)}`;
});
 
//相册选择图片(单选)
let options: photoAccessHelper.PhotoSelectOptions = {
  MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
  maxSelectNumber: 1,
  isOriginalSupported: true,
  isPreviewForSingleSelectionSupported: true //单选模式下是否需要进大图预览
}
PhotoHelper.selectEasy(options).then((uris) = > {
  let uriStr = `调用相册,返回uris:n${uris.join('n')}`;
}).catch((err: BusinessError) = > {
  let str = `调用相册,异常:n${JSON.stringify(err)}`;
});
save 申请权限保存,保存图片或视频到相册
//图片保存进相册(已申请权限使用该方法)
let ps: Permissions[] = ['ohos.permission.WRITE_IMAGEVIDEO'];
PermissionUtil.requestPermissions(ps).then((result) = > {
  if (result) {
    let imgName = `测试图片_${DateUtil.getTodayTime()}`;
    PhotoHelper.save(photoAccessHelper.PhotoType.IMAGE, 'jpg', { title: imgName }).then(async (uri) = > {
      if (uri) {
        let uriStr = `保存图片成功,返回uris:n${uri}`;
        let file = FileUtil.openSync(uri);
        FileUtil.copyFile(this.filePath, file.fd).then(() = > {
          FileUtil.close(file.fd);
          ToastUtil.showToast("图片保存成功");
        })
      }
    }).catch((err: BusinessError) = > {
      let str = `调用保存图片,异常:n${JSON.stringify(err)}`;
    })
  } else {
    ToastUtil.showLong("请在设置中打开权限");
    WantUtil.toAppSetting();
  }
});
showAssetsCreationDialog 弹窗授权保存,调用接口拉起保存确认弹窗
let pixelMap = await ImageUtil.getPixelMapFromMedia($r("app.media.test_as4"));
let filePath = await ImageUtil.savePixelMap(pixelMap, FileUtil.getFilesDirPath(""), "测试图片.png");
let uri = FileUtil.getUriFromPath(this.filePath);
let srcFileUris: Array< string >=[uri];

let desFileUris: Array< string > = await PhotoHelper.showAssetsCreationDialog(srcFileUris);
for (let index = 0; index < desFileUris.length; index++) {
  //将来源于应用沙箱的照片内容写入媒体库的目标uri
  let srcFile: fs.File = await Utils.open(srcFileUris[index], fs.OpenMode.READ_ONLY);
  let desFile: fs.File = await Utils.open(desFileUris[index], fs.OpenMode.WRITE_ONLY);
  await Utils.copyFile(srcFile.fd, desFile.fd);
  await Utils.close(srcFile);
  await Utils.close(desFile);
}
showAssetsCreationDialogEasy 弹窗授权保存,调用接口拉起保存确认弹窗,并保存
let pixelMap = await ImageUtil.getPixelMapFromMedia($r("app.media.test_as4"));
let filePath = await ImageUtil.savePixelMap(pixelMap, FileUtil.getFilesDirPath(""), "测试图片.png");
let uri = FileUtil.getUriFromPath(this.filePath);

PhotoHelper.showAssetsCreationDialogEasy([uri, uri2]).then((result) = > {
  let uriStr = `图片保存成功,返回uris:n${JSON.stringify(result, null, 2)}`;
  DialogHelper.showToast("图片保存成功!");
}).catch((error: BusinessError) = > {
  DialogHelper.showToast("图片保存失败!");
});
applyChanges 安全控件保存,提交媒体变更请求,插入图片/视频
//安全控件保存,图片保存进相册。
let pixelMap = await ImageUtil.getPixelMapFromMedia($r("app.media.test_as4"));
let filePath = await ImageUtil.savePixelMap(pixelMap, FileUtil.getFilesDirPath(""), "测试图片.png");

let uri = FileUtil.getUriFromPath(this.filePath);
PhotoHelper.applyChanges(uri).then((result) = > {
  let uriStr = `保存图片成功:${result.uri}`;
}).catch((err: BusinessError) = > {
  let str = `保存图片失败:${JSON.stringify(err)}`;
});
getPhotoAsset 获取对应uri的PhotoAsset对象,用于读取文件信息
PickerUtil.selectPhoto().then(async (uris) = > {
  if (uris && uris.length > 0) {
    PhotoHelper.getPhotoAsset(uris[0]).then((photoAsset) = > {
      try {
        let name = photoAsset?.get(photoAccessHelper.PhotoKeys.DISPLAY_NAME);
        let type = photoAsset?.get(photoAccessHelper.PhotoKeys.PHOTO_TYPE);
        let title = photoAsset?.get(photoAccessHelper.PhotoKeys.TITLE.toString());
        let size = photoAsset?.get(photoAccessHelper.PhotoKeys.SIZE.toString());
        let with1 = photoAsset?.get(photoAccessHelper.PhotoKeys.WIDTH.toString());
        let height = photoAsset?.get(photoAccessHelper.PhotoKeys.HEIGHT.toString());
        let date = photoAsset?.get(photoAccessHelper.PhotoKeys.DATE_TAKEN.toString());
        let orientation = photoAsset?.get(photoAccessHelper.PhotoKeys.ORIENTATION.toString());
        let uriStr = `图片信息:n文件名:${name}n文件类型:${type}n文件大小:${size}n图片宽度:${with1}n图片高度:${height}n拍摄日期:${date}n文件标题:${title}n图片文件的方向:${orientation}`
      } catch (err) {
        LogUtil.error("读取图片信息失败:" + JSON.stringify(err));
      }
      photoAsset?.getThumbnail((err, pixelMap) = > {
        if (err) {
          LogUtil.error("缩略图-异常:" + JSON.stringify(err));
          return;
        }
        // this.pixelMap = pixelMap;
      })
    }).catch((err: BusinessError) = > {
      let str = `读取图片异常:n${JSON.stringify(err)}`;
    });
  } else {
    ToastUtil.showToast("请选择图片");
  }
}).catch((err: BusinessError) = > {
  let str = `异常:n${JSON.stringify(err)}`;
});

创作不易,请给童长老点赞

审核编辑 黄宇

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

    关注

    80

    文章

    2130

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    harmony-utilsAuthUtil,生物认证相关工具

    # harmony-utilsAuthUtil,生物认证相关工具 ## harmony-utils
    的头像 发表于 06-26 17:43 ?147次阅读

    harmony-utilsCacheUtil,缓存工具

    harmony-utilsCacheUtil,缓存工具
    的头像 发表于 07-04 16:36 ?151次阅读

    harmony-utilsCharUtil,字符工具

    harmony-utilsCharUtil,字符工具
    的头像 发表于 07-04 16:34 ?152次阅读

    harmony-utilsCrashUtil,异常相关工具

    harmony-utilsCrashUtil,异常相关工具
    的头像 发表于 07-04 16:33 ?150次阅读

    harmony-utilsDeviceUtil,设备相关工具

    harmony-utilsDeviceUtil,设备相关工具
    的头像 发表于 07-03 18:27 ?192次阅读

    harmony-utilsDisplayUtil,屏幕相关工具

    harmony-utilsDisplayUtil,屏幕相关工具
    的头像 发表于 07-03 18:26 ?165次阅读

    harmony-utilsFileUtil,文件相关工具

    harmony-utilsFileUtil,文件相关工具
    的头像 发表于 07-03 18:23 ?172次阅读

    harmony-utilsImageUtil,图片相关工具

    harmony-utilsImageUtil,图片相关工具
    的头像 发表于 07-03 18:22 ?222次阅读

    harmony-utilsLocationUtil,定位相关工具

    harmony-utilsLocationUtil,定位相关工具 harmony-utils
    的头像 发表于 07-03 18:13 ?178次阅读

    harmony-utilsNetworkUtil,网络相关工具

    harmony-utilsNetworkUtil,网络相关工具 harmony-utils
    的头像 发表于 06-25 23:46 ?66次阅读

    harmony-utilsPreviewUtil,文件预览工具

    harmony-utilsPreviewUtil,文件预览工具 harmony-utils 简介与说明 [
    的头像 发表于 07-03 11:40 ?159次阅读

    harmony-utilsSnapshotUtil,截图相关工具

    harmony-utilsSnapshotUtil,截图相关工具 harmony-utils
    的头像 发表于 07-03 11:36 ?154次阅读

    harmony-utilsStrUtil,字符串工具

    harmony-utilsStrUtil,字符串工具 harmony-utils 简介与说明 [ha
    的头像 发表于 07-03 11:32 ?126次阅读

    harmony-utilsTypeUtil,类型检查工具

    harmony-utilsTypeUtil,类型检查工具 harmony-utils 简介与说明 [
    的头像 发表于 06-30 17:35 ?142次阅读

    harmony-utilsWindowUtil,窗口相关工具

    harmony-utilsWindowUtil,窗口相关工具 harmony-utils
    的头像 发表于 06-30 17:33 ?159次阅读
    犹太人是什么人 箱变是什么 驱动精灵是干什么用的 甘油三酯高不能吃什么 尿素氮偏低是什么意思
    瘟疫是什么意思 脂蛋白a高吃什么药 孤寡是什么意思 龙潭虎穴是什么生肖 脸上出油是什么原因
    相是什么生肖 遗言是什么意思 奇的多音字是什么 气蛋是什么病 海苔吃多了有什么坏处
    孕吐吃什么 scr医学上是什么意思 臭虫长什么样子图片 什么爱心 黑茶金花是什么菌
    什么补肾效果最好hcv8jop9ns7r.cn 执行标准是什么意思weuuu.com boss是什么意思youbangsi.com 蔻驰香水属于什么档次hcv8jop2ns4r.cn 社恐到底在害怕什么hcv8jop5ns0r.cn
    总有眼屎是什么原因jasonfriends.com vc是什么药hcv9jop4ns0r.cn 靶向药物是什么hcv8jop0ns6r.cn 兔子为什么不吃窝边草hcv8jop1ns3r.cn 怕什么hcv9jop6ns2r.cn
    百合与什么搭配最好hcv8jop2ns3r.cn 爸爸的爸爸的爸爸叫什么hcv9jop2ns6r.cn 纹眉失败擦什么淡化hcv9jop1ns2r.cn qq2g在线是什么意思fenrenren.com 台启是什么意思dajiketang.com
    史努比是什么意思hcv9jop4ns4r.cn 山穷水尽疑无路是什么生肖hcv7jop4ns8r.cn 佝偻病是什么hcv9jop7ns2r.cn 题词是什么意思hcv9jop5ns2r.cn 脚气是什么hcv9jop8ns2r.cn
    百度