闫增涛
2024-11-19 d8c24a06b3e7844ad65e7c821c022dbb36d29430
src/components/paint/index.vue
@@ -140,7 +140,6 @@
      );
      // 设置背景
      this.setBackgroundImage();
      //
      fabric.Object.prototype.transparentCorners = false;
      this.setBrush();
    },
@@ -150,10 +149,7 @@
        // 画笔样式
        this.vLinePatternBrush = new fabric.PatternBrush(this.canvas);
        this.vLinePatternBrush.getPatternSrc = () => {
          let patternCanvas =
            fabric[this.container ? this.container : document].createElement(
              "canvas"
            );
          let patternCanvas = document.createElement("canvas");
          patternCanvas.width = patternCanvas.height = 10;
          let ctx = patternCanvas.getContext("2d");
          ctx.strokeStyle = this.lineColor;
@@ -167,10 +163,7 @@
        };
        this.hLinePatternBrush = new fabric.PatternBrush(this.canvas);
        this.hLinePatternBrush.getPatternSrc = function () {
          let patternCanvas =
            fabric[this.container ? this.container : document].createElement(
              "canvas"
            );
          let patternCanvas = document.createElement("canvas");
          patternCanvas.width = patternCanvas.height = 10;
          let ctx = patternCanvas.getContext("2d");
          ctx.strokeStyle = this.lineColor;
@@ -186,10 +179,7 @@
        this.squarePatternBrush.getPatternSrc = function () {
          const squareWidth = 10;
          const squareDistance = 2;
          const patternCanvas =
            fabric[this.container ? this.container : document].createElement(
              "canvas"
            );
          const patternCanvas = document.createElement("canvas");
          patternCanvas.width = patternCanvas.height =
            squareWidth + squareDistance;
          const ctx = patternCanvas.getContext("2d");
@@ -201,10 +191,7 @@
        this.diamondPatternBrush.getPatternSrc = function () {
          const squareWidth = 10;
          const squareDistance = 5;
          const patternCanvas =
            fabric[this.container ? this.container : document].createElement(
              "canvas"
            );
          const patternCanvas = document.createElement("canvas");
          const rect = new fabric.Rect({
            width: squareWidth,
            height: squareWidth,
@@ -230,6 +217,7 @@
      const oldData = localStorage.getItem(
        this.config.activeBook.name + "-paint-" + this.page
      );
      this.oldImg = oldData;
      this.backgroundImgUrl = oldData || this.imgUrl;
      fabric.Image.fromURL(
        this.backgroundImgUrl,
@@ -372,11 +360,15 @@
<style lang="less" scoped>
.paint {
  position: relative;
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.bcImg {
  position: absolute;
}
#canvas {
  border: 1px solid #ccc;
}