印花其他属性同步
This commit is contained in:
@@ -1575,41 +1575,54 @@ export class CanvasManager {
|
||||
let item = printTrimsLayers[index];
|
||||
let id = generateId("layer_image_");
|
||||
let name = item.name;
|
||||
let blendMode = BlendMode.MULTIPLY;
|
||||
if(item.level2Type === "Embroidery") blendMode = BlendMode.NORMAL;// 元素正常
|
||||
let image = await new Promise(resolve => {
|
||||
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);
|
||||
}, { 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);
|
||||
let layer = createLayer({
|
||||
id: id,
|
||||
@@ -1617,7 +1630,7 @@ export class CanvasManager {
|
||||
type: LayerType.BITMAP,
|
||||
visible: true,
|
||||
locked: false,
|
||||
opacity: 1.0,
|
||||
opacity: opacity,
|
||||
isPrintTrims: true,
|
||||
blendMode: blendMode,
|
||||
fabricObjects: [image.toObject(["id", "layerId", "layerName"])],
|
||||
|
||||
Reference in New Issue
Block a user