画布裁剪功能改为自选

This commit is contained in:
X1627315083
2024-08-26 10:06:08 +08:00
parent 4385f9f974
commit ede6184029
3 changed files with 38 additions and 22 deletions

View File

@@ -687,32 +687,46 @@ export default defineComponent({
lockRotation: true,
});
}
let setExportCanvas = ()=>{
var objects = canvas.getObjects();
var maxHeight = 0;
// 计算所有对象的最大高度
objects.forEach(function(obj) {
var objBottom = obj.top + obj.height*obj.scaleY;
if (objBottom > maxHeight) {
maxHeight = objBottom;
}
});
canvasWH.height = maxHeight+30
// 调整 Canvas 的高度
canvas.setDimensions({ height: canvasWH.height });
// 重新渲染 Canvas
let setExportCanvas = async ()=>{
await calculateHeight()
canvas.setDimensions({ height: canvasWH.value.height });
canvas.renderAll();
return canvas.toDataURL({
format: "png", // 导出格式为 PNG
quality: 1, // 图片质量为 1最高质量
});
format: "png", // 导出格式为 PNG
quality: 1, // 图片质量为 1最高质量
});
}
let calculateHeight = ()=>{
return new Promise((resolve, reject) =>{
var objects = canvas.getObjects();
var maxHeight = 0;
Modal.confirm({
title: useI18.t('exportModel.jsContent8'),
okText: 'Yes',
cancelText: 'No',
mask:false,
centered:true,
onOk() {
objects.forEach(function(obj) {
var objBottom = obj.top + obj.height*obj.scaleY;
if (objBottom > maxHeight) {
maxHeight = objBottom;
}
});
canvasWH.value.height = Math.round(maxHeight)+30
resolve(canvasWH.value.height)
},
onCancel(){
resolve(canvasWH.value.height)
}
});
})
}
//设置导出
let setExport = async () => {
initAligningGuidelines(canvas,false)
var imageDataURL = setExportCanvas()
var imageDataURL = await setExportCanvas()
let a = document.createElement("a");
let img = [];
let index = 0;
@@ -1829,11 +1843,11 @@ export default defineComponent({
let toSvg = ()=>{
// console.log(canvas.toSvg());
}
let setShare = ()=>{
let setShare = async ()=>{
initAligningGuidelines(canvas,false)
let publishModal = publish.value
publishModal.publishMask = true
var imageDataURL = setExportCanvas()
var imageDataURL = await setExportCanvas()
let data = {
"imgUrl":imageDataURL,
userlikeGroupId:userlikeGroupId,