From d4033cc2016c3824843c0f4e32f5a2d2a5b6a2c6 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 1 Apr 2026 18:36:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DPSD=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=94=BB=E5=B8=83=E8=87=AA=E5=8A=A8=E9=80=82=E9=85=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加自动缩放逻辑,确保模板完整显示在预览窗口内 - 避免模板超出预览区域,提升用户体验 Co-Authored-By: Claude Opus 4.6 --- components/agents/AgentPsdTemplateEditorDialog.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/components/agents/AgentPsdTemplateEditorDialog.tsx b/components/agents/AgentPsdTemplateEditorDialog.tsx index 92513ab95..9b66d50d9 100644 --- a/components/agents/AgentPsdTemplateEditorDialog.tsx +++ b/components/agents/AgentPsdTemplateEditorDialog.tsx @@ -471,6 +471,20 @@ export function AgentPsdTemplateEditorDialog({ setImagePlacements(initialState.imagePlacements); setTextAssignments(initialState.textAssignments); setSelectedLayerId(getPreferredSelectedLayerId(selectedTemplate)); + + // 自动适配缩放比例 + if (selectedTemplate && previewViewportRef.current) { + const viewport = previewViewportRef.current; + const padding = 32; // 预留边距 + const availableWidth = viewport.clientWidth - padding; + const availableHeight = viewport.clientHeight - padding; + + const scaleX = availableWidth / selectedTemplate.width; + const scaleY = availableHeight / selectedTemplate.height; + const fitScale = Math.min(scaleX, scaleY, 1); // 不超过1倍 + + setStageScale(fitScale); + } }, [open, selectedTemplate, sourceImageUrl]); useEffect(() => {