feat: 优化选区功能,修复部分bug

This commit is contained in:
bighuixiang
2025-07-10 01:01:46 +08:00
parent 943b49c1d7
commit 7359fe2f9a
11 changed files with 1667 additions and 126 deletions

View File

@@ -14,6 +14,7 @@ import {
} from "../utils/helper";
import { createRasterizedImage } from "../utils/rasterizedImage";
import { message } from "ant-design-vue";
import { restoreFabricObject } from "../utils/objectHelper";
/**
* 栅格化图层命令
@@ -82,7 +83,7 @@ export class RasterizeLayerCommand extends Command {
this.canvas.renderAll();
// 检查是否有遮罩对象
const maskObject = this._getMaskObject();
const maskObject = await this._getMaskObject();
// 创建栅格化图像
const rasterizedImage = await createRasterizedImage({
@@ -392,9 +393,9 @@ export class RasterizeLayerCommand extends Command {
* @returns {Object|null} 遮罩对象或null
* @private
*/
_getMaskObject() {
async _getMaskObject() {
// 如果图层有clippingMask获取对应的fabric对象
if (this.layer?.clippingMask?.id) {
if (this.layer?.clippingMask) {
const { object: maskObject } = findObjectById(
this.canvas,
this.layer.clippingMask.id
@@ -405,6 +406,7 @@ export class RasterizeLayerCommand extends Command {
);
return maskObject;
}
return await restoreFabricObject(this.layer.clippingMask);
}
console.log("📎 未找到遮罩对象");