From 906372e787517df895c6547b1ce95fde7f2424ee Mon Sep 17 00:00:00 2001 From: X1627315083 <1627315083@qq.com> Date: Fri, 15 Mar 2024 10:05:55 +0800 Subject: [PATCH] fix --- src/component/HomePage/ExportModel.vue | 28 +++++++------------------- src/tool/canvasDrawing.js | 27 ++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/component/HomePage/ExportModel.vue b/src/component/HomePage/ExportModel.vue index 8d2f999d..85f0a8fa 100644 --- a/src/component/HomePage/ExportModel.vue +++ b/src/component/HomePage/ExportModel.vue @@ -191,7 +191,7 @@ import { useStore } from "vuex"; import JSZip, { forEach } from "jszip"; import { message, Modal } from "ant-design-vue"; const FileSaver = require("file-saver"); -import { multiselectJS,JSRectUpdata,JSchangeType,JScanvasMouseDown,JScanvasMouseMove,JScreateCheck } from "@/tool/canvasDrawing"; +import { getWHXY,JSRectUpdata,JSchangeType,JScanvasMouseDown,JScanvasMouseMove,JScreateCheck } from "@/tool/canvasDrawing"; export default defineComponent({ components: { scaleImage, @@ -1069,27 +1069,13 @@ export default defineComponent({ } } } - let setHDExport = ()=>{ + let setHDExport = ()=>{//获取选中内容的位置信息 var activeObjects = canvas.getActiveObjects(); - var group = new fabric.Group(activeObjects, { - // 组的属性设置 - }); - - // 创建一个新的 Canvas - var exportCanvas = new fabric.StaticCanvas(null, { - width: group.width, - height: group.height - }); - - // 将组添加到新的 Canvas 上 - canvas.add(group); - - // 导出 Canvas 为图像数据 - var imageDataURL = exportCanvas.toDataURL({ - format: 'png', - quality: 1 - }); - console.log(imageDataURL); + let wHXY = getWHXY(activeObjects) + var canvasOffset = canvas._offset + console.log(canvasOffset); + console.log(wHXY.width,wHXY.height,wHXY.x,wHXY.y); + console.log(activeObjects); } onMounted(() => {}); diff --git a/src/tool/canvasDrawing.js b/src/tool/canvasDrawing.js index ae5320a7..ca43c573 100644 --- a/src/tool/canvasDrawing.js +++ b/src/tool/canvasDrawing.js @@ -108,6 +108,31 @@ function JScanvasMouseDown(str,e, width,patterning) {//创建线 } return currentPatterning } +function getWHXY(arr){ + var minX = Number.MAX_SAFE_INTEGER; + var minY = Number.MAX_SAFE_INTEGER; + var maxX = Number.MIN_SAFE_INTEGER; + var maxY = Number.MIN_SAFE_INTEGER; + + arr.forEach(function(object) { + var objectBoundingRect = object.getBoundingRect(); + console.log(objectBoundingRect); + minX = Math.min(minX, objectBoundingRect.left); + minY = Math.min(minY, objectBoundingRect.top); + maxX = Math.max(maxX, objectBoundingRect.left + objectBoundingRect.width); + maxY = Math.max(maxY, objectBoundingRect.top + objectBoundingRect.height); + }); + var width = maxX - minX; + var height = maxY - minY; + + let wHXY = { + width:width, + height:height, + x:minX, + y:minY, + } + return wHXY +} function JScreateCheck(e){//创建对号 let downPoint = e.absolutePointer @@ -206,4 +231,4 @@ function JSRectUpdata(rect, downPointer, upPointer) { }) return rect } -export { multiselectJS, JSRectUpdata, JSchangeType, JScanvasMouseDown, JScanvasMouseMove,JScreateCheck } \ No newline at end of file +export { multiselectJS, JSRectUpdata, JSchangeType, JScanvasMouseDown, JScanvasMouseMove,JScreateCheck,getWHXY } \ No newline at end of file