https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-photoaccesshelper-V5\#showassetscreationdialog12phAccessHelper.showAssetsCreationDialog phAccessHelper引不到。
这里有个保存showAssetsCreationDialog的demo:import { common } from '@kit.AbilityKit'; import { photoAccessHelper } from '@kit.MediaLibraryKit'; import { image } from '@kit.ImageKit'; import fs, { ReadOptions, WriteOptions } from '@ohos.file.fs' import { BusinessError } from '@kit.BasicServicesKit'; let context = getContext(this) as common.UIAbilityContext; let cacheDir = context.cacheDir; async function example() { console.info('ShowAssetsCreationDialogDemo.'); let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); try { // 获取需要保存到媒体库的位于应用沙箱的图片/视频uri let srcFileUris: Array<string> = [ 'file://'+cacheDir+"/pixel_map3.jpg"// 实际场景请使用真实的uri ]; let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [ { title: 'test3', // 可选 fileNameExtension: 'jpg', photoType: photoAccessHelper.PhotoType.IMAGE, subtype: photoAccessHelper.PhotoSubtype.DEFAULT, // 可选 } ]; let desFileUris: Array<string> = await phAccessHelper.showAssetsCreationDialog(srcFileUris, photoCreationConfigs); console.info('showAssetsCreationDialog success, data is ' + desFileUris); let destFile = await fs.open(desFileUris.toString(), fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); // 打开文件 let srcFile = fs.openSync(cacheDir + '/pixel_map3.jpg', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); // 读取源文件内容并写入至目的文件 let bufSize = 4096; let readSize = 0; let buf = new ArrayBuffer(bufSize); let readOptions: ReadOptions = { offset: readSize, length: bufSize }; let readLen = fs.readSync(srcFile.fd, buf, readOptions); while (readLen > 0) { readSize += readLen; let writeOptions: WriteOptions = { length: readLen }; fs.writeSync(destFile.fd, buf, writeOptions); readOptions.offset = readSize; readLen = fs.readSync(srcFile.fd, buf, readOptions); } // 关闭文件 fs.closeSync(srcFile); fs.closeSync(destFile); } catch (err) { console.error('showAssetsCreationDialog failed, errCode is ' + err.code + ', errMsg is ' + err.message); } } @Entry @Component struct Index { @State message: string = 'Hello World'; @State pixelMap: image.PixelMap | undefined = undefined private settings: RenderingContextSettings = new RenderingContextSettings(true) private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) test1(pixelMap: image.PixelMap) { const context: Context = getContext(); console.log(cacheDir+"/pixel_map3.jpg") const path: string = context.cacheDir + "/pixel_map3.jpg"; let packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 } let file = fs.openSync(path, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); const imagePackerApi: image.ImagePacker = image.createImagePacker(); imagePackerApi.packToFile(pixelMap, file.fd, packOpts, (err: BusinessError) => { if (err) { console.error('packToFile failed.'); } else { console.info('packToFile succeeded.'); } }) } build() { Column() { Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { Text('已保存到沙箱路径cache文件夹下') Canvas(this.context) .width('100%') .height('50%') .backgroundColor('#F5DC62') .onReady(() => { //创建一个径向渐变色的CanvasGradient对象 let grad = this.context.createRadialGradient(200, 200, 50, 200, 200, 200) //为CanvasGradient对象设置渐变断点值,包括偏移和颜色 grad.addColorStop(0.0, '#E87361'); grad.addColorStop(0.5, '#FFFFF0'); grad.addColorStop(1.0, '#BDDB69'); //用CanvasGradient对象填充矩形 this.context.fillStyle = grad; this.context.fillRect(0, 0, 400, 400); this.pixelMap = this.context.getPixelMap(0, 0, 400, 400) this.test1(this.pixelMap) }) Button("保存图片") .onClick(() => { example() }) } } .width('100%') .height('100%') } }
这里有个保存showAssetsCreationDialog的demo: