该demo可以读取到相册的图片并转化为解码成PixelMap。import photoAccessHelper from '@ohos.file.photoAccessHelper'; import image from '@ohos.multimedia.image'; import fs from '@ohos.file.fs'; @Entry @Component struct Photo { @State message: string = 'Hello World'; @State getAlbum: string = '显示相册中的图片'; @State pixel: image.PixelMap | undefined = undefined; @State albumPath: string = ''; @State photoSize: number = 0; async getPictureFromAlbum(){ // 拉起相册,选择图片 let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions(); PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE; PhotoSelectOptions.maxSelectNumber = 1; let photoPicker = new photoAccessHelper.PhotoViewPicker(); let photoSelectResult: photoAccessHelper.PhotoSelectResult = await photoPicker.select(PhotoSelectOptions); this.albumPath = photoSelectResult.photoUris[0]; // 读取图片为buffer const file = fs.openSync(this.albumPath, fs.OpenMode.READ_WRITE); this.photoSize = fs.statSync(file.fd).size; console.info('Photo Size: ' + this.photoSize); let buffer = new ArrayBuffer(this.photoSize); fs.readSync(file.fd, buffer); fs.closeSync(file); // 解码成PixelMap const imageSource = image.createImageSource(buffer); console.log('imageSource: ' + JSON.stringify(imageSource)); this.pixel = await imageSource.createPixelMap({}); } build() { RelativeContainer() { Text(this.message) .id('PhotoHelloWorld') .fontSize(50) .fontWeight(FontWeight.Bold) .alignRules({ center: { anchor: '__container__', align: VerticalAlign.Center }, middle: { anchor: '__container__', align: HorizontalAlign.Center } }) Button('xxx').onClick(() =>{ this.getPictureFromAlbum() }) } .height('100%') .width('100%') } }
该demo可以读取到相册的图片并转化为解码成PixelMap。