capture 처리 추가

This commit is contained in:
hyojun.choi 2025-08-07 18:21:54 +09:00
parent de39eac555
commit 7a0db7abfb
2 changed files with 31 additions and 4 deletions

View File

@ -214,6 +214,7 @@ export const SAVE_KEY = [
'isSortedPoints',
'isMultipleOf45',
'from',
'originColor',
]
export const OBJECT_PROTOTYPE = [fabric.Line.prototype, fabric.Polygon.prototype, fabric.Triangle.prototype, fabric.Group.prototype]

View File

@ -103,11 +103,11 @@ export default function CircuitTrestleSetting({ id }) {
}, [])
const capture = async (type) => {
beforeCapture()
beforeCapture(type)
await handleCanvasToPng(type)
afterCapture()
afterCapture(type)
return new Promise((resolve) => {
setTimeout(() => {
@ -117,11 +117,23 @@ export default function CircuitTrestleSetting({ id }) {
}
//
const beforeCapture = () => {
const beforeCapture = (type) => {
setCanvasZoom(100)
canvas.set({ zoom: 1 })
canvas.viewportTransform = [1, 0, 0, 1, 0, 0]
const modules = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE)
const circuitNumberTexts = canvas.getObjects().filter((obj) => obj.name === 'circuitNumber')
if (type === 2) {
modules.forEach((module) => {
module.set({ originColor: module.fill, fill: null, strokeWidth: 2 })
})
circuitNumberTexts.forEach((text) => {
text.set({ visible: false })
})
}
canvas.renderAll()
// roof polygon
@ -169,13 +181,27 @@ export default function CircuitTrestleSetting({ id }) {
}
//
const afterCapture = () => {
const afterCapture = (type) => {
setCanvasZoom(100)
canvas.set({ zoom: 1 })
canvas.viewportTransform = [1, 0, 0, 1, 0, 0]
changeFontSize('lengthText', lengthText.fontSize.value)
changeFontSize('circuitNumber', circuitNumberText.fontSize.value)
changeFontSize('flowText', flowText.fontSize.value)
const modules = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE)
const circuitNumberTexts = canvas.getObjects().filter((obj) => obj.name === 'circuitNumber')
if (type === 2) {
modules.forEach((module) => {
module.set({
fill: module.originColor,
strokeWidth: 0.3,
})
})
circuitNumberTexts.forEach((text) => {
text.set({ visible: true })
})
}
canvas.renderAll()
}