From 1b6265f0fa44af720611b0c325fd79869ec72e77 Mon Sep 17 00:00:00 2001 From: "johnson.zhong" <514961926@qq.com> Date: Sat, 17 Aug 2024 11:00:42 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=9B=BE=E7=89=87?= =?UTF-8?q?&=E6=96=87=E4=BB=B6=E4=BF=9D=E5=AD=98=E7=9A=84=E5=90=8E?= =?UTF-8?q?=E7=BC=80=E8=A7=A3=E6=9E=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/ImageGallerySaverPlugin.ets | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets b/ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets index 622976f..54aec6b 100644 --- a/ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets +++ b/ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets @@ -115,7 +115,14 @@ export default class ImageGallerySaverPlugin implements FlutterPlugin, MethodCal return SaveResultModel.toHashMap(false, null, 'image pick fail'); } - let fileUri: string | null = await this.generateUri("jpg", name); + let extension = "jpg"; + if (name != null && name.split('.').length >= 2) { + let splits = name.split('.'); + extension = splits[splits.length - 1]; + name = splits[0]; + } + + let fileUri: string | null = await this.generateUri(extension, name); let outputFile: fs.File; let success: boolean = false; @@ -153,7 +160,13 @@ export default class ImageGallerySaverPlugin implements FlutterPlugin, MethodCal return SaveResultModel.toHashMap(false, null, `${path} does not exist`); } - let fileUri: string | null = await this.generateUri(path.split('.')[1], name); + let extension = ".mp4"; + if (path != null && path.split('.').length >= 2) { + let splits = path.split('.'); + extension = splits[splits.length - 1]; + } + + let fileUri: string | null = await this.generateUri(extension, name.split('.')[0]); let outputFile: fs.File; let success: boolean = false; -- Gitee From 6b48f2eba21551cefefa94fc5210686b7e06dd2a Mon Sep 17 00:00:00 2001 From: "johnson.zhong" <514961926@qq.com> Date: Tue, 20 Aug 2024 15:37:42 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9GIF=E5=9B=BE?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=88=90=E5=8A=9F=E5=90=8E=E5=8F=98=E6=88=90?= =?UTF-8?q?jpg=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/ImageGallerySaverPlugin.ets | 31 +------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets b/ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets index 54aec6b..741e90b 100644 --- a/ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets +++ b/ohos/src/main/ets/components/plugin/ImageGallerySaverPlugin.ets @@ -109,12 +109,6 @@ export default class ImageGallerySaverPlugin implements FlutterPlugin, MethodCal return SaveResultModel.toHashMap(false, null, 'applicationContext is null'); } - const pickImageBuffer = await this.saveCacheDir(bmp, quality) - - if (pickImageBuffer == null) { - return SaveResultModel.toHashMap(false, null, 'image pick fail'); - } - let extension = "jpg"; if (name != null && name.split('.').length >= 2) { let splits = name.split('.'); @@ -129,7 +123,7 @@ export default class ImageGallerySaverPlugin implements FlutterPlugin, MethodCal if (fileUri != null) { outputFile = fs.openSync(fileUri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); try { - await fs.write(outputFile.fd, pickImageBuffer); + await fs.write(outputFile.fd, bmp.buffer); success = true; } catch (e) { return SaveResultModel.toHashMap(false, null, 'write is e ' + JSON.stringify(e)); @@ -220,29 +214,6 @@ export default class ImageGallerySaverPlugin implements FlutterPlugin, MethodCal return null; } } - - // 将图片暂存到缓存 - async saveCacheDir(bmp: Uint8Array, quality: number): Promise { - let filePath: string = this.applicationContext?.cacheDir + '/image_source.jpg'; - let outputFile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE) - try { - await fs.write(outputFile.fd, bmp.buffer); - } catch (e) { - return null - } - - return await this.pickImage(outputFile, quality); - } - - // 压缩图片 - async pickImage(outputFile: fs.File, quality: number) { - let imageBuffer: ArrayBuffer | null = null; - const imagePacker: image.ImagePacker = image.createImagePacker(); - const imageSource: image.ImageSource = image.createImageSource(outputFile.fd); - imageBuffer = await imagePacker.packing(imageSource, { format: "image/jpeg", quality }); - await fs.close(outputFile); - return imageBuffer; - } } class SaveResultModel { -- Gitee