印花其他属性同步
This commit is contained in:
@@ -1575,41 +1575,54 @@ export class CanvasManager {
|
|||||||
let item = printTrimsLayers[index];
|
let item = printTrimsLayers[index];
|
||||||
let id = generateId("layer_image_");
|
let id = generateId("layer_image_");
|
||||||
let name = item.name;
|
let name = item.name;
|
||||||
let blendMode = BlendMode.MULTIPLY;
|
|
||||||
if(item.level2Type === "Embroidery") blendMode = BlendMode.NORMAL;// 元素正常
|
|
||||||
let image = await new Promise(resolve => {
|
let image = await new Promise(resolve => {
|
||||||
fabric.Image.fromURL(item.path, (fabricImage)=>{
|
fabric.Image.fromURL(item.path, (fabricImage)=>{
|
||||||
const left = flLeft - flWidth * flScaleX / 2 + (item.location?.[0] || 0) * flScaleX
|
|
||||||
const top = flTop - flHeight * flScaleY / 2 + (item.location?.[1] || 0) * flScaleY
|
|
||||||
const scaleX = flWidth * (item.scale?.[0] || 1) / fabricImage.width * flScaleX
|
|
||||||
const scaleY = flHeight * (item.scale?.[1] || 1) / fabricImage.height * flScaleY
|
|
||||||
const {x, y} = calculateRotatedTopLeftDeg(
|
|
||||||
fabricImage.width * scaleX,
|
|
||||||
fabricImage.height * scaleY,
|
|
||||||
left,
|
|
||||||
top,
|
|
||||||
0,
|
|
||||||
item.angle || 0
|
|
||||||
)
|
|
||||||
const angle = item.angle || 0
|
|
||||||
fabricImage.set({
|
|
||||||
left: x,
|
|
||||||
top: y,
|
|
||||||
scaleX: scaleX,
|
|
||||||
scaleY: scaleY,
|
|
||||||
angle: angle,
|
|
||||||
id: id,
|
|
||||||
layerId: id,
|
|
||||||
layerName: name,
|
|
||||||
selectable: true,
|
|
||||||
hasControls: true,
|
|
||||||
hasBorders: true,
|
|
||||||
isPrintTrims: true,
|
|
||||||
globalCompositeOperation: blendMode,
|
|
||||||
});
|
|
||||||
resolve(fabricImage);
|
resolve(fabricImage);
|
||||||
}, { crossOrigin: "anonymous" });
|
}, { crossOrigin: "anonymous" });
|
||||||
})
|
})
|
||||||
|
let left = flLeft - flWidth * flScaleX / 2 + (item.location?.[0] || 0) * flScaleX
|
||||||
|
let top = flTop - flHeight * flScaleY / 2 + (item.location?.[1] || 0) * flScaleY
|
||||||
|
let scaleX = flWidth * (item.scale?.[0] || 1) / image.width * flScaleX
|
||||||
|
let scaleY = flHeight * (item.scale?.[1] || 1) / image.height * flScaleY
|
||||||
|
let {x, y} = calculateRotatedTopLeftDeg(
|
||||||
|
image.width * scaleX,
|
||||||
|
image.height * scaleY,
|
||||||
|
left,
|
||||||
|
top,
|
||||||
|
0,
|
||||||
|
item.angle || 0
|
||||||
|
)
|
||||||
|
let angle = item.angle || 0
|
||||||
|
|
||||||
|
let opacity = 1
|
||||||
|
let flipX = false;
|
||||||
|
let flipY = false;
|
||||||
|
let blendMode = BlendMode.MULTIPLY;
|
||||||
|
if(item.level2Type === "Embroidery") blendMode = BlendMode.NORMAL;// 元素正常
|
||||||
|
if(item.object){
|
||||||
|
opacity = item.object.opacity
|
||||||
|
flipX = item.object.flipX
|
||||||
|
flipY = item.object.flipY
|
||||||
|
if(item.object.blendMode) blendMode = item.object.blendMode;
|
||||||
|
}
|
||||||
|
image.set({
|
||||||
|
left: x,
|
||||||
|
top: y,
|
||||||
|
scaleX: scaleX,
|
||||||
|
scaleY: scaleY,
|
||||||
|
angle: angle,
|
||||||
|
opacity: opacity,
|
||||||
|
flipX: flipX,
|
||||||
|
flipY: flipY,
|
||||||
|
globalCompositeOperation: blendMode,
|
||||||
|
id: id,
|
||||||
|
layerId: id,
|
||||||
|
layerName: name,
|
||||||
|
selectable: true,
|
||||||
|
hasControls: true,
|
||||||
|
hasBorders: true,
|
||||||
|
isPrintTrims: true,
|
||||||
|
});
|
||||||
this.canvas.add(image);
|
this.canvas.add(image);
|
||||||
let layer = createLayer({
|
let layer = createLayer({
|
||||||
id: id,
|
id: id,
|
||||||
@@ -1617,7 +1630,7 @@ export class CanvasManager {
|
|||||||
type: LayerType.BITMAP,
|
type: LayerType.BITMAP,
|
||||||
visible: true,
|
visible: true,
|
||||||
locked: false,
|
locked: false,
|
||||||
opacity: 1.0,
|
opacity: opacity,
|
||||||
isPrintTrims: true,
|
isPrintTrims: true,
|
||||||
blendMode: blendMode,
|
blendMode: blendMode,
|
||||||
fabricObjects: [image.toObject(["id", "layerId", "layerName"])],
|
fabricObjects: [image.toObject(["id", "layerId", "layerName"])],
|
||||||
|
|||||||
Reference in New Issue
Block a user