diff --git a/components/canvas/nodes/ImageNode.tsx b/components/canvas/nodes/ImageNode.tsx index abf78862d..b713e9cb6 100644 --- a/components/canvas/nodes/ImageNode.tsx +++ b/components/canvas/nodes/ImageNode.tsx @@ -357,6 +357,22 @@ export function ImageNode({ node, isSelected }: ImageNodeProps) { }, [allNodes, data.metadata, data.originalSrc, data.src, node.connections, node.id]); const hasCompareSource = Boolean(data.src) && Boolean(compareSource); + const compareButtonVisualSize = useMemo(() => { + const minSide = Math.max(1, Math.min(node.size.width || 0, node.size.height || 0)); + return Math.round(Math.max(32, Math.min(42, minSide * 0.12))); + }, [node.size.height, node.size.width]); + const compareButtonHitSize = useMemo( + () => Math.max(44, compareButtonVisualSize + 12), + [compareButtonVisualSize] + ); + const compareButtonIconSize = useMemo( + () => Math.round(Math.max(14, Math.min(20, compareButtonVisualSize * 0.45))), + [compareButtonVisualSize] + ); + const compareButtonInset = useMemo( + () => Math.max(6, Math.min(12, Math.round(compareButtonVisualSize * 0.24))), + [compareButtonVisualSize] + ); // 退出拾取模式时清空状态 useEffect(() => { @@ -1716,13 +1732,18 @@ export function ImageNode({ node, isSelected }: ImageNodeProps) { )}