From 43cf097a2acd9cde950e2da260e1965f56ddf2fc Mon Sep 17 00:00:00 2001 From: lzp Date: Fri, 27 Mar 2026 09:50:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=B1=E5=BA=A6=E7=94=BB=E5=B8=83=E6=A9=A1?= =?UTF-8?q?=E7=9A=AE=E6=93=A6=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/AISelectboxToolManager.ts | 5 +++-- .../manager/events/CanvasEventManager.js | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/components/Canvas/DepthCanvas/manager/AISelectboxToolManager.ts b/src/components/Canvas/DepthCanvas/manager/AISelectboxToolManager.ts index 7ac7371..a08ce87 100644 --- a/src/components/Canvas/DepthCanvas/manager/AISelectboxToolManager.ts +++ b/src/components/Canvas/DepthCanvas/manager/AISelectboxToolManager.ts @@ -221,12 +221,13 @@ export class AISelectboxToolManager { if (!this.demoObject) return const fobject = this.demoObject this.clearDemoObject() - const canvas = getObjectAlphaToCanvas(fobject, null, 0, { r: 255, g: 0, b: 0, a: 255 }); + const tcanvas = await this.createStaticCanvas(fobject) + const canvas = getObjectAlphaToCanvas(tcanvas, null, 0, { r: 255, g: 0, b: 0, a: 255 }); + const arr = traceImageContour(canvas); const scaleY = fobject.scaleY const scaleX = fobject.scaleX const top = fobject.top const left = fobject.left - const arr = traceImageContour(canvas); let minX = fobject.width; let minY = fobject.height; const str = arr.map((v) => { diff --git a/src/components/Canvas/DepthCanvas/manager/events/CanvasEventManager.js b/src/components/Canvas/DepthCanvas/manager/events/CanvasEventManager.js index c94c2a2..bdd0d42 100644 --- a/src/components/Canvas/DepthCanvas/manager/events/CanvasEventManager.js +++ b/src/components/Canvas/DepthCanvas/manager/events/CanvasEventManager.js @@ -753,6 +753,23 @@ export class CanvasEventManager { this.canvas.on("object:removed", (e) => { // updateLayers(e); }); + this.canvas.on("erasing:start", (e) => { + // console.log("erasing:start", e); + }); + this.canvas.on("erasing:end", async (e) => { + // console.log("erasing:end", e); + const targets = e.targets; + var isRecord = false; + for (let i = 0; i < targets.length; i++) { + const target = targets[i]; + const id = target?.info?.id; + if (id) { + isRecord = true; + await this.layerManager.updateLayerThumbnailsById(id) + } + } + if (isRecord) this.stateManager.recordState(); + }); } setupDoubleClickEvents() { // 双击处理