您现在的位置是:首页 > 编程 > 

鸿蒙ext开发如何实现打开相册选图片功能

2025-07-28 02:51:47
鸿蒙ext开发如何实现打开相册选图片功能 问题描述:鸿蒙ext如何实现打开相册选图片功能应用场景:用户个人中心自定义头像的时候,需要选择相册上传照片。解决方案:使用picker这个API实现从系统上获取相册图片这个点的,1、首先要实例一个选择参数PhotoSelectOpti 里面需要设置媒体文件类型还有一个数量2、然后—>实例一个选择器PhotoViewPicker,、通过自带

鸿蒙ext开发如何实现打开相册选图片功能

问题描述:鸿蒙ext如何实现打开相册选图片功能应用场景:用户个人中心自定义头像的时候,需要选择相册上传照片。解决方案:

使用picker这个API实现从系统上获取相册图片这个点的,

1、首先要实例一个选择参数PhotoSelectOpti 里面需要设置媒体文件类型还有一个数量

2、然后—>实例一个选择器PhotoViewPicker,

、通过自带的——>select方法传入先前设置的选择参数即可完成选择并获取到选择图片的文件路径

4、解析文件路径转为PixelMap格式或者base64格式

5、再对接后端接口上传数据

代码语言:js复制
// 导入选择器模块和文件管理模块
import {  zipImageUtil} from '../utils/ZipImageUtil'
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { image } from '@kit.ImageKit';
import { fileIo as fs } from '@kit.CoreFileKit';
import {  buffer as Buffer} from '@kit.ArkTS';
 // 拉起相册,选择图片方法
class getPhotofromAlbum{
    getAlbum: string = '显示相册中的图片';
    pixel: image.PixelMap | undefined = undefined;
    albumPath: string = '';
    photoSize: number = 0;
    async initData():Promise<string>{
        try{
        //创建图片-音频类型文件选择选项实例
        let PhotoSelectOpti = new photoAccessHelper.PhotoSelectOpti(); 
        PhotoSelectOpti.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
         = 1; // 最多选择数量
       
        //创建图库选择器实例,调用PhotoViewPicker.select接口拉起图库界面进行文件选择。文件选择成功后,返回PhotoSelectResult结果集。
       let photoPicker = new photoAccessHelper.PhotoViewPicker(); 
      let photoSelectResult: photoAccessHelper.PhotoSelectResult = await photoPicker.select(PhotoSelectOpti);
        this.albumPath = photoSelectResult.photoUris[0];  //获得到选择图片的文件路径

        // 使用file解析文件,并读取图片为buffer
       ct file = (this.albumPath, fs.OpenMode.READ_OLY);
       this.photoSize = fs.statSync(file.fd).size;
       cole.info('Photo Size: ' + this.photoSize);
       let buffer = new ArrayBuffer(this.photoSize);
       fs.readSync(file.fd, buffer);
       (file);

        // 解码成PixelMap
       ct imageSource = (buffer);
       cole.log('imageSource: ' + JSO.stringify(imageSource));
       let pixelMap = await ({});

       //设置打包参数
       ct imagePackerApi = ();
       ct packOpts: image.PackingOption = { format: "image/jpeg", quality: 100 };
       let imageBuffer: ArrayBuffer = new ArrayBuffer(1);
       // 图片压缩或重新打包
       imageBuffer = await imagePackerApi.packing(imageSource, packOpts);
       imageBuffer = await zipImageUtil.packingImage(imageBuffer, pixelMap, 100, 500*1024); //压缩到500kb
       cole.log('压缩后的字节长度:'+imageBuffer.byteLength/1024)

        //转成base64地址
        let base64Str:string = Buffer.from(imageBuffer).toString('base64')
        return base64Str

        }catch(e){
            throw new Error(`相册 获取照片失败 : ${JSO.stringify(e)}`);
        }


    }

}

调用方法

代码语言:js复制
   new getPictureFromAlbum().initData().then(res => {
            let base64=res
          })

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1218147.html

相关标签:无
上传时间: 2025-07-25 10:16:27
留言与评论(共有 17 条评论)
本站网友 truecrypt
2分钟前 发表
调用PhotoViewPicker.select接口拉起图库界面进行文件选择
本站网友 成才
27分钟前 发表
let photoPicker = new photoAccessHelper.PhotoViewPicker(); let photoSelectResult
本站网友 鬼针草泡水喝的功效
23分钟前 发表
' + this.photoSize); let buffer = new ArrayBuffer(this.photoSize); fs.readSync(file.fd
本站网友 角质层是什么
19分钟前 发表
string = Buffer.from(imageBuffer).toString('base64') return base64Str }catch(e){ throw new Error(`相册 获取照片失败 : ${JSO.stringify(e)}`); } } }调用方法代码语言:js复制 new getPictureFromAlbum().initData().then(res => { let base64=res })
本站网友 汕头房屋出租
2分钟前 发表
fs.OpenMode.READ_OLY); this.photoSize = fs.statSync(file.fd).size; cole.info('Photo Size
本站网友 利比亚大撤离
25分钟前 发表
100
本站网友 临汾美食
29分钟前 发表
image.PackingOption = { format
本站网友 浦东金领国际
29分钟前 发表
buffer); (file); // 解码成PixelMap ct imageSource = (buffer); cole.log('imageSource
本站网友 嘉兴日报电子版
5分钟前 发表
首先要实例一个选择参数PhotoSelectOpti 里面需要设置媒体文件类型还有一个数量2
本站网友 产妇下奶
19分钟前 发表
"image/jpeg"
本站网友 南京seo优化
3分钟前 发表
返回PhotoSelectResult结果集
本站网友 新亚药业
20分钟前 发表
选择图片方法 class getPhotofromAlbum{ getAlbum
本站网友 免费下载小说的网站
4分钟前 发表
string = '显示相册中的图片'; pixel
本站网友 健康的减肥饮食
20分钟前 发表
首先要实例一个选择参数PhotoSelectOpti 里面需要设置媒体文件类型还有一个数量2
本站网友 梦见别人送东西
1分钟前 发表
string = '显示相册中的图片'; pixel
本站网友 控制c
16分钟前 发表
解决方案:使用picker这个API实现从系统上获取相册图片这个点的