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

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

申请方法见上一篇博客 https://blog.csdn.net/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.csdn.net/qq_15509071/article/details/135624812

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

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

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

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

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

你可能感兴趣的:(鸿蒙开发,harmonyos)