feat: 优化选区功能,修复部分bug
This commit is contained in:
@@ -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("📎 未找到遮罩对象");
|
||||
|
||||
Reference in New Issue
Block a user