Переглянути джерело

fix: 手写签名裁剪大小、光标偏移问题

wzl 1 рік тому
батько
коміт
8db370bb25
1 змінених файлів з 9 додано та 7 видалено
  1. 9 7
      packages/core/src/ink_sign.js

+ 9 - 7
packages/core/src/ink_sign.js

@@ -95,11 +95,11 @@ class InkSign {
     const left = Math.min(...xArray);
     const bottom = Math.max(...yArray);
     const right = Math.max(...xArray);
-    this.path = this.path.map((ele) => {
-      let x = ele[0] - left
-      let y = ele[1] - top
-      return [x, y]
-    })
+    // this.addPath = this.addPath.map((ele) => {
+    //   let x = ele[0] - left
+    //   let y = ele[1] - top
+    //   return [x, y]
+    // })
     return {
       left,
       top,
@@ -111,6 +111,7 @@ class InkSign {
   }
 
   toImage () {
+    if (this.path.length === 0) return
     const finalCanvas = this.paintFinalCanvas()
     const dataURL = finalCanvas.toDataURL('image/jpeg')
     this.dataURL = dataURL
@@ -135,8 +136,8 @@ class InkSign {
       var x = event.clientX;
       var y = event.clientY;
 
-      let offsetX = rect.left + rect.width / 2
-      let offsetY = rect.top + rect.height / 2
+      let offsetX = rect.width / 2
+      let offsetY = rect.height / 2
 
       // 设置图片的位置
       img.style.left = (x - offsetX) + "px";
@@ -252,6 +253,7 @@ class InkSign {
     ctx.lineWidth = 3;
     ctx.strokeStyle = 'black';
 
+    console.log(this.rect)
     ctx.drawImage(this.canvas, this.rect.left, this.rect.top, finalCanvas.width, finalCanvas.height, 0, 0, finalCanvas.width, finalCanvas.height)
 
     return finalCanvas