导出印花等所有信息
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
// 栅格化帮助
|
||||
import { fabric } from "fabric-with-all";
|
||||
|
||||
import { SpecialLayerId } from "./layerHelper";
|
||||
/**
|
||||
* 创建栅格化图像 - 重构版本
|
||||
* 采用复制原对象+裁剪路径的方式,保持原始质量和准确位置
|
||||
@@ -691,6 +691,16 @@ const cloneObjectAsync = (obj) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
obj.clone((cloned) => {
|
||||
if (cloned) {
|
||||
cloned.set({
|
||||
scaleX: obj.scaleX,
|
||||
scaleY: obj.scaleY,
|
||||
top: obj.top,
|
||||
left: obj.left,
|
||||
width: obj.width,
|
||||
height: obj.height,
|
||||
zoomX: obj.zoomX,
|
||||
zoomY: obj.zoomY,
|
||||
})
|
||||
resolve(cloned);
|
||||
} else {
|
||||
reject(new Error("对象克隆失败"));
|
||||
@@ -845,9 +855,8 @@ const renderContentToImage = async ({
|
||||
});
|
||||
|
||||
// 克隆并添加所有需要渲染的对象
|
||||
for (const obj of fabricObjects) {
|
||||
const clonedObj = await cloneObjectAsync(obj);
|
||||
|
||||
for (let obj of fabricObjects) {
|
||||
let clonedObj = await cloneObjectAsync(obj);
|
||||
// 调整对象位置:将选区左上角作为新的原点(0,0)
|
||||
clonedObj.set({
|
||||
left: (clonedObj.left - selectionBounds.left) * qualityMultiplier,
|
||||
@@ -859,19 +868,19 @@ const renderContentToImage = async ({
|
||||
});
|
||||
|
||||
// 如果有裁剪路径,也需要调整裁剪路径
|
||||
if (clonedObj.clipPath) {
|
||||
if (clonedObj.clipPath && obj.id !== SpecialLayerId.COLOR) {
|
||||
clonedObj.clipPath.set({
|
||||
left:
|
||||
(clonedObj.clipPath.left - selectionBounds.left) *
|
||||
qualityMultiplier,
|
||||
top:
|
||||
(clonedObj.clipPath.top - selectionBounds.top) * qualityMultiplier,
|
||||
left: (clonedObj.clipPath.left - selectionBounds.left) * qualityMultiplier,
|
||||
top: (clonedObj.clipPath.top - selectionBounds.top) * qualityMultiplier,
|
||||
scaleX: (clonedObj.clipPath.scaleX || 1) * qualityMultiplier,
|
||||
scaleY: (clonedObj.clipPath.scaleY || 1) * qualityMultiplier,
|
||||
});
|
||||
clonedObj.clipPath.setCoords(); // 更新裁剪路径坐标
|
||||
}
|
||||
|
||||
// if(obj.globalCompositeOperation === "multiply"){
|
||||
// clonedObj.clipPath = null;
|
||||
// }
|
||||
console.log("==========", obj.id, obj.layerName);
|
||||
contentCanvas.add(clonedObj);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user