鸿蒙开发之如何将相册中的图片读到Canvas画布

第一步:申请文件权限(很重要)  

申请方法见上一篇博客 https://blog.youkuaiyun.com/qq_15509071/article/details/135659048

第二步:打开相册,选取图片

                  try {
                    let PhotoSelectOptions = new picker.PhotoSelectOptions();
                    PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
                    PhotoSelectOptions.maxSelectNumber = 5;
                    let photoPicker = new picker.PhotoViewPicker();
                    photoPicker.select(PhotoSelectOptions).then(async (PhotoSelectResult: picker.PhotoSelectResult) => {
                      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
                    }).catch((err: BusinessError) => {
                      console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
                    });

第三步:返回的是图片的路径,然后转成 ImageBitmap

if(PhotoSelectResult.photoUris.length > 0){
 let filePath =  PhotoSelectResult.photoUris[0];
 this.context2.drawImage(new ImageBitmap(filePath),0,0,130,130)
}

绘图相关的代码可以参考另一篇博客:https://blog.youkuaiyun.com/qq_15509071/article/details/135624812

然后就完成了相册图片加载到画布的功能

'ohos.permission.MEDIA_LOCATION' 显示的是读取相册权限

注:如果没有申请权限,或者用错误的方式申请权限都是不成功的

而且,虽然申请的是读取文件的权限,但是是不需要使用fs.open等文件操作就能获取的,

可以直接使用new ImageBitmap(filePath),这个地方花费了三个小时,以次记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值