From 3ad2b23292f6add5b31b31f61d375f42adf11717 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Mon, 11 Nov 2024 15:18:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor(app):=20=E7=A7=BB=E9=99=A4=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E8=A3=81=E5=89=AA=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E8=B4=A6=E6=88=B7=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ApiConfig 中为 getAccountInfo 接口添加 showLog 字段 - 删除 ImageCropperView 组件和相关路由 - 移除 @candies/image_cropper 依赖 -优化 FileHelper 中的 saveImage 方法,返回保存后的图片 URI --- src/main/ets/utils/FileHelper.ets | 55 +++++++++++++++++++------------ 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/src/main/ets/utils/FileHelper.ets b/src/main/ets/utils/FileHelper.ets index 991133a..7254824 100644 --- a/src/main/ets/utils/FileHelper.ets +++ b/src/main/ets/utils/FileHelper.ets @@ -314,6 +314,11 @@ export class FileHelper { return fs.accessSync(path); } + static getFileFd(uri: string) { + let file = FileHelper.openSync(uri, fs.OpenMode.READ_ONLY) + return file.fd + } + /** * 图片转base64 * @param photoUri @@ -348,29 +353,37 @@ export class FileHelper { * 保存图片到相册,需要注意权限 * @param pixmap */ - static async saveImage(pixmap: image.PixelMap) { - let imageBuffer: ArrayBuffer = new ArrayBuffer(1) - try { - imageBuffer = await image.createImagePacker().packing(pixmap, { format: "image/png", quality: 100 }) - } catch (err) { - ToolsHelper.showMessage('保存失败') - console.error(`Invoke packingPixelMap2Jpg failed, err: ${JSON.stringify(err)}`) - } + static saveImage(pixmap: image.PixelMap): Promise { + return new Promise(async (resolve, reject) => { - const uri = await photoAccessHelper.getPhotoAccessHelper(GlobalContext.getContext()) - .createAsset(photoAccessHelper.PhotoType.IMAGE, 'png') + let imageBuffer: ArrayBuffer = new ArrayBuffer(1); + try { + imageBuffer = await image.createImagePacker().packing(pixmap, { format: "image/png", quality: 100 }); + } catch (err) { + ToolsHelper.showMessage('保存失败'); + console.error(`Invoke packingPixelMap2Jpg failed, err: ${JSON.stringify(err)}`); + reject() + return; + } - fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE) - .then(async (file) => { - try { - await fs.write(file.fd, imageBuffer) - ToolsHelper.showMessage('保存成功') - } finally { - await fs.close(file.fd) // 确保文件关闭 - } - }).catch(() => { - ToolsHelper.showMessage('保存失败') - }) + const uri = await photoAccessHelper.getPhotoAccessHelper(GlobalContext.getContext()) + .createAsset(photoAccessHelper.PhotoType.IMAGE, 'png'); + + fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE) + .then(async (file) => { + try { + await fs.write(file.fd, imageBuffer); + ToolsHelper.showMessage('保存成功'); + } finally { + await fs.close(file.fd); // 确保文件关闭 + } + resolve(uri); + }).catch(() => { + ToolsHelper.showMessage('保存失败'); + reject() + return; + }); + }); } /**