From 0396d398bea811f5650d04ce5b55a232b4f58b98 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Thu, 27 Mar 2025 17:07:52 +0800 Subject: [PATCH] 移除 link-rules --- 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