This commit is contained in:
李志鹏
2026-01-23 15:41:43 +08:00
parent 2ee200e1ba
commit 55ede508cb
2 changed files with 10 additions and 4 deletions

View File

@@ -1179,6 +1179,7 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
blendMode: v.globalCompositeOperation, blendMode: v.globalCompositeOperation,
gapX: 0,// 平铺模式下的间距 gapX: 0,// 平铺模式下的间距
gapY: 0,// 平铺模式下的间距 gapY: 0,// 平铺模式下的间距
fill_repeat: "",
} }
} }
let left = (v.left - (flLeft - flWidth * flScaleX / 2)); let left = (v.left - (flLeft - flWidth * flScaleX / 2));
@@ -1222,6 +1223,7 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
obj.location = [left, top]; obj.location = [left, top];
obj.object.gapX = fill_.gapX; obj.object.gapX = fill_.gapX;
obj.object.gapY = fill_.gapY; obj.object.gapY = fill_.gapY;
obj.object.fill_repeat = fill.repeat;
} }
if(sourceData.type === "print"){ if(sourceData.type === "print"){
prints.push(obj); prints.push(obj);
@@ -1730,6 +1732,7 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
let flipX = false; let flipX = false;
let flipY = false; let flipY = false;
let blendMode = BlendMode.MULTIPLY; let blendMode = BlendMode.MULTIPLY;
let fill_repeat = "repeat"
if(item.object){ if(item.object){
top += item.object.top * flScaleY top += item.object.top * flScaleY
left += item.object.left * flScaleX left += item.object.left * flScaleX
@@ -1743,6 +1746,7 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
gapX = item.object.gapX gapX = item.object.gapX
gapY = item.object.gapY gapY = item.object.gapY
fillSource = imageAddGapToCanvas(image, gapX, gapY); fillSource = imageAddGapToCanvas(image, gapX, gapY);
if(item.object.fill_repeat) fill_repeat = item.object.fill_repeat;
} }
let rect = new fabric.Rect({ let rect = new fabric.Rect({
id: id, id: id,
@@ -1761,7 +1765,7 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
globalCompositeOperation: blendMode, globalCompositeOperation: blendMode,
fill: new fabric.Pattern({ fill: new fabric.Pattern({
source: fillSource, source: fillSource,
repeat: "repeat", repeat: fill_repeat,
patternTransform: createPatternTransform(scale, item.angle || 0), patternTransform: createPatternTransform(scale, item.angle || 0),
offsetX: offsetX, // 水平偏移 offsetX: offsetX, // 水平偏移
offsetY: offsetY, // 垂直偏移 offsetY: offsetY, // 垂直偏移

View File

@@ -25,6 +25,7 @@
O_FLIPX: "object.flipX", O_FLIPX: "object.flipX",
O_FLIPY: "object.flipY", O_FLIPY: "object.flipY",
O_BLENDMODE: "object.blendMode", O_BLENDMODE: "object.blendMode",
O_FILL_REPEAT: "object.fill_repeat",
}; };
const ACTIONS = { const ACTIONS = {
ADD: "add", ADD: "add",
@@ -202,9 +203,9 @@
let scaleY = ((cheight / image.height) * item.scale[1]) / 5; let scaleY = ((cheight / image.height) * item.scale[1]) / 5;
let scale = cwidth > cheight ? scaleX : scaleY; let scale = cwidth > cheight ? scaleX : scaleY;
let offsetX = let offsetX =
(item.location[0] * cwidth) / props.width - (image.width * scale) / 2; (item.location[0] * cwidth) / props.width + (image.width * scale) / 2;
let offsetY = let offsetY =
(item.location[1] * cheight) / props.height - (item.location[1] * cheight) / props.height +
(image.height * scale) / 2; (image.height * scale) / 2;
let angle = item.angle; let angle = item.angle;
let gapX = item.object.gapX; let gapX = item.object.gapX;
@@ -223,7 +224,7 @@
ctx.drawImage(image, 0, 0); ctx.drawImage(image, 0, 0);
let pattern = new fabric.Pattern({ let pattern = new fabric.Pattern({
source: tcanvas, source: tcanvas,
repeat: "repeat", repeat: item.object?.fill_repeat || "repeat",
patternTransform, patternTransform,
offsetX, // 水平偏移 offsetX, // 水平偏移
offsetY, // 垂直偏移 offsetY, // 垂直偏移
@@ -281,6 +282,7 @@
case KEYS.FILL_SCALEY: case KEYS.FILL_SCALEY:
case KEYS.FILL_GAPX: case KEYS.FILL_GAPX:
case KEYS.FILL_GAPY: case KEYS.FILL_GAPY:
case KEYS.O_FILL_REPEAT:
let pattern = await setFill( let pattern = await setFill(
list.value.find((v) => v.token === item.token) list.value.find((v) => v.token === item.token)
); );