xushiting 2 vuotta sitten
vanhempi
commit
ece1e6f37b
3 muutettua tiedostoa jossa 59 lisäystä ja 1 poistoa
  1. 53 0
      src/graphic/Controls/UIControl.js
  2. 2 1
      src/graphic/History/Change.js
  3. 4 0
      src/graphic/Layer.js

+ 53 - 0
src/graphic/Controls/UIControl.js

@@ -119,6 +119,59 @@ export default class UIControl {
     }
   }
 
+  //截图
+  screenShot() {
+    let canvas = this.layer.canvas;
+    this.downloadCadImg(canvas, "test.jpg");
+  }
+
+  downloadCadImg(canvas, filename) {
+    // 图片导出为 jpg 格式
+    var type = "jpg";
+    var imgData = canvas.toDataURL(type, 3);
+
+    // 加工image data,替换mime type
+    imgData = imgData.replace(this._fixType(type), "image/octet-stream");
+    // 下载后的图片名
+    //var filename = 'cad_' + new Date().getTime() + '.' + type
+    // download
+    this.saveFile(imgData, filename);
+  }
+
+  saveFile(data, filename) {
+    var save_link = document.createElementNS(
+      "http://www.w3.org/1999/xhtml",
+      "a"
+    );
+    save_link.href = data;
+    save_link.download = filename;
+
+    var event = document.createEvent("MouseEvents");
+    event.initMouseEvent(
+      "click",
+      true,
+      false,
+      window,
+      0,
+      0,
+      0,
+      0,
+      0,
+      false,
+      false,
+      false,
+      false,
+      0,
+      null
+    );
+    save_link.dispatchEvent(event);
+  }
+
+  _fixType(type) {
+    type = type.toLowerCase().replace(/jpg/i, "jpeg");
+    var r = type.match(/png|jpeg|bmp|gif/)[0];
+    return "image/" + r;
+  }
   /****************************************************************************针对菜单*******************************************************************************/
 
   //撤销

+ 2 - 1
src/graphic/History/Change.js

@@ -43,7 +43,8 @@ export default class Change {
       this.currentData.points.length == 0 &&
       this.currentData.lines.length == 0 &&
       this.currentData.circles.length == 0 &&
-      this.currentData.texts.length == 0
+      this.currentData.texts.length == 0 &&
+      this.currentData.magnifiers.length == 0
     ) {
       this.saveCurrentInfo();
       return false;

+ 4 - 0
src/graphic/Layer.js

@@ -757,6 +757,10 @@ export default class Layer {
         needAutoRedraw = true;
         this.history.save();
         break;
+      case LayerEvents.MoveCircle:
+        needAutoRedraw = true;
+        this.history.save();
+        break;
     }
 
     this.setEventName("mouseUp");