From 4308e0bbe4e9e108ad4573accaad334555b459be Mon Sep 17 00:00:00 2001
From: Tevin <tingquanren@163.com>
Date: Wed, 22 Jan 2025 17:17:46 +0800
Subject: [PATCH] 跨端通讯,代码格式化变动

---
 forms/imagePicker/CImageCompressor.vue |   69 +++++++++++++++++++++++++++-------
 1 files changed, 54 insertions(+), 15 deletions(-)

diff --git a/forms/imagePicker/CImageCompressor.vue b/forms/imagePicker/CImageCompressor.vue
index a0106dd..55ab730 100644
--- a/forms/imagePicker/CImageCompressor.vue
+++ b/forms/imagePicker/CImageCompressor.vue
@@ -64,14 +64,40 @@
                 src: tempPath,
                 success: res => {
                     const size = this._limitSize(res);
-                    const drawSet = this._creatDrawSet(res, size);
-                    this._drawImage(tempPath, drawSet, compress => {
-                        this.imgBlobs.push({
-                            source: tempPath,
-                            compress,
+                    // 网页图片压缩
+                    if (process.env.TARO_ENV === 'h5') {
+                        const drawSet = this._creatDrawSet(res, size);
+                        this._drawImage(tempPath, drawSet, compress => {
+                            this.imgBlobs.push({
+                                source: tempPath,
+                                compress,
+                            });
+                            callback();
                         });
-                        callback();
-                    });
+                    }
+                    // 小程序图片压缩
+                    else if (process.env.TARO_ENV === 'weapp') {
+                        Taro.compressImage({
+                            src: tempPath,
+                            quality: 60,
+                            compressedWidth: size[0],
+                            compressHeight: size[1],
+                            success: cps => {
+                                this.imgBlobs.push({
+                                    source: tempPath,
+                                    compress: cps.tempFilePath,
+                                });
+                                callback();
+                            },
+                            fail: err => {
+                                this.imgBlobs.push({
+                                    source: tempPath,
+                                    compress: tempPath,
+                                });
+                                callback();
+                            },
+                        });
+                    }
                 },
             });
         },
@@ -93,13 +119,10 @@
         _setCanvasSize(width, height) {
             this.cavWidth = width;
             this.cavHeight = height;
-            if (process.env.TARO_ENV === 'h5') {
-                $(this.$refs.canvas.$el)
-                    .find('canvas')
-                    .attr('width', width)
-                    .attr('height', height);
-            }
-            // TODO: 小程序中的 canvas 重设
+            $(this.$refs.canvas.$el)
+                .find('canvas')
+                .attr('width', width)
+                .attr('height', height);
         },
         _creatDrawSet(res, [width, height]) {
             const orientation = res.orientation || 'up';
@@ -140,7 +163,23 @@
                 const [key, params] = step;
                 if (key === 'drawImage') {
                     // 使用图片
-                    const img = new Image();
+                    const img = (() => {
+                        if (typeof Image === 'undefined') {
+                            console.log(this.$refs.canvas);
+                            console.log($('canvas[canvas-id=' + this.cavId + ']'));
+
+                            const query = Taro.createSelectorQuery();
+                            query
+                                .select('canvas[canvas-id=' + this.cavId + ']')
+                                .boundingClientRect()
+                                .exec(res => {
+                                    console.log(res);
+                                });
+                            return this.$refs.canvas.createImage();
+                        } else {
+                            return new Image();
+                        }
+                    })();
                     img.src = tempPath;
                     this.canvasContext.drawImage(img, ...params);
                 } else {

--
Gitblit v1.9.1